{
WriteNumber(f, type, value, indent);
}
+ else if(type.type == bitClass)
+ {
+ Class dataType;
+ dataType = eSystem_FindClass(__thisModule, type.dataTypeString);
+ WriteNumber(f, dataType, value, indent);
+ }
return true;
}
if(!value.p)
continue;
}
+ else if(type.type == bitClass)
+ {
+ value.ui64 = *(uint64 *)((byte *)object);
+#if 0
+ uint64 bits = 0;
+ uint64 part = 0;
+ BitMember bitMember = (BitMember)member;
+ /*if(!bitMember.dataType)
+ bitMember.dataType = ProcessTypeString(bitMember.dataTypeString, false);*/
+ /*type = bitMember.dataType;
+ if(type.kind == classType && type._class && type._class.registered)
+ {
+ if(!type._class.registered.dataType)
+ type._class.registered.dataType = ProcessTypeString(type._class.registered.dataTypeString, false);
+ type = type._class.registered.dataType;
+ }*/
+ PrintLn(type.name);
+ PrintLn(type.dataTypeString);
+#if 0
+ switch(bitMember.dataType.kind)
+ {
+ case _BoolType:
+ case charType: { byte v; type.isSigned ? GetChar(value, (char *)&v) : GetUChar(value, &v); part = (uint64)v; break; }
+ case shortType: { uint16 v; type.isSigned ? GetShort(value, (short *)&v) : GetUShort(value, &v); part = (uint64)v; break; }
+ case intType:
+ case longType: { uint v; type.isSigned ? GetInt(value, (int *)&v) : GetUInt(value, &v); part = (uint64)v; break; }
+ case int64Type: { uint64 v; type.isSigned ? GetInt64(value, (int64 *)&v) : GetUInt64(value, &v); part = (uint64)v; break; }
+ case intPtrType: { uintptr v; type.isSigned ? GetIntPtr(value, (intptr *)&v) : GetUIntPtr(value, &v); part = (uint64)v; break; }
+ case intSizeType: { uintsize v; type.isSigned ? GetIntSize(value, (intsize *)&v) : GetUIntSize(value, &v); part = (uint64)v; break; }
+ }
+#endif
+ bits |= part << bitMember.pos;
+#endif
+ }
else if(type == class(double) || !strcmp(type.dataTypeString, "double"))
{
value.d = *(double *)((byte *)object + offset);