Commit edde9185 authored by Claes Sjofors's avatar Claes Sjofors

RtBody size alignment fix for ClassDef and Attribute objects

parent ff203099
...@@ -817,6 +817,7 @@ int wb_vrepwbl::getAttrInfoRec( wb_attrname *attr, pwr_eBix bix, pwr_tCid cid, s ...@@ -817,6 +817,7 @@ int wb_vrepwbl::getAttrInfoRec( wb_attrname *attr, pwr_eBix bix, pwr_tCid cid, s
else IF_ATTR( Flags, pwr_eType_UInt32, 1, level) else IF_ATTR( Flags, pwr_eType_UInt32, 1, level)
else IF_ATTR( NumOfObjBodies, pwr_eType_UInt32, 1, level) else IF_ATTR( NumOfObjBodies, pwr_eType_UInt32, 1, level)
else IF_ATTR( PopEditor, pwr_eType_UInt32, 1, level) else IF_ATTR( PopEditor, pwr_eType_UInt32, 1, level)
else IF_ATTR( Filler, pwr_eType_Int32, 1, level)
return 1; return 1;
} }
case pwr_eClass_ClassVolume: case pwr_eClass_ClassVolume:
...@@ -883,50 +884,51 @@ int wb_vrepwbl::getAttrInfoRec( wb_attrname *attr, pwr_eBix bix, pwr_tCid cid, s ...@@ -883,50 +884,51 @@ int wb_vrepwbl::getAttrInfoRec( wb_attrname *attr, pwr_eBix bix, pwr_tCid cid, s
*elements = 1; *elements = 1;
*flags = 0; *flags = 0;
} }
if ( attr->attributeIsEqual( "Type", level)) { else if ( attr->attributeIsEqual( "Type", level)) {
*size = sizeof( o.Info.Type); *size = sizeof( o.Info.Type);
*offset = (unsigned long) &o.Info.Type - (unsigned long) &o; *offset = (unsigned long) &o.Info.Type - (unsigned long) &o;
*tid = *type = pwr_eType_UInt32; *tid = *type = pwr_eType_UInt32;
*elements = 1; *elements = 1;
*flags = 0; *flags = 0;
} }
if ( attr->attributeIsEqual( "Offset", level)) { else if ( attr->attributeIsEqual( "Offset", level)) {
*size = sizeof( o.Info.Offset); *size = sizeof( o.Info.Offset);
*offset = (unsigned long) &o.Info.Offset - (unsigned long) &o; *offset = (unsigned long) &o.Info.Offset - (unsigned long) &o;
*tid = *type = pwr_eType_UInt32; *tid = *type = pwr_eType_UInt32;
*elements = 1; *elements = 1;
*flags = 0; *flags = 0;
} }
if ( attr->attributeIsEqual( "Size", level)) { else if ( attr->attributeIsEqual( "Size", level)) {
*size = sizeof( o.Info.Size); *size = sizeof( o.Info.Size);
*offset = (unsigned long) &o.Info.Size - (unsigned long) &o; *offset = (unsigned long) &o.Info.Size - (unsigned long) &o;
*tid = *type = pwr_eType_UInt32; *tid = *type = pwr_eType_UInt32;
*elements = 1; *elements = 1;
*flags = 0; *flags = 0;
} }
if ( attr->attributeIsEqual( "Flags", level)) { else if ( attr->attributeIsEqual( "Flags", level)) {
*size = sizeof( o.Info.Flags); *size = sizeof( o.Info.Flags);
*offset = (unsigned long) &o.Info.Flags - (unsigned long) &o; *offset = (unsigned long) &o.Info.Flags - (unsigned long) &o;
*tid = *type = pwr_eType_UInt32; *tid = *type = pwr_eType_UInt32;
*elements = 1; *elements = 1;
*flags = 0; *flags = 0;
} }
if ( attr->attributeIsEqual( "Elements", level)) { else if ( attr->attributeIsEqual( "Elements", level)) {
*size = sizeof( o.Info.Elements); *size = sizeof( o.Info.Elements);
*offset = (unsigned long) &o.Info.Elements - (unsigned long) &o; *offset = (unsigned long) &o.Info.Elements - (unsigned long) &o;
*tid = *type = pwr_eType_UInt32; *tid = *type = pwr_eType_UInt32;
*elements = 1; *elements = 1;
*flags = 0; *flags = 0;
} }
if ( attr->attributeIsEqual( "ParamIndex", level)) { else if ( attr->attributeIsEqual( "ParamIndex", level)) {
*size = sizeof( o.Info.ParamIndex); *size = sizeof( o.Info.ParamIndex);
*offset = (unsigned long) &o.Info.ParamIndex - (unsigned long) &o; *offset = (unsigned long) &o.Info.ParamIndex - (unsigned long) &o;
*tid = *type = pwr_eType_UInt32; *tid = *type = pwr_eType_UInt32;
*elements = 1; *elements = 1;
*flags = 0; *flags = 0;
} }
else IF_ATTR( Filler, pwr_eType_Int32, 1, level)
else IF_ATTR( TypeRef, pwr_eType_TypeId, 1, level) else IF_ATTR( TypeRef, pwr_eType_TypeId, 1, level)
return 1; return 1;
} }
default: default:
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment