public define MINDOUBLE = 2.2250738585072014e-308;
public define MAXDOUBLE = 1.7976931348623158e+308;
-public define FORMAT64HEXLL = (GetRuntimePlatform() == win32) ? "0x%I64XLL" : "0x%llXLL";
-public define FORMAT64HEX = (GetRuntimePlatform() == win32) ? "0x%I64X" : "0x%llX";
-public define FORMAT64DLL = (GetRuntimePlatform() == win32) ? "%I64dLL" : "%lldLL";
-public define FORMAT64D = (GetRuntimePlatform() == win32) ? "%I64d" : "%lld";
-public define FORMAT64U = (GetRuntimePlatform() == win32) ? "%I64u" : "%llu";
+public define FORMAT64HEXLL = (__runtimePlatform == win32) ? "0x%I64XLL" : "0x%llXLL";
+public define FORMAT64HEX = (__runtimePlatform == win32) ? "0x%I64X" : "0x%llX";
+public define FORMAT64DLL = (__runtimePlatform == win32) ? "%I64dLL" : "%lldLL";
+public define FORMAT64D = (__runtimePlatform == win32) ? "%I64d" : "%lld";
+public define FORMAT64U = (__runtimePlatform == win32) ? "%I64u" : "%llu";
#define PUTXWORD(b, w) \
(b)[0] = (byte)(((w) >> 8) & 0xFF); \
public class IOChannel
{
public:
- virtual uint WriteData(byte * data, uint numBytes);
- virtual uint ReadData(byte * data, uint numBytes);
+ virtual uint WriteData(const void * data, uint numBytes);
+ virtual uint ReadData(void * data, uint numBytes);
dllexport void Serialize(typed_object data)
{
uint _size;
uint pos;
- uint WriteData(byte * bytes, uint numBytes)
+ uint WriteData(const void * bytes, uint numBytes)
{
if(this != null)
{
return 0;
}
- uint ReadData(byte * bytes, uint numBytes)
+ uint ReadData(void * bytes, uint numBytes)
{
if(this != null)
{
}
};
-/*static */char * Enum_OnGetString(Class _class, int * data, char * tempString, void * fieldData, bool * needClass)
+/*static */const char * Enum_OnGetString(Class _class, void * data, char * tempString, void * fieldData, bool * needClass)
{
- NamedLink item = null;
+ NamedLink64 item = null;
Class b;
+ int64 i64Data = 0;
+ switch(_class.typeSize)
+ {
+ case 1:
+ i64Data = !strcmp(_class.dataTypeString, "byte") ? (int64)*(byte *)data : (int64)*(char *)data;
+ break;
+ case 2:
+ i64Data = !strcmp(_class.dataTypeString, "uint16") ? (int64)*(uint16 *)data : (int64)*(short *)data;
+ break;
+ case 4:
+ i64Data = !strcmp(_class.dataTypeString, "uint") ? (int64)*(uint *)data : (int64)*(int *)data;
+ break;
+ case 8:
+ i64Data = !strcmp(_class.dataTypeString, "uint64") ? *(int64 *)data : *(int64 *)data;
+ break;
+ }
for(b = _class; !item && b && b.type == enumClass; b = b.base)
{
EnumClassData enumeration = (EnumClassData)b.data;
for(item = enumeration.values.first; item; item = item.next)
- if((int)item.data == *data)
+ if(item.data == i64Data)
break;
}
if(item)
{
- strcpy(tempString, item.name);
- if(!needClass || !*needClass)
- tempString[0] = (char)toupper(tempString[0]);
- return tempString;
- //return item.name;
+ if(tempString)
+ {
+ strcpy(tempString, item.name);
+ if(!needClass || !*needClass)
+ tempString[0] = (char)toupper(tempString[0]);
+ return tempString;
+ }
+ else
+ return item.name;
}
else
return null;
}
-static bool Enum_OnGetDataFromString(Class _class, int * data, char * string)
+static bool Enum_OnGetDataFromString(Class _class, void * data, const char * string)
{
- NamedLink item = null;
+ NamedLink64 item = null;
Class b;
for(b = _class; !item && b && b.type == enumClass; b = b.base)
{
}
if(item)
{
- *data = (int)item.data;
+ switch(_class.typeSize)
+ {
+ case 1:
+ if(!strcmp(_class.dataTypeString, "byte"))
+ *(byte *)data = (byte)item.data;
+ else
+ *(char *)data = (char)item.data;
+ break;
+ case 2:
+ if(!strcmp(_class.dataTypeString, "uint16"))
+ *(uint16 *)data = (uint16)item.data;
+ else
+ *(short *)data = (short)item.data;
+ break;
+ case 4:
+ if(!strcmp(_class.dataTypeString, "uint"))
+ *(uint *)data = (uint)item.data;
+ else
+ *(int *)data = (int)item.data;
+ break;
+ case 8:
+ if(!strcmp(_class.dataTypeString, "uint64"))
+ *(uint64 *)data = *(uint64 *)&item.data;
+ else
+ *(int64 *)data = item.data;
+ break;
+ }
return true;
}
else
- return Integer_OnGetDataFromString(_class, data, string);
+ return Int64_OnGetDataFromString(_class, data, string);
return false;
}
return 0;
}
-static char * OnGetString(Class _class, void * data, char * tempString, void * fieldData, bool * needClass)
+static const char * OnGetString(Class _class, void * data, char * tempString, void * fieldData, bool * needClass)
{
// WHY DOES _class.module NOT SEEM TO WORK?
Module module = _class.templateClass ? _class.templateClass.module : _class.module;
{
if(prop.Set && prop.Get)
{
- String dts = _class.base.dataTypeString;
+ const String dts = _class.base.dataTypeString;
if(!strcmp(dts, "double"))
{
double d = ((double(*)(double))(void *)prop.Set)(*(double *)data);
- return ((char *(*)(void *, void *, char *, void *, bool *))(void *)class(double)._vTbl[__ecereVMethodID_class_OnGetString])(class(double), &d, tempString, fieldData, needClass);
+ return ((const char *(*)(void *, void *, char *, void *, bool *))(void *)class(double)._vTbl[__ecereVMethodID_class_OnGetString])(class(double), &d, tempString, fieldData, needClass);
}
else if(!strcmp(dts, "float"))
{
float d = ((float(*)(float))(void *)prop.Set)(*(float *)data);
- return ((char *(*)(void *, void *, char *, void *, bool *))(void *)class(float)._vTbl[__ecereVMethodID_class_OnGetString])(class(float), &d, tempString, fieldData, needClass);
+ return ((const char *(*)(void *, void *, char *, void *, bool *))(void *)class(float)._vTbl[__ecereVMethodID_class_OnGetString])(class(float), &d, tempString, fieldData, needClass);
}
else if(!strcmp(dts, "int"))
{
int d = ((int(*)(int))(void *)prop.Set)(*(int *)data);
- return ((char *(*)(void *, void *, char *, void *, bool *))(void *)class(int)._vTbl[__ecereVMethodID_class_OnGetString])(class(int), &d, tempString, fieldData, needClass);
+ return ((const char *(*)(void *, void *, char *, void *, bool *))(void *)class(int)._vTbl[__ecereVMethodID_class_OnGetString])(class(int), &d, tempString, fieldData, needClass);
}
else if(!strcmp(dts, "int64"))
{
int64 d = ((int64(*)(int64))(void *)prop.Set)(*(int64 *)data);
- return ((char *(*)(void *, void *, char *, void *, bool *))(void *)class(int64)._vTbl[__ecereVMethodID_class_OnGetString])(class(int64), &d, tempString, fieldData, needClass);
+ return ((const char *(*)(void *, void *, char *, void *, bool *))(void *)class(int64)._vTbl[__ecereVMethodID_class_OnGetString])(class(int64), &d, tempString, fieldData, needClass);
}
}
else
}
}
dataType = eSystem_FindClass(module, _class.dataTypeString);
- return ((char *(*)(void *, void *, char *, void *, bool *))(void *)dataType._vTbl[__ecereVMethodID_class_OnGetString])(dataType, data, tempString, fieldData, needClass);
+ return ((const char *(*)(void *, void *, char *, void *, bool *))(void *)dataType._vTbl[__ecereVMethodID_class_OnGetString])(dataType, data, tempString, fieldData, needClass);
}
else
{
{
char memberString[1024];
Class memberType = member.dataTypeClass;
- char * name = member.name;
+ const char * name = member.name;
+ const char *(* onGetString)(void *, void *, char *, void *, bool *);
if(member.id < 0) continue;
memberString[0] = 0;
if(!memberType)
memberType = member.dataTypeClass = eSystem_FindClass(module, "int");
+ onGetString = memberType._vTbl[__ecereVMethodID_class_OnGetString];
+
if(member.isProperty)
{
Property prop = (Property) member;
if(value.f)
{
bool needClass = true;
- char * result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, null, &needClass);
+ const char * result = onGetString(memberType, &value, memberString, null, &needClass);
if(result && result != memberString)
strcpy(memberString, result);
// TESTING THIS HERE
if(value.p || prop.IsSet)
{
bool needClass = true;
- char * result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType,
+ const char * result = onGetString(memberType,
(memberType.type == normalClass) ? value.p : &value, memberString, null, &needClass);
if(result && result != memberString)
strcpy(memberString, result);
if(value.i || prop.IsSet)
{
bool needClass = true;
- char * result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, null, &needClass);
+ const char * result = onGetString(memberType, &value, memberString, null, &needClass);
if(result && result != memberString)
strcpy(memberString, result);
}
}
else
{
+ uint offset = member.offset + member._class.offset;
+ byte * memberData = (byte *)data + offset;
if(member.type == normalMember)
{
if(memberType.type == structClass || memberType.type == normalClass)
{
char internalMemberString[1024];
- byte * memberData = ((byte *)data + (((member._class.type == normalClass) ? member._class.offset : 0) + member.offset));
int c;
uint typeSize = (memberType.type == normalClass) ? memberType.typeSize : memberType.structSize;
for(c = 0; c < typeSize; c++)
if(c < typeSize)
{
bool needClass = true;
- char * result;
+ const char * result;
if(memberType.type == normalClass)
- result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType, *(Instance *)memberData, internalMemberString, null, &needClass);
+ result = onGetString(memberType, *(Instance *)memberData, internalMemberString, null, &needClass);
else
- result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType, memberData, internalMemberString, null, &needClass);
+ result = onGetString(memberType, memberData, internalMemberString, null, &needClass);
if(needClass && strcmp(memberType.dataTypeString, "char *"))
{
//strcpy(memberString, memberType.name);
{
bool needClass = true;
char internalMemberString[1024];
- char * result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, internalMemberString, null, &needClass);
+ const char * result = onGetString(memberType, &value, internalMemberString, null, &needClass);
if(needClass && memberType.type != systemClass && memberType.type != enumClass && memberType.type != unitClass)
{
}
else if(!memberType.noExpansion)
{
- // TOCHECK: Is this still right??
- if(memberType.typeSize <= 4)
- {
- value.i = *(int *)((byte *)data + (((member._class.type == normalClass) ? member._class.offset : 0) + member.offset));
- if(value.i)
- {
- bool needClass = true;
- char * result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, null, &needClass);
- if(result && memberString != result)
- strcpy(memberString, result);
- }
- }
- else
+ // TOCHECK: Is this null check still right??
+ if(memberType.typeSize > 4 || *(int *)memberData)
{
bool needClass = true;
- char * result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType, ((byte *)data + (((member._class.type == normalClass) ? member._class.offset : 0) + member.offset)), memberString, null, &needClass);
+ const char * result = onGetString(memberType, memberData, memberString, null, &needClass);
if(result && memberString != result)
strcpy(memberString, result);
}
char internalMemberString[1024];
byte * memberData = ((byte *)data + (((member._class.type == normalClass) ? member._class.offset : 0) + member.offset));
bool needClass = true;
- char * result;
- result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetString])(memberType, memberData, internalMemberString, null, &needClass);
+ const char * result;
+ result = onGetString(memberType, memberData, internalMemberString, null, &needClass);
if(needClass)
{
//strcpy(memberString, memberType.name);
return tempString;
}
-static bool OnGetDataFromString(Class _class, void ** data, char * string)
+static bool OnGetDataFromString(Class _class, void ** data, const char * string)
{
bool result;
Module module = _class.module;
if(_class.type == enumClass)
- result = Enum_OnGetDataFromString(_class, (int *)data, string);
+ result = Enum_OnGetDataFromString(_class, (int64 *)data, string);
else if(_class.type == unitClass)
{
Class dataType;
{
if(prop.Set && prop.Get)
{
- String dts = _class.base.dataTypeString;
+ const String dts = _class.base.dataTypeString;
if(!strcmp(dts, "double"))
{
double d;
if(found)
{
Class memberType = thisMember.dataTypeClass;
+ uint offset;
+ byte * memberData;
if(!memberType)
memberType = thisMember.dataTypeClass = eSystem_FindClass(module, thisMember.dataTypeString);
if(!memberType)
memberType = thisMember.dataTypeClass = eSystem_FindClass(module, "int");
+ offset = thisMember._class.offset + memberOffset;
+ memberData = (byte *)data + offset;
if(memberType.type == structClass)
{
if(thisMember)
{
- if(!((bool (*)(void *, void *, const char *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetDataFromString])(memberType,
- (byte *)data + (((thisMember._class.type == normalClass) ? thisMember._class.offset : 0) + memberOffset), memberString))
+ if(!((bool (*)(void *, void *, const char *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetDataFromString])(memberType, memberData, memberString))
result = false;
}
}
// We don't want KeyCode to use its base class OnGetDataFromString
if(memberType._vTbl[__ecereVMethodID_class_OnGetDataFromString] == _class._vTbl[__ecereVMethodID_class_OnGetDataFromString])
{
- if(!OnGetDataFromString(memberType, &value, memberString))
+ if(!OnGetDataFromString(memberType, (void **)&value, memberString))
result = false;
}
else if(!((bool (*)(void *, void *, const char *))(void *)memberType._vTbl[__ecereVMethodID_class_OnGetDataFromString])(memberType, &value, memberString))
*(uint *)data = (uint32)(((*(uint *)data & ~bitMember.mask)) | ((value.ui64<<bitMember.pos)&bitMember.mask));
}
else
- *(int *)((byte *)data + (((thisMember._class.type == normalClass) ? thisMember._class.offset : 0) + thisMember.offset)) = value.i;
+ *(int *)memberData = value.i;
}
else if(thisMember.isProperty && ((Property)thisMember).Set)
{
if(memberType.type == noHeadClass || memberType.type == normalClass || memberType.type == structClass)
((void (*)(void *, void *))(void *)((Property)thisMember).Set)(data, value.p);
else
- ((void (*)(void *, int))(void *)((Property)thisMember).Set)(data, value.i);
+ {
+ // TODO: Complete and improve this type of stuff throughout
+ if(!strcmp(memberType.dataTypeString, "float"))
+ {
+ ((void (*)(void *, float))(void *)((Property)thisMember).Set)(data, value.f);
+ }
+ else if(!strcmp(memberType.dataTypeString, "double"))
+ {
+ ((void (*)(void *, double))(void *)((Property)thisMember).Set)(data, value.d);
+ }
+ else if(!strcmp(memberType.dataTypeString, "int64"))
+ {
+ ((void (*)(void *, int64))(void *)((Property)thisMember).Set)(data, value.i64);
+ }
+ else
+ {
+ ((void (*)(void *, int))(void *)((Property)thisMember).Set)(data, value.i);
+ }
+ }
}
}
}
static void OnCopy(Class _class, void ** data, void * newData)
{
- // TO IMPROVE: Inherit from Unit class for better performance?
if(_class.type == unitClass || _class.type == bitClass || _class.type == enumClass)
{
+ // An OnCopy is pointless for these, just copy the value
+ /*
Class dataType = eSystem_FindClass(_class.module, _class.dataTypeString);
if(dataType)
((void (*)(void *, void *, void *))(void *)dataType._vTbl[__ecereVMethodID_class_OnCopy])(dataType, data, newData);
+ */
+ if(newData)
+ memcpy(data, newData, _class.typeSize);
+ else
+ memset(data, 0, _class.typeSize);
}
else if(_class.type != structClass && (_class.type != systemClass || _class.byValueSystemClass))
{
return result;
}
-/*static */char * Integer_OnGetString(Class _class, int * data, char * string, void * fieldData, bool * needClass)
+/*static */const char * Integer_OnGetString(Class _class, int * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, "%d", *data);
return string;
}
-static bool Integer_OnGetDataFromString(Class _class, int * data, char * string)
+static bool Integer_OnGetDataFromString(Class _class, int * data, const char * string)
{
char * end;
- int result = strtol(string, &end, 0);
+ int result = (int)strtol(string, &end, 0);
if(end > string)
{
return false;
}
-static char * Int16_OnGetString(Class _class, short * data, char * string, void * fieldData, bool * needClass)
+static const char * Int16_OnGetString(Class _class, short * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, "%d", (int)*data);
return string;
}
-static bool Int16_OnGetDataFromString(Class _class, short * data, char * string)
+static bool Int16_OnGetDataFromString(Class _class, short * data, const char * string)
{
char * end;
short result = (short)strtol(string, &end, 0);
return result;
}
-static char * UInteger_OnGetString(Class _class, unsigned int * data, char * string, void * fieldData, bool * needClass)
+static const char * UInteger_OnGetString(Class _class, unsigned int * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, "%u", *data);
return string;
return result;
}
-static char * UInt16_OnGetString(Class _class, uint16 * data, char * string, void * fieldData, bool * needClass)
+static const char * UInt16_OnGetString(Class _class, uint16 * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, "%u", (uint)*data);
return string;
}
-static char * UIntegerHex_OnGetString(Class _class, unsigned int * data, char * string, void * fieldData, bool * needClass)
+static const char * UIntegerHex_OnGetString(Class _class, unsigned int * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, "%x", *data);
return string;
}
-static bool UInteger_OnGetDataFromString(Class _class, unsigned int * data, char * string)
+static bool UInteger_OnGetDataFromString(Class _class, unsigned int * data, const char * string)
{
char * end;
uint result = (uint)strtoul(string, &end, 0);
return false;
}
-static bool UInt16_OnGetDataFromString(Class _class, uint16 * data, char * string)
+static bool UInt16_OnGetDataFromString(Class _class, uint16 * data, const char * string)
{
char * end;
uint16 result = (uint16)strtoul(string, &end, 0);
return result;
}
-static char * Byte_OnGetString(Class _class, byte * data, char * string, void * fieldData, bool * needClass)
+static const char * Byte_OnGetString(Class _class, byte * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, "%u", (int)*data);
return string;
}
-static char * Char_OnGetString(Class _class, char * data, char * string, void * fieldData, bool * needClass)
+static const char * Char_OnGetString(Class _class, char * data, char * string, void * fieldData, bool * needClass)
{
if(needClass && *needClass)
{
return string;
}
-static bool Byte_OnGetDataFromString(Class _class, byte * data, char * string)
+static bool Byte_OnGetDataFromString(Class _class, byte * data, const char * string)
{
char * end;
byte result = (byte)strtoul(string, &end, 0);
return result;
}
-static char * Int64_OnGetString(Class _class, int64 * data, char * string, void * fieldData, bool * needClass)
+static const char * Int64_OnGetString(Class _class, int64 * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, FORMAT64D, *data);
return string;
}
-static char * UInt64_OnGetString(Class _class, uint64 * data, char * string, void * fieldData, bool * needClass)
+static const char * UInt64_OnGetString(Class _class, uint64 * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, FORMAT64U, *data);
return string;
}
-static char * UInt64Hex_OnGetString(Class _class, uint64 * data, char * string, void * fieldData, bool * needClass)
+static const char * UInt64Hex_OnGetString(Class _class, uint64 * data, char * string, void * fieldData, bool * needClass)
{
sprintf(string, FORMAT64HEX, *data);
return string;
}
-static char * UIntPtr64_OnGetString(Class _class, uint64 data, char * string, void * fieldData, bool * needClass)
+static const char * UIntPtr64_OnGetString(Class _class, uint64 data, char * string, void * fieldData, bool * needClass)
{
return UInt64Hex_OnGetString(_class, &data, string, fieldData, needClass);
}
-static char * UIntPtr32_OnGetString(Class _class, uint data, char * string, void * fieldData, bool * needClass)
+static const char * UIntPtr32_OnGetString(Class _class, uint data, char * string, void * fieldData, bool * needClass)
{
return UIntegerHex_OnGetString(_class, &data, string, fieldData, needClass);
}
-static char * IntPtr64_OnGetString(Class _class, uint64 data, char * string, void * fieldData, bool * needClass)
+static const char * IntPtr64_OnGetString(Class _class, int64 data, char * string, void * fieldData, bool * needClass)
{
return Int64_OnGetString(_class, &data, string, fieldData, needClass);
}
-static char * IntPtr32_OnGetString(Class _class, uint data, char * string, void * fieldData, bool * needClass)
+static const char * IntPtr32_OnGetString(Class _class, int data, char * string, void * fieldData, bool * needClass)
{
return Integer_OnGetString(_class, &data, string, fieldData, needClass);
}
-static bool Int64_OnGetDataFromString(Class _class, uint64 * data, char * string)
+static bool Int64_OnGetDataFromString(Class _class, int64 * data, const char * string)
{
- char * end;
+ const char * end;
uint64 result = _strtoi64(string, &end, 0);
if(end > string)
{
return false;
}
-static bool UInt64_OnGetDataFromString(Class _class, uint64 * data, char * string)
+static bool UInt64_OnGetDataFromString(Class _class, uint64 * data, const char * string)
{
- char * end;
+ const char * end;
uint64 result = _strtoui64(string, &end, 0);
if(end > string)
{
{
Class integerClass = eSystem_RegisterClass(normalClass, "int", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("int");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(int);
integerClass.type = systemClass;
integerClass.structSize = 0;
integerClass.typeSize = sizeof(int64);
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("int64");
eClass_AddMethod(integerClass, "OnGetString", null, Int64_OnGetString, publicAccess);
eClass_AddMethod(integerClass, "OnCompare", null, Int64_OnCompare, publicAccess);
integerClass = eSystem_RegisterClass(normalClass, "uint", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("unsigned int");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(uint);
integerClass = eSystem_RegisterClass(normalClass, "unsigned int", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("unsigned int");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(uint);
integerClass = eSystem_RegisterClass(normalClass, "uint16", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("unsigned short");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(uint16);
integerClass = eSystem_RegisterClass(normalClass, "short", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("short");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(short);
/*
integerClass = eSystem_RegisterClass(normalClass, "uint32", null, 0, 0, null, null, module, baseSystemAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("uint32");
eClass_AddMethod(integerClass, "OnCompare", null, UInteger_OnCompare, publicAccess);
eClass_AddMethod(integerClass, "OnGetString", null, UInteger_OnGetString, publicAccess);
*/
integerClass = eSystem_RegisterClass(normalClass, "uint32", "uint", 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("unsigned int");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(uint32);
integerClass = eSystem_RegisterClass(normalClass, "uint64", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("uint64");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(uint64);
integerClass = eSystem_RegisterClass(normalClass, "byte", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("unsigned char");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(byte);
integerClass = eSystem_RegisterClass(normalClass, "char", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("char");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(char);
integerClass = eSystem_RegisterClass(normalClass, "intsize", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("ssize_t");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(intsize);
integerClass = eSystem_RegisterClass(normalClass, "uintsize", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("size_t");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(uintsize);
integerClass = eSystem_RegisterClass(normalClass, "uintptr", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("uintptr_t");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(uintptr);
integerClass = eSystem_RegisterClass(normalClass, "intptr", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
integerClass.type = systemClass;
- delete integerClass.dataTypeString;
+ delete (void *)integerClass.dataTypeString;
integerClass.dataTypeString = CopyString("intptr_t");
integerClass.structSize = 0;
integerClass.typeSize = sizeof(intptr);
{
Class floatClass = eSystem_RegisterClass(normalClass, "float", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
floatClass.type = systemClass;
- delete floatClass.dataTypeString;
+ delete (void *)floatClass.dataTypeString;
floatClass.dataTypeString = CopyString("float");
floatClass.structSize = 0;
floatClass.typeSize = sizeof(float);
{
Class doubleClass = eSystem_RegisterClass(normalClass, "double", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
doubleClass.type = systemClass;
- delete doubleClass.dataTypeString;
+ delete (void *)doubleClass.dataTypeString;
doubleClass.dataTypeString = CopyString("double");
doubleClass.structSize = 0;
doubleClass.typeSize = sizeof(double);
return result;
}
- char * OnGetString(char * tempString, void * fieldData, bool * needClass)
+ const char * OnGetString(char * tempString, void * fieldData, bool * needClass)
{
- return (char *)(this ? string : null); // Cast for memguard
+ return this ? string : null;
}
void OnFree()
return true;
}
-/*static */int String_OnCompare(Class _class, char * string1, char * string2)
+/*static */int String_OnCompare(Class _class, const char * string1, const char * string2)
{
int result = 0;
if(string1 && string2)
static void RegisterClass_String(Module module)
{
Class stringClass = eSystem_RegisterClass(normalClass, "char *", null, 0, 0, null, null, module, baseSystemAccess, publicAccess);
- delete stringClass.dataTypeString;
+ delete (void *)stringClass.dataTypeString;
stringClass.dataTypeString = CopyString("char *");
stringClass.structSize = 0;
stringClass.computeSize = false;
eClass_AddVirtualMethod(baseClass, "OnCompare", "int typed_object::OnCompare(any_object object)", OnCompare, publicAccess);
eClass_AddVirtualMethod(baseClass, "OnCopy", "void typed_object&::OnCopy(any_object newData)", OnCopy, publicAccess);
eClass_AddVirtualMethod(baseClass, "OnFree", "void typed_object::OnFree(void)", OnFree, publicAccess);
- eClass_AddVirtualMethod(baseClass, "OnGetString", "char * typed_object::OnGetString(char * tempString, void * fieldData, bool * needClass)", OnGetString, publicAccess);
- eClass_AddVirtualMethod(baseClass, "OnGetDataFromString", "bool typed_object&::OnGetDataFromString(char * string)", OnGetDataFromString, publicAccess);
+ eClass_AddVirtualMethod(baseClass, "OnGetString", "const char * typed_object::OnGetString(char * tempString, void * fieldData, bool * needClass)", OnGetString, publicAccess);
+ eClass_AddVirtualMethod(baseClass, "OnGetDataFromString", "bool typed_object&::OnGetDataFromString(const char * string)", OnGetDataFromString, publicAccess);
eClass_AddVirtualMethod(baseClass, "OnEdit", "Window typed_object::OnEdit(DataBox dataBox, DataBox obsolete, int x, int y, int w, int h, void * userData)", null, publicAccess);
eClass_AddVirtualMethod(baseClass, "OnSerialize", "void typed_object::OnSerialize(IOChannel channel)", OnSerialize, publicAccess);
eClass_AddVirtualMethod(baseClass, "OnUnserialize", "void typed_object&::OnUnserialize(IOChannel channel)", OnUnserialize, publicAccess);
{
int len = 0;
// TOFIX: OnGetString will need a maxLen as well
- char * result = object.OnGetString(buffer, null, null);
+ const char * result = object.OnGetString(buffer, null, null);
if(result)
{
len = strlen(result);
if(data)
{
// TOFIX: OnGetString will need a maxLen as well
- result = ((char *(*)(void *, void *, char *, void *, bool *))(void *)_class._vTbl[__ecereVMethodID_class_OnGetString])(_class, data, buffer + len, null, null);
+ result = ((const char *(*)(void *, void *, char *, void *, bool *))(void *)_class._vTbl[__ecereVMethodID_class_OnGetString])(_class, data, buffer + len, null, null);
if(result)
{
int newLen = strlen(result);