#else
#define __ENDIAN_PAD(x) 0
#endif
+#if defined(_WIN32)
+# if defined(__GNUC__) || defined(__TINYC__)
+# define ecere_stdcall __attribute__((__stdcall__))
+# define ecere_gcc_struct __attribute__((gcc_struct))
+# else
+# define ecere_stdcall __stdcall
+# define ecere_gcc_struct
+# endif
+#else
+# define ecere_stdcall
+# define ecere_gcc_struct
+#endif
#include <stdint.h>
#include <sys/types.h>
extern int runtimePlatform;
unsigned int count;
unsigned int _size;
unsigned int pos;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
extern struct __ecereNameSpace__ecere__com__Property * __ecereProp_float_isInf;
struct __ecereNameSpace__ecere__com__StaticString
{
char string[1];
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__sys__BTNode;
int count;
unsigned int offset;
unsigned int circ;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__com__DataValue
{
double d;
long long i64;
uint64 ui64;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
extern void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
{
struct __ecereNameSpace__ecere__sys__OldList values;
long long largest;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__com__Property;
void * * _vTbl;
struct __ecereNameSpace__ecere__com__Class * _class;
int _refCount;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char * name);
strcpy(string, "'\\a'");
else if(ch == '\\')
strcpy(string, "'\\\\'");
-else if(ch < (char)32 || ch >= (char)127)
+else if(ch < 32 || ch >= 127)
sprintf(string, "'\\x%x'", ch);
else
sprintf(string, "'%c'", ch);
if(string[c] == '.')
{
if(last == c)
-string[c] = (char)0;
+string[c] = 0;
else
-string[last + 1] = (char)0;
+string[last + 1] = 0;
break;
}
}
if(string[c] == '.')
{
if(last == c)
-string[c] = (char)0;
+string[c] = 0;
else
-string[last + 1] = (char)0;
+string[last + 1] = 0;
break;
}
}
unsigned int compiled;
unsigned int selfWatchable;
unsigned int isWatchable;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
struct __ecereNameSpace__ecere__sys__NamedLink64 * next;
char * name;
long long data;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__sys__BinaryTree;
int count;
int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
void (* FreeKey)(void * key);
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__com__DataMember;
int memberOffset;
short structAlignment;
short pointerAlignment;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
extern void __ecereNameSpace__ecere__com__eClass_FindNextMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class ** curClass, struct __ecereNameSpace__ecere__com__DataMember ** curMember, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos);
{
const char * dataTypeString;
struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
-} __attribute__ ((gcc_struct)) __anon1;
+} ecere_gcc_struct __anon1;
struct __ecereNameSpace__ecere__com__DataValue expression;
struct
{
struct __ecereNameSpace__ecere__com__DataMember * member;
struct __ecereNameSpace__ecere__com__Property * prop;
struct __ecereNameSpace__ecere__com__Method * method;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct)) __anon2;
-} __attribute__ ((gcc_struct)) __anon1;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct __anon2;
+} ecere_gcc_struct __anon1;
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__com__Method
{
const char * dataTypeString;
struct __ecereNameSpace__ecere__com__Instance * dataType;
int memberAccess;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char * name, const char * type, void * function, int declMode);
int size;
int pos;
uint64 mask;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__com__NameSpace;
struct __ecereNameSpace__ecere__sys__BinaryTree classes;
struct __ecereNameSpace__ecere__sys__BinaryTree defines;
struct __ecereNameSpace__ecere__sys__BinaryTree functions;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__com__Class
{
int numParams;
unsigned int isInstanceClass;
unsigned int byValueSystemClass;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
struct __ecereNameSpace__ecere__com__Application
{
struct __ecereNameSpace__ecere__sys__OldList allModules;
char * parsedCommand;
struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IOChannel;
}
}
}
-buffer[len] = (char)0;
+buffer[len] = 0;
return len;
}
int origImportType;
struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
-} __attribute__ ((gcc_struct));
+} ecere_gcc_struct;
void __ecereNameSpace__ecere__com__Byte_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, unsigned char * data, struct __ecereNameSpace__ecere__com__Instance * channel)
{
__internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__IOChannel->_vTbl;
})[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, data, 1) != 1)
-*data = (unsigned char)0;
+*data = 0;
}
void __ecereNameSpace__ecere__com__Int_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, int * data, struct __ecereNameSpace__ecere__com__Instance * channel)
__internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__IOChannel->_vTbl;
})[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 4) == 4)
-*data = (unsigned int)(((bytes)[0] << (unsigned char)24) | ((bytes)[1] << (unsigned char)16) | ((bytes)[2] << (unsigned char)8) | (bytes)[3]);
+*data = (unsigned int)(((bytes)[0] << 24) | ((bytes)[1] << 16) | ((bytes)[2] << 8) | (bytes)[3]);
else
*data = 0;
}
__internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__IOChannel->_vTbl;
})[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 8) == 8)
-*data = (((uint64)(bytes)[0] << 56) | ((uint64)(bytes)[1] << 48) | ((uint64)(bytes)[2] << 40) | ((uint64)(bytes)[3] << 32) | ((uint64)(bytes)[4] << 24) | ((bytes)[5] << (unsigned char)16) | ((bytes)[6] << (unsigned char)8) | (bytes)[7]);
+*data = (((uint64)(bytes)[0] << 56) | ((uint64)(bytes)[1] << 48) | ((uint64)(bytes)[2] << 40) | ((uint64)(bytes)[3] << 32) | ((uint64)(bytes)[4] << 24) | ((bytes)[5] << 16) | ((bytes)[6] << 8) | (bytes)[7]);
else
*data = 0;
}
{
unsigned char bytes[2];
-(bytes)[0] = (unsigned char)(((*data) >> (unsigned short)8) & (unsigned short)0xFF);
-(bytes)[1] = (unsigned char)(((*data)) & (unsigned short)0xFF);
+(bytes)[0] = (unsigned char)(((*data) >> 8) & 0xFF);
+(bytes)[1] = (unsigned char)(((*data)) & 0xFF);
;
((unsigned int (*)(struct __ecereNameSpace__ecere__com__Instance *, const void * data, unsigned int numBytes))__extension__ ({
struct __ecereNameSpace__ecere__com__Instance * __internal_ClassInst = channel;
__internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__IOChannel->_vTbl;
})[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 2) == 2)
-*data = (unsigned short)(((bytes)[0] << (unsigned char)8) | (bytes)[1]);
+*data = (unsigned short)(((bytes)[0] << 8) | (bytes)[1]);
else
-*data = (unsigned short)0;
+*data = 0;
}
static void __ecereNameSpace__ecere__com__Float_OnSerialize(struct __ecereNameSpace__ecere__com__Class * _class, float * data, struct __ecereNameSpace__ecere__com__Instance * channel)
__internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__IOChannel->_vTbl;
})[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 4) == 4)
-*(unsigned int *)data = (unsigned int)(((bytes)[0] << (unsigned char)24) | ((bytes)[1] << (unsigned char)16) | ((bytes)[2] << (unsigned char)8) | (bytes)[3]);
+*(unsigned int *)data = (unsigned int)(((bytes)[0] << 24) | ((bytes)[1] << 16) | ((bytes)[2] << 8) | (bytes)[3]);
else
*data = 0;
}
__internal_ClassInst ? __internal_ClassInst->_vTbl : __ecereClass___ecereNameSpace__ecere__com__IOChannel->_vTbl;
})[__ecereVMethodID___ecereNameSpace__ecere__com__IOChannel_ReadData])(channel, bytes, 8) == 8)
-*(uint64 *)data = (((uint64)(bytes)[0] << 56) | ((uint64)(bytes)[1] << 48) | ((uint64)(bytes)[2] << 40) | ((uint64)(bytes)[3] << 32) | ((uint64)(bytes)[4] << 24) | ((bytes)[5] << (unsigned char)16) | ((bytes)[6] << (unsigned char)8) | (bytes)[7]);
+*(uint64 *)data = (((uint64)(bytes)[0] << 56) | ((uint64)(bytes)[1] << 48) | ((uint64)(bytes)[2] << 40) | ((uint64)(bytes)[3] << 32) | ((uint64)(bytes)[4] << 24) | ((bytes)[5] << 16) | ((bytes)[6] << 8) | (bytes)[7]);
else
*data = 0;
}
char memberString[1024];
struct __ecereNameSpace__ecere__com__Class * memberType = member->dataTypeClass;
const char * name = member->name;
+const char * (* onGetString)(void *, void *, char *, void *, unsigned int *);
if(member->id < 0)
continue;
-memberString[0] = (char)0;
+memberString[0] = 0;
if(!memberType)
memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, member->dataTypeString);
if(!memberType)
memberType = member->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
+onGetString = memberType->_vTbl[__ecereVMethodID_class_OnGetString];
if(member->isProperty)
{
struct __ecereNameSpace__ecere__com__Property * prop = (struct __ecereNameSpace__ecere__com__Property *)member;
if(value.__anon1.f)
{
unsigned int needClass = 1;
-const char * result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, (((void *)0)), &needClass);
+const char * result = onGetString(memberType, &value, memberString, (((void *)0)), &needClass);
if(result && result != memberString)
strcpy(memberString, result);
if(value.__anon1.p || prop->IsSet)
{
unsigned int needClass = 1;
-const char * result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, (memberType->type == 0) ? value.__anon1.p : &value, memberString, (((void *)0)), &needClass);
+const char * result = onGetString(memberType, (memberType->type == 0) ? value.__anon1.p : &value, memberString, (((void *)0)), &needClass);
if(result && result != memberString)
strcpy(memberString, result);
if(value.__anon1.i || prop->IsSet)
{
unsigned int needClass = 1;
-const char * result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, (((void *)0)), &needClass);
+const char * result = onGetString(memberType, &value, memberString, (((void *)0)), &needClass);
if(result && result != memberString)
strcpy(memberString, result);
}
else
{
+unsigned int offset = member->offset + member->_class->offset;
+unsigned char * memberData = (unsigned char *)data + offset;
+
if(member->type == 0)
{
if(memberType->type == 1 || memberType->type == 0)
{
char internalMemberString[1024];
-unsigned char * memberData = ((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
int c;
unsigned int typeSize = (memberType->type == 0) ? memberType->typeSize : memberType->structSize;
const char * result;
if(memberType->type == 0)
-result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, *(struct __ecereNameSpace__ecere__com__Instance **)memberData, internalMemberString, (((void *)0)), &needClass);
+result = onGetString(memberType, *(struct __ecereNameSpace__ecere__com__Instance **)memberData, internalMemberString, (((void *)0)), &needClass);
else
-result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, memberData, internalMemberString, (((void *)0)), &needClass);
+result = onGetString(memberType, memberData, internalMemberString, (((void *)0)), &needClass);
if(needClass && strcmp(memberType->dataTypeString, "char *"))
{
strcat(memberString, "{ ");
{
unsigned int needClass = 1;
char internalMemberString[1024];
-const char * result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, internalMemberString, (((void *)0)), &needClass);
+const char * result = onGetString(memberType, &value, internalMemberString, (((void *)0)), &needClass);
if(needClass && memberType->type != 1000 && memberType->type != 4 && memberType->type != 3)
{
}
else if(!memberType->noExpansion)
{
-if(memberType->typeSize <= 4)
-{
-value.__anon1.i = *(int *)((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset));
-if(value.__anon1.i)
-{
-unsigned int needClass = 1;
-const char * result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, &value, memberString, (((void *)0)), &needClass);
-
-if(result && memberString != result)
-strcpy(memberString, result);
-}
-}
-else
+if(memberType->typeSize > 4 || *(int *)memberData)
{
unsigned int needClass = 1;
-const char * result = ((const char * (*)(void *, void *, char *, void *, unsigned int *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetString])(memberType, ((unsigned char *)data + (((member->_class->type == 0) ? member->_class->offset : 0) + member->offset)), memberString, (((void *)0)), &needClass);
+const char * result = onGetString(memberType, memberData, memberString, (((void *)0)), &needClass);
if(result && memberString != result)
strcpy(memberString, result);
else
{
tempString[len++] = memberString[c];
-tempString[len] = (char)0;
+tempString[len] = 0;
}
}
strcat(tempString, "\"");
if(found)
{
struct __ecereNameSpace__ecere__com__Class * memberType = thisMember->dataTypeClass;
+unsigned int offset;
+unsigned char * memberData;
if(!memberType)
memberType = thisMember->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, thisMember->dataTypeString);
if(!memberType)
memberType = thisMember->dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "int");
+offset = thisMember->_class->offset + memberOffset;
+memberData = (unsigned char *)data + offset;
if(memberType->type == 1)
{
if(thisMember)
{
-if(!((unsigned int (*)(void *, void *, const char *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(memberType, (unsigned char *)data + (((thisMember->_class->type == 0) ? thisMember->_class->offset : 0) + memberOffset), memberString))
+if(!((unsigned int (*)(void *, void *, const char *))(void *)memberType->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(memberType, memberData, memberString))
result = 0;
}
}
*(unsigned int *)data = (unsigned int)(((*(unsigned int *)data & ~bitMember->mask)) | ((value.__anon1.ui64 << bitMember->pos) & bitMember->mask));
}
else
-*(int *)((unsigned char *)data + (((thisMember->_class->type == 0) ? thisMember->_class->offset : 0) + thisMember->offset)) = value.__anon1.i;
+*(int *)memberData = value.__anon1.i;
}
else if(thisMember->isProperty && ((struct __ecereNameSpace__ecere__com__Property *)thisMember)->Set)
{