2 typedef long long int64;
3 typedef unsigned long long uint64;
5 #define stdcall __attribute__((__stdcall__))
10 #elif defined(__TINYC__)
12 #define __builtin_va_list va_list
13 #define __builtin_va_start va_start
14 #define __builtin_va_end va_end
16 #define strcasecmp stricmp
17 #define strncasecmp strnicmp
18 #define __declspec(x) __attribute__((x))
19 #define stdcall __attribute__((__stdcall__))
24 typedef long long int64;
25 typedef unsigned long long uint64;
27 typedef __int64 int64;
28 typedef unsigned __int64 uint64;
31 #define __ENDIAN_PAD(x) (8 - (x))
33 #define __ENDIAN_PAD(x) 0
36 #include <sys/types.h>
38 #if defined(_W64) || (defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
44 #define arch_PointerSize sizeof(void *)
45 #define structSize_Instance (_64BIT ? 24 : 12)
46 #define structSize_Module (_64BIT ? 560 : 300)
47 #define structSize_BinaryTree (_64BIT ? 32 : 16)
48 #define structSize_OldList (_64BIT ? 32 : 20)
49 #define structSize_NamedLink64 (_64BIT ? 32 : 24)
50 #define structSize_ClassTemplateArgument (_64BIT ? 16 : 8)
51 #define structSize_ClassTemplateParameter (_64BIT ? 64 : 40)
52 #define structSize_OldLink (_64BIT ? 24 : 12)
53 #define structSize_BTNamedLink (_64BIT ? 48 : 24)
54 #define structSize_Application (_64BIT ? 800 : 428)
55 #define structSize_Watcher (_64BIT ? 32 : 16)
56 #define structSize_SelfWatcher (_64BIT ? 32 : 16)
57 #define structSize_GlobalFunction (_64BIT ? 72 : 36)
58 #define structSize_DefinedExpression (_64BIT ? 40 : 20)
59 #define structSize_BitMember (_64BIT ? 96 : 64)
60 #define structSize_NamedLink (_64BIT ? 32 : 16)
61 #define structSize_DataMember (_64BIT ? 160 : 96)
62 #define structSize_ClassProperty (_64BIT ? 80 : 40)
63 #define structSize_Method (_64BIT ? 96 : 52)
64 #define structSize_Property (_64BIT ? 152 : 88)
65 #define structSize_Class (_64BIT ? 616 : 358)
67 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
69 struct __ecereNameSpace__ecere__sys__BTNode;
71 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
73 struct __ecereNameSpace__ecere__sys__BinaryTree
75 struct __ecereNameSpace__ecere__sys__BTNode * root;
77 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
78 void (* FreeKey)(void * key);
79 } __attribute__ ((gcc_struct));
81 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
83 struct __ecereNameSpace__ecere__sys__OldList
90 } __attribute__ ((gcc_struct));
92 struct __ecereNameSpace__ecere__com__Class
94 struct __ecereNameSpace__ecere__com__Class * prev, * next;
96 int offset, structSize;
99 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
100 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
101 int offsetClass, sizeClass;
102 struct __ecereNameSpace__ecere__com__Class * base;
103 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
104 struct __ecereNameSpace__ecere__sys__BinaryTree members;
105 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
106 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
107 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
108 struct __ecereNameSpace__ecere__sys__OldList derivatives;
109 int memberID, startMemberID;
111 struct __ecereNameSpace__ecere__com__Instance * module;
112 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
113 char * dataTypeString;
114 struct __ecereNameSpace__ecere__com__Instance * dataType;
116 int defaultAlignment;
117 void (* Initialize)();
119 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
120 char * designerClass;
121 unsigned int noExpansion;
122 char * defaultProperty;
123 unsigned int comRedefinition;
125 unsigned int isRemote;
126 unsigned int internalDecl;
128 unsigned int computeSize;
130 int destructionWatchOffset;
132 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
133 int inheritanceAccess;
136 struct __ecereNameSpace__ecere__sys__OldList conversions;
137 struct __ecereNameSpace__ecere__sys__OldList templateParams;
138 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
139 struct __ecereNameSpace__ecere__com__Class * templateClass;
140 struct __ecereNameSpace__ecere__sys__OldList templatized;
142 } __attribute__ ((gcc_struct));
144 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
146 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
148 struct __ecereNameSpace__ecere__com__Instance
151 struct __ecereNameSpace__ecere__com__Class * _class;
153 } __attribute__ ((gcc_struct));
155 struct __ecereNameSpace__ecere__com__Property
157 struct __ecereNameSpace__ecere__com__Property * prev, * next;
159 unsigned int isProperty;
162 struct __ecereNameSpace__ecere__com__Class * _class;
163 char * dataTypeString;
164 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
165 struct __ecereNameSpace__ecere__com__Instance * dataType;
166 void (* Set)(void *, int);
168 unsigned int (* IsSet)(void *);
172 unsigned int conversion;
173 unsigned int watcherOffset;
175 unsigned int compiled;
176 unsigned int selfWatchable, isWatchable;
177 } __attribute__ ((gcc_struct));
179 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
181 struct __ecereNameSpace__ecere__com__DataMember
183 struct __ecereNameSpace__ecere__com__DataMember * prev, * next;
185 unsigned int isProperty;
188 struct __ecereNameSpace__ecere__com__Class * _class;
189 char * dataTypeString;
190 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
191 struct __ecereNameSpace__ecere__com__Instance * dataType;
195 struct __ecereNameSpace__ecere__sys__OldList members;
196 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
199 } __attribute__ ((gcc_struct));
201 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
203 struct __ecereNameSpace__ecere__com__Method
206 struct __ecereNameSpace__ecere__com__Method * parent, * left, * right;
211 struct __ecereNameSpace__ecere__com__Class * _class;
213 char * dataTypeString;
214 struct __ecereNameSpace__ecere__com__Instance * dataType;
216 } __attribute__ ((gcc_struct));
218 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
220 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
222 struct __ecereNameSpace__ecere__com__SerialBuffer
224 unsigned char * _buffer;
228 } __attribute__ ((gcc_struct));
230 struct __ecereNameSpace__ecere__com__DataValue
245 } __attribute__ ((gcc_struct));
246 } __attribute__ ((gcc_struct));
248 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
250 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
256 char * dataTypeString;
257 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
258 } __attribute__ ((gcc_struct));
259 struct __ecereNameSpace__ecere__com__DataValue expression;
265 struct __ecereNameSpace__ecere__com__DataMember * member;
266 struct __ecereNameSpace__ecere__com__Property * prop;
267 struct __ecereNameSpace__ecere__com__Method * method;
268 } __attribute__ ((gcc_struct));
269 } __attribute__ ((gcc_struct));
270 } __attribute__ ((gcc_struct));
271 } __attribute__ ((gcc_struct));
273 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
275 void exit(int status);
277 void * calloc(size_t nmemb, size_t size);
279 void free(void * ptr);
281 void * malloc(size_t size);
283 void * realloc(void * ptr, size_t size);
285 long int strtol(const char * nptr, char ** endptr, int base);
287 long long int strtoll(const char * nptr, char ** endptr, int base);
289 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
291 typedef __builtin_va_list va_list;
295 FILE * bsl_stdin(void);
297 FILE * bsl_stdout(void);
299 FILE * bsl_stderr(void);
301 char * fgets(char * s, int size, FILE * stream);
303 FILE * fopen(const char * path, const char * mode);
305 int fclose(FILE * fp);
307 int fflush(FILE * stream);
309 int fgetc(FILE * stream);
311 int fprintf(FILE * stream, const char * format, ...);
313 int fputc(int c, FILE * stream);
315 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
317 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
319 int vsnprintf(char *, size_t, const char *, ...);
321 int snprintf(char * str, size_t, const char * format, ...);
323 int fseek(FILE * stream, long offset, int whence);
325 long ftell(FILE * stream);
327 int feof(FILE * stream);
329 int ferror(FILE * stream);
331 int fileno(FILE * stream);
334 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
336 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
338 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
340 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
342 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
344 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
346 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
348 extern int __ecereVMethodID_class_OnGetDataFromString;
350 unsigned int Instance_LocateModule(char * name, char * fileName);
352 void Instance_COM_Initialize(int argc, char ** argv, char ** parsedCommand, int * argcPtr, char *** argvPtr);
354 void * Instance_Module_Load(const char * libLocation, const char * name, void ** Load, void ** Unload);
356 void Instance_Module_Free(void * library);
358 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__unichar;
360 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max);
362 char * __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * tempString, void * fieldData, unsigned int * needClass)
364 __ecereNameSpace__ecere__sys__UTF32toUTF8Len(&(*(this)), 1, tempString, 5);
368 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes);
370 unsigned int __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string)
374 (*(this)) = __ecereNameSpace__ecere__sys__UTF8GetChar(string, &nb);
378 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
380 void __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(char * loc)
384 void __ecereNameSpace__ecere__com__MemoryGuard_PopLoc()
388 extern unsigned int __ecereDll_Load_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
390 extern unsigned int __ecereDll_Unload_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
392 struct __ecereNameSpace__ecere__com__BTNamedLink
395 struct __ecereNameSpace__ecere__com__BTNamedLink * parent, * left, * right;
398 } __attribute__ ((gcc_struct));
400 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BTNamedLink;
402 struct __ecereNameSpace__ecere__com__SelfWatcher
404 struct __ecereNameSpace__ecere__com__SelfWatcher * prev, * next;
405 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *);
406 struct __ecereNameSpace__ecere__com__Property * _property;
407 } __attribute__ ((gcc_struct));
409 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SelfWatcher;
411 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AccessMode;
413 struct __ecereNameSpace__ecere__com__SubModule
415 struct __ecereNameSpace__ecere__com__SubModule * prev, * next;
416 struct __ecereNameSpace__ecere__com__Instance * module;
418 } __attribute__ ((gcc_struct));
420 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SubModule;
422 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMemberType;
424 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassType;
426 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Class_char__PTR_;
428 char * __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this)
433 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
435 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(char * value)
437 struct __ecereNameSpace__ecere__com__Class * theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, value);
442 char * __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this, char * tempString, void * fieldData, unsigned int * needClass)
447 struct __ecereNameSpace__ecere__com__NameSpace
450 struct __ecereNameSpace__ecere__com__NameSpace * btParent, * left, * right;
452 struct __ecereNameSpace__ecere__com__NameSpace * parent;
453 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
454 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
455 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
456 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
457 } __attribute__ ((gcc_struct));
459 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
461 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
463 struct __ecereNameSpace__ecere__com__Module
465 struct __ecereNameSpace__ecere__com__Instance * application;
466 struct __ecereNameSpace__ecere__sys__OldList classes;
467 struct __ecereNameSpace__ecere__sys__OldList defines;
468 struct __ecereNameSpace__ecere__sys__OldList functions;
469 struct __ecereNameSpace__ecere__sys__OldList modules;
470 struct __ecereNameSpace__ecere__com__Instance * prev;
471 struct __ecereNameSpace__ecere__com__Instance * next;
477 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
478 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
479 } __attribute__ ((gcc_struct));
481 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, char * string)
483 struct __ecereNameSpace__ecere__com__Class * theClass;
485 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
487 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, string);
488 (*(this)) = (void *)theClass;
489 return theClass != (((void *)0));
492 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
494 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_char__PTR_;
496 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this, struct __ecereNameSpace__ecere__com__Instance * channel)
498 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_char__PTR_, this->fullName);
501 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this)
505 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
507 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
509 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, struct __ecereNameSpace__ecere__com__Instance * channel)
511 struct __ecereNameSpace__ecere__com__Class * theClass;
514 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &string);
515 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
517 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, string);
518 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
519 (*(this)) = (void *)theClass;
522 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType;
524 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType;
526 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
528 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev, * next;
533 char * dataTypeString;
535 } __attribute__ ((gcc_struct));
536 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
538 } __attribute__ ((gcc_struct));
540 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
542 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MethodType;
544 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ImportType;
546 struct __ecereNameSpace__ecere__com__BitMember
548 struct __ecereNameSpace__ecere__com__BitMember * prev, * next;
550 unsigned int isProperty;
553 struct __ecereNameSpace__ecere__com__Class * _class;
554 char * dataTypeString;
555 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
556 struct __ecereNameSpace__ecere__com__Instance * dataType;
561 } __attribute__ ((gcc_struct));
563 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
565 struct __ecereNameSpace__ecere__com__ClassProperty
568 struct __ecereNameSpace__ecere__com__ClassProperty * parent, * left, * right;
570 void (* Set)(struct __ecereNameSpace__ecere__com__Class *, long long);
571 long long (* Get)(struct __ecereNameSpace__ecere__com__Class *);
572 char * dataTypeString;
573 struct __ecereNameSpace__ecere__com__Instance * dataType;
574 unsigned int constant;
575 } __attribute__ ((gcc_struct));
577 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty;
579 struct __ecereNameSpace__ecere__com__DefinedExpression
581 struct __ecereNameSpace__ecere__com__DefinedExpression * prev, * next;
584 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
585 } __attribute__ ((gcc_struct));
587 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
589 struct __ecereNameSpace__ecere__com__GlobalFunction
591 struct __ecereNameSpace__ecere__com__GlobalFunction * prev, * next;
594 struct __ecereNameSpace__ecere__com__Instance * module;
595 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
596 char * dataTypeString;
597 struct __ecereNameSpace__ecere__com__Instance * dataType;
599 } __attribute__ ((gcc_struct));
601 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
603 struct __ecereNameSpace__ecere__com__EnumClassData
605 struct __ecereNameSpace__ecere__sys__OldList values;
607 } __attribute__ ((gcc_struct));
609 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
611 struct __ecereNameSpace__ecere__com__Watcher
613 struct __ecereNameSpace__ecere__com__Watcher * prev, * next;
614 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *);
615 struct __ecereNameSpace__ecere__com__Instance * object;
616 } __attribute__ ((gcc_struct));
618 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Watcher;
620 static unsigned int __ecereNameSpace__ecere__com__TOTAL_MEM = 0;
622 static unsigned int __ecereNameSpace__ecere__com__OUTSIDE_MEM = 0;
624 struct __ecereNameSpace__ecere__com__MemBlock
626 struct __ecereNameSpace__ecere__com__MemBlock * prev, * next;
627 struct __ecereNameSpace__ecere__com__MemPart * part;
629 } __attribute__ ((gcc_struct));
631 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemBlock;
633 struct __ecereNameSpace__ecere__com__MemPart
638 struct __ecereNameSpace__ecere__com__BlockPool * pool;
639 } __attribute__ ((gcc_struct));
641 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemPart;
643 static int __ecereNameSpace__ecere__com__power15[] =
645 4, 8, 12, 16, 24, 32, 48, 64, 96, 144, 224, 320, 480, 720, 1072, 1600, 2400, 6900, 5408, 8096, 12144, 18208, 27312, 40976, 61456, 92176, 138256, 207392, 311088, 466624, 699920
648 struct __ecereNameSpace__ecere__com__BlockPool
650 struct __ecereNameSpace__ecere__com__MemBlock * first, * last;
651 struct __ecereNameSpace__ecere__com__MemBlock * free;
652 unsigned int blockSize;
653 unsigned int blockSpace;
656 unsigned int totalSize;
657 unsigned int usedSpace;
658 } __attribute__ ((gcc_struct));
660 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BlockPool;
662 unsigned int __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(struct __ecereNameSpace__ecere__com__BlockPool * this, unsigned int numBlocks)
664 unsigned char * memory = malloc(numBlocks * this->blockSpace);
666 __ecereNameSpace__ecere__com__TOTAL_MEM += numBlocks * this->blockSpace;
670 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)memory;
671 struct __ecereNameSpace__ecere__com__MemPart * part = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__MemPart));
673 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemPart);
675 for(c = 0; c < numBlocks - 1; c++)
678 block->prev = (((void *)0));
679 block->next = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)block + this->blockSpace);
682 part->blocksUsed = 0;
684 part->memory = memory;
685 part->size = numBlocks;
687 block->prev = (((void *)0));
688 block->next = (((void *)0));
689 this->totalSize += numBlocks;
696 struct __ecereNameSpace__ecere__com__MemBlock * __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(struct __ecereNameSpace__ecere__com__BlockPool * this)
699 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
702 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(this, (__simpleStruct0 = this->numBlocks / 2, (1 > __simpleStruct0) ? 1 : __simpleStruct0));
706 block->prev = this->last;
708 block->prev->next = block;
712 this->free = block->next;
713 block->next = (((void *)0));
714 block->part->blocksUsed++;
720 void __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove(struct __ecereNameSpace__ecere__com__BlockPool * this, struct __ecereNameSpace__ecere__com__MemBlock * block)
723 block->prev->next = block->next;
725 block->next->prev = block->prev;
726 if(this->first == block)
727 this->first = block->next;
728 if(this->last == block)
729 this->last = block->prev;
730 block->next = this->free;
732 block->part->blocksUsed--;
734 (*block->part->pool).usedSpace -= block->size;
735 if(!block->part->blocksUsed && this->numBlocks && this->totalSize > this->numBlocks + this->numBlocks / 2)
737 struct __ecereNameSpace__ecere__com__MemBlock * next = this->free, * prev = (((void *)0));
738 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
740 this->free = (((void *)0));
741 this->totalSize -= part->size;
744 if(next->part != part)
756 prev->next = (((void *)0));
757 __ecereNameSpace__ecere__com__TOTAL_MEM -= part->size * this->blockSpace;
758 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemPart);
765 static struct __ecereNameSpace__ecere__com__BlockPool * __ecereNameSpace__ecere__com__pools;
767 static unsigned int __ecereNameSpace__ecere__com__PosFibonacci(unsigned int number)
770 unsigned int last = 1, prev = 0;
771 unsigned int current = 1;
773 for(pos = 0; ; pos++)
778 if(current >= number)
784 static unsigned int __ecereNameSpace__ecere__com__NthFibonacci(unsigned int number)
787 unsigned int last = 1, prev = 0;
788 unsigned int current = 1;
790 for(pos = 0; pos <= number; pos++)
799 static unsigned int __ecereNameSpace__ecere__com__NextFibonacci(unsigned int number)
802 unsigned int last = 1, prev = 0;
803 unsigned int current = 1;
805 for(pos = 0; ; pos++)
810 if(current >= number)
815 static unsigned int __ecereNameSpace__ecere__com__log1_5i(unsigned int number)
818 uint64 current = sizeof(void *);
820 for(pos = 0; pos < 31; pos++)
822 if(current >= number)
824 current = current * 3 / 2;
831 static unsigned int __ecereNameSpace__ecere__com__pow1_5(unsigned int number)
834 uint64 current = sizeof(void *);
836 for(pos = 0; pos < number; pos++)
838 current = current * 3 / 2;
842 return (unsigned int)current;
845 static unsigned int __ecereNameSpace__ecere__com__pow1_5i(unsigned int number)
848 uint64 current = sizeof(void *);
850 for(pos = 0; pos < 31; pos++)
852 if(current >= number)
853 return (unsigned int)current;
854 current = current * 3 / 2;
858 return (unsigned int)current;
861 unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number)
865 for(power = 0; power < 32; power++)
866 if((1L << power) >= number)
871 unsigned int __ecereNameSpace__ecere__com__pow2i(unsigned int number)
873 return 1 << __ecereNameSpace__ecere__com__log2i(number);
876 static unsigned int __ecereNameSpace__ecere__com__memoryInitialized = 0x0;
878 static void __ecereNameSpace__ecere__com__InitMemory()
882 __ecereNameSpace__ecere__com__memoryInitialized = 0x1;
883 __ecereNameSpace__ecere__com__pools = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__BlockPool) * 31);
884 for(c = 0; c < 31; c++)
888 __ecereNameSpace__ecere__com__pools[c].blockSize = __ecereNameSpace__ecere__com__pow1_5(c);
889 if(__ecereNameSpace__ecere__com__pools[c].blockSize % sizeof(void *))
890 __ecereNameSpace__ecere__com__pools[c].blockSize += sizeof(void *) - (__ecereNameSpace__ecere__com__pools[c].blockSize % sizeof(void *));
891 __ecereNameSpace__ecere__com__pools[c].blockSpace = __ecereNameSpace__ecere__com__pools[c].blockSize;
892 __ecereNameSpace__ecere__com__pools[c].blockSpace += sizeof(struct __ecereNameSpace__ecere__com__MemBlock);
893 expansion = (__ecereNameSpace__ecere__com__pools[c].blockSize < 128) ? 1024 : (131072 / __ecereNameSpace__ecere__com__pools[c].blockSize);
895 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(&__ecereNameSpace__ecere__com__pools[c], ((1 > expansion) ? 1 : expansion));
899 static void * __ecereNameSpace__ecere__com___mymalloc(unsigned int size)
901 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
905 unsigned int p = __ecereNameSpace__ecere__com__log1_5i(size);
907 if(!__ecereNameSpace__ecere__com__memoryInitialized)
908 __ecereNameSpace__ecere__com__InitMemory();
911 block = __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(&__ecereNameSpace__ecere__com__pools[p]);
915 __ecereNameSpace__ecere__com__pools[p].usedSpace += size;
920 block = malloc(sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
923 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
924 __ecereNameSpace__ecere__com__OUTSIDE_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
925 block->part = (((void *)0));
930 return block ? ((struct __ecereNameSpace__ecere__com__MemBlock *)block + 1) : (((void *)0));
933 extern void * memset(void * area, int value, size_t count);
935 static void * __ecereNameSpace__ecere__com___mycalloc(int n, unsigned int size)
937 void * pointer = __ecereNameSpace__ecere__com___mymalloc(n * size);
940 memset(pointer, 0, n * size);
944 static void __ecereNameSpace__ecere__com___myfree(void * pointer)
948 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock));
949 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
950 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
953 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove((&*pool), block);
956 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
957 __ecereNameSpace__ecere__com__OUTSIDE_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
963 extern void * memcpy(void * , const void * , size_t size);
965 static void * __ecereNameSpace__ecere__com___myrealloc(void * pointer, unsigned int size)
967 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
968 void * newPointer = (((void *)0));
969 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
970 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
976 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
977 unsigned int mod = ns % sizeof(void *);
980 ns += sizeof(void *) - mod;
981 if(ns == (*pool).blockSize)
983 newPointer = pointer;
984 (*pool).usedSpace += size - block->size;
990 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
994 __ecereNameSpace__ecere__com__TOTAL_MEM += size - newBlock->size;
995 __ecereNameSpace__ecere__com__OUTSIDE_MEM += size - newBlock->size;
996 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1002 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1003 if(pointer && newPointer)
1005 unsigned int __simpleStruct0;
1007 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1008 __ecereNameSpace__ecere__com___myfree(pointer);
1014 static void * __ecereNameSpace__ecere__com___mycrealloc(void * pointer, unsigned int size)
1016 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
1017 void * newPointer = (((void *)0));
1018 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
1019 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
1025 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
1026 unsigned int mod = ns % sizeof(void *);
1029 ns += sizeof(void *) - mod;
1030 if(ns == (*pool).blockSize)
1032 int extra = size - block->size;
1034 newPointer = pointer;
1035 (*pool).usedSpace += extra;
1037 memset((unsigned char *)pointer + block->size, 0, extra);
1043 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
1047 int extra = size - newBlock->size;
1049 __ecereNameSpace__ecere__com__TOTAL_MEM += extra;
1050 __ecereNameSpace__ecere__com__OUTSIDE_MEM += extra;
1051 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1053 memset((unsigned char *)newPointer + newBlock->size, 0, extra);
1054 newBlock->size = size;
1060 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1065 unsigned int __simpleStruct0;
1067 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1068 if(size > block->size)
1069 memset((unsigned char *)newPointer + block->size, 0, size - block->size);
1070 __ecereNameSpace__ecere__com___myfree(pointer);
1073 memset((unsigned char *)newPointer, 0, size);
1079 static void * __ecereNameSpace__ecere__com___malloc(unsigned int size)
1083 pointer = size ? __ecereNameSpace__ecere__com___mymalloc(size + 2 * 0) : (((void *)0));
1084 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1087 static void * __ecereNameSpace__ecere__com___calloc(int n, unsigned int size)
1091 pointer = (n * size) ? __ecereNameSpace__ecere__com___mycalloc(1, n * size + 2 * 0) : (((void *)0));
1092 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1095 static void __ecereNameSpace__ecere__com___free(void * pointer);
1097 static void * __ecereNameSpace__ecere__com___realloc(void * pointer, unsigned int size)
1101 __ecereNameSpace__ecere__com___free(pointer);
1102 return (((void *)0));
1104 pointer = __ecereNameSpace__ecere__com___myrealloc(pointer, size);
1105 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1108 static void * __ecereNameSpace__ecere__com___crealloc(void * pointer, unsigned int size)
1111 return (((void *)0));
1112 pointer = __ecereNameSpace__ecere__com___mycrealloc(pointer, size);
1113 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1116 static void __ecereNameSpace__ecere__com___free(void * pointer)
1120 __ecereNameSpace__ecere__com___myfree(pointer);
1124 void __ecereNameSpace__ecere__com__memswap(unsigned char * a, unsigned char * b, unsigned int size)
1127 unsigned char buffer[1024];
1129 for(c = 0; c < size; )
1131 int s = sizeof buffer;
1135 memcpy(buffer, a + c, s);
1136 memcpy(a + c, b + c, s);
1137 memcpy(b + c, buffer, s);
1142 void __ecereNameSpace__ecere__com__CheckMemory()
1146 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule);
1148 extern char * strchr(const char * , int);
1150 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
1152 struct __ecereNameSpace__ecere__sys__OldLink
1154 struct __ecereNameSpace__ecere__sys__OldLink * prev;
1155 struct __ecereNameSpace__ecere__sys__OldLink * next;
1157 } __attribute__ ((gcc_struct));
1159 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1161 extern void * memmove(void * , const void * , size_t size);
1163 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property);
1165 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1167 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1169 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1171 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1173 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key);
1175 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1177 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1179 static void __ecereNameSpace__ecere__com__FixDerivativesBase(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Class * mod)
1181 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
1182 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1184 __ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)));
1185 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
1187 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
1188 int type = _class->type;
1189 int size = _class->structSize - _class->offset;
1190 int oldSizeClass = _class->sizeClass;
1191 int sizeClass = _class->sizeClass - _class->offsetClass;
1192 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1193 char * dataTypeString = (((void *)0));
1194 struct __ecereNameSpace__ecere__com__Class * baseClass;
1195 unsigned int offsetBefore = _class->offset;
1196 int offsetClass, totalSizeClass;
1198 for(baseClass = base; baseClass->base; baseClass = baseClass->base)
1200 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1202 if(base->type == 1 && type == 0)
1207 if(base && (_class->type == 0 || _class->type == 5 || _class->type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1216 base = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, "enum");
1219 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1220 offsetClass = base ? (base->templateClass ? base->templateClass->sizeClass : base->sizeClass) : (type == 5 ? 0 : 0);
1221 totalSizeClass = offsetClass + sizeClass;
1222 if(type == 0 || type == 5)
1223 _class->offset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : ((type == 5) ? 0 : structSize_Instance);
1226 _class->memberOffset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : 0;
1227 _class->typeSize = _class->structSize = _class->memberOffset + size;
1229 else if(type == 2 || type == 4 || type == 3)
1231 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1234 _class->typeSize = dataTypeClass->typeSize;
1235 _class->structSize = 0;
1237 else if(type == 0 || type == 5)
1239 _class->structSize = _class->offset + size;
1240 _class->typeSize = sizeof(void *);
1242 if(_class->type != 1000)
1243 _class->type = type;
1244 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1245 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1246 if(totalSizeClass != oldSizeClass)
1248 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1249 memmove((unsigned char *)_class->data + mod->offsetClass, (unsigned char *)_class->data, totalSizeClass - mod->sizeClass);
1250 if(base->type != 1000 && base->type != 4)
1251 memcpy((unsigned char *)_class->data, (unsigned char *)base->data, totalSizeClass - _class->sizeClass);
1253 memset((unsigned char *)_class->data, 0, totalSizeClass - _class->sizeClass);
1255 _class->offsetClass = offsetClass;
1256 _class->sizeClass = totalSizeClass;
1258 struct __ecereNameSpace__ecere__com__Method * method, * next;
1259 struct __ecereNameSpace__ecere__com__Class * b;
1260 unsigned int needUpdate = (mod != (base->templateClass ? base->templateClass : base) || _class->vTblSize != mod->vTblSize);
1261 int updateStart = -1, updateEnd = -1;
1263 if(mod->base && mod->base->base && mod->base->vTblSize > baseClass->vTblSize && needUpdate)
1265 _class->vTblSize += mod->base->vTblSize - baseClass->vTblSize;
1266 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
1267 memmove(_class->_vTbl + mod->base->vTblSize, _class->_vTbl + baseClass->vTblSize, (_class->vTblSize - mod->vTblSize) * sizeof(void *));
1268 updateStart = baseClass->vTblSize;
1269 updateEnd = updateStart + mod->base->vTblSize - baseClass->vTblSize;
1270 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
1272 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
1273 if(method->type == 1)
1274 method->vid += mod->base->vTblSize - baseClass->vTblSize;
1277 for(b = mod->base; b && b != (((void *)0)); b = b->base)
1279 struct __ecereNameSpace__ecere__com__Method * vMethod;
1281 for(vMethod = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&b->methods); vMethod; vMethod = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)vMethod)))
1283 if(vMethod->type == 1)
1285 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, vMethod->name);
1288 if(method->function)
1289 _class->_vTbl[vMethod->vid] = method->function;
1292 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1293 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1294 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1298 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1299 method->type = vMethod->type;
1300 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(vMethod->dataTypeString);
1301 method->_class = vMethod->_class;
1304 else if((vMethod->vid >= updateStart && vMethod->vid < updateEnd) || _class->_vTbl[vMethod->vid] == b->_vTbl[vMethod->vid])
1305 _class->_vTbl[vMethod->vid] = _class->base->_vTbl[vMethod->vid];
1310 if(type == 0 || type == 5 || type == 1)
1312 struct __ecereNameSpace__ecere__com__Property * prop;
1313 struct __ecereNameSpace__ecere__com__DataMember * member;
1314 struct __ecereNameSpace__ecere__com__Class * c;
1316 for(c = mod->base; c; c = c->base)
1318 struct __ecereNameSpace__ecere__com__Property * _property;
1320 for(_property = c->membersAndProperties.first; _property; _property = _property->next)
1322 if(_property->isProperty)
1324 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
1329 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
1331 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
1333 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
1335 if(watcher->_property == prop)
1336 watcher->_property = _property;
1338 _property->selfWatchable = 0x1;
1339 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1340 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
1341 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
1342 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
1349 for(member = _class->membersAndProperties.first; member; member = member->next)
1351 int offsetDiff = _class->offset - offsetBefore;
1353 if(!member->isProperty && offsetDiff > 0)
1355 member->offset += offsetDiff;
1356 member->memberOffset += offsetDiff;
1358 member->id += mod->base->memberID;
1360 _class->memberID += mod->base->memberID;
1361 _class->startMemberID += mod->base->memberID;
1364 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, mod);
1366 struct __ecereNameSpace__ecere__com__Class * c;
1368 for(c = mod->base; c; c = c->base)
1370 struct __ecereNameSpace__ecere__com__ClassProperty * _property;
1372 for(_property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&c->classProperties); _property; _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)_property)))
1374 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
1380 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1382 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
1384 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
1385 char * templateParams = strchr(template->name, '<');
1387 template->base = base->base;
1388 template->_vTbl = base->_vTbl;
1389 template->data = base->data;
1390 template->offset = base->offset;
1391 template->offsetClass = base->offsetClass;
1392 template->sizeClass = base->sizeClass;
1393 template->structSize = base->structSize;
1394 template->vTblSize = base->vTblSize;
1395 __ecereNameSpace__ecere__com__FixDerivativesBase(template, mod);
1400 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
1402 struct __ecereNameSpace__ecere__com__Application
1407 unsigned int isGUIApp;
1408 struct __ecereNameSpace__ecere__sys__OldList allModules;
1409 char * parsedCommand;
1410 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1411 } __attribute__ ((gcc_struct));
1413 extern char * strncpy(char * , const char * , size_t n);
1415 extern int strcmp(const char * , const char * );
1417 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base);
1419 extern int printf(char * , ...);
1421 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace);
1423 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset);
1425 extern char * strcpy(char * , const char * );
1427 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template);
1429 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg);
1431 extern char * strstr(const char * , const char * );
1433 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b);
1435 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1437 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1439 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data);
1441 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1443 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, char * name, char * baseName, int size, int sizeClass, unsigned int (* Constructor)(void *), void (* Destructor)(void *), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess)
1445 void * __ecereTemp1;
1447 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
1448 unsigned int force64Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 2) ? 0x1 : 0x0;
1449 unsigned int force32Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 4) ? 0x1 : 0x0;
1450 unsigned int inCompiler = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 8) ? 0x1 : 0x0;
1451 unsigned int crossBits = force32Bits || force64Bits;
1454 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
1456 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
1458 for(c = 0; name[c]; c++)
1460 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
1462 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
1463 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
1465 strncpy(spaceName, name + start, c - start);
1466 spaceName[c - start] = '\0';
1467 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
1470 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
1471 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1472 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1473 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1474 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1475 (*newSpace).name = spaceName;
1476 (*newSpace).parent = nameSpace;
1477 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
1480 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
1481 nameSpace = newSpace;
1493 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (((void *)0));
1494 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
1495 char * dataTypeString = (((void *)0));
1496 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1497 struct __ecereNameSpace__ecere__com__Class * base = (baseName && baseName[0]) ? __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName) : (((void *)0));
1498 unsigned int refine = 0x0;
1500 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1502 if(base->type == 1 && type == 0)
1507 if(base && (type == 0 || type == 5 || type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1511 if(!base || base->type == 1000)
1515 if(base || !baseName || !baseName[0] || !strcmp(baseName, "unsigned int") || !strcmp(baseName, "uint") || !strcmp(baseName, "unsigned int64") || !strcmp(baseName, "uint64") || !strcmp(baseName, "int64") || !strcmp(baseName, "unsigned short") || !strcmp(baseName, "short") || !strcmp(baseName, "unsigned char") || !strcmp(baseName, "byte") || !strcmp(baseName, "char") || !strcmp(baseName, "uint32") || !strcmp(baseName, "uint16"))
1517 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1518 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1522 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1523 base->internalDecl = 0x1;
1525 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1528 else if(type == 1 && (!baseName || !baseName[0]))
1530 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "struct");
1531 dataTypeString = name + start;
1536 dataTypeString = "struct __ecereNameSpace__ecere__com__Instance";
1538 dataTypeString = "void *";
1540 dataTypeString = (baseName && baseName[0]) ? baseName : "unsigned int";
1542 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1544 dataTypeString = name + start;
1545 if(base || (!baseName || !baseName[0]) || type == 2 || type == 3)
1547 if(base || !baseName || !baseName[0] || !strcmp(baseName, "unsigned int") || !strcmp(baseName, "uint") || !strcmp(baseName, "unsigned int64") || !strcmp(baseName, "uint64") || !strcmp(baseName, "int64") || !strcmp(baseName, "unsigned short") || !strcmp(baseName, "short") || !strcmp(baseName, "unsigned char") || !strcmp(baseName, "byte") || !strcmp(baseName, "char") || !strcmp(baseName, "uint32") || !strcmp(baseName, "uint16"))
1549 if(type == 0 && strcmp(name, "ecere::com::Instance") && strcmp(name, "enum") && strcmp(name, "struct"))
1550 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1552 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1567 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1570 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1572 offsetClass = base ? base->sizeClass : (type == 5 ? 0 : 0);
1573 totalSizeClass = offsetClass + sizeClass;
1574 if((_class = __ecereNameSpace__ecere__com__eSystem_FindClass(module, name)))
1576 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1577 if(!_class->internalDecl)
1580 printf("error: Redefinition of class %s\n", name);
1583 _class->comRedefinition = 0x1;
1586 return (((void *)0));
1588 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, name + start);
1589 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1591 struct __ecereNameSpace__ecere__sys__OldLink * t;
1593 for(t = _class->templatized.first; t; t = t->next)
1595 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1597 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1598 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1602 struct __ecereNameSpace__ecere__com__NameSpace * ns = _class->nameSpace;
1604 while((*ns).parent && !__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*ns).classes) && !__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*ns).functions) && !__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*ns).defines) && !__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*ns).nameSpaces))
1606 struct __ecereNameSpace__ecere__com__NameSpace * parent = (*ns).parent;
1608 __ecereNameSpace__ecere__com__NameSpace_Free(ns);
1609 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*parent).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)ns);
1617 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->privateNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1619 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->publicNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1621 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->privateNameSpace, name + start, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1623 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->publicNameSpace, name + start, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1625 _class = classLink->data;
1626 if(_class && _class->internalDecl)
1628 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1629 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1631 struct __ecereNameSpace__ecere__sys__OldLink * t;
1633 for(t = _class->templatized.first; t; t = t->next)
1635 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1637 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1638 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1642 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
1643 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1647 _class = __ecereNameSpace__ecere__com___calloc(1, sizeof(struct __ecereNameSpace__ecere__com__Class));
1648 _class->methods.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1649 _class->members.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1650 _class->prop.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1651 _class->classProperties.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1652 _class->name = __ecereNameSpace__ecere__sys__CopyString(name + start);
1653 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1658 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = _class->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = _class, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
1660 struct __ecereNameSpace__ecere__sys__OldLink * t;
1662 for(t = _class->templatized.first; t; t = t->next)
1664 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1666 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = template->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = template, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
1672 if(!base && baseName && strcmp(baseName, name))
1674 if(strchr(baseName, '<'))
1676 char templateClassName[1024];
1677 struct __ecereNameSpace__ecere__com__Class * templateBase;
1679 strcpy(templateClassName, baseName);
1680 *strchr(templateClassName, '<') = '\0';
1681 templateBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, templateClassName);
1684 templateBase = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, templateClassName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1685 templateBase->internalDecl = 0x1;
1687 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName);
1691 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1692 base->internalDecl = 0x1;
1696 _class->internalDecl = 0x0;
1699 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1700 if(base && base->type != 1000 && base->type != 4)
1701 memcpy(_class->data, base->data, offsetClass);
1703 memset(_class->data, 0, offsetClass);
1704 memset((unsigned char *)_class->data + offsetClass, 0, sizeClass);
1706 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1707 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1708 _class->defaultAlignment = base ? base->defaultAlignment : 0;
1711 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->classes, _class);
1715 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1716 struct __ecereNameSpace__ecere__sys__OldLink * deriv = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(&base->derivatives, _class);
1718 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1722 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes, _class);
1724 _class->nameSpace = nameSpace;
1726 struct __ecereNameSpace__ecere__sys__OldLink * t;
1728 for(t = _class->templatized.first; t; t = t->next)
1730 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1732 template->nameSpace = nameSpace;
1735 _class->module = module;
1736 _class->base = base;
1740 struct __ecereNameSpace__ecere__com__Class * sClass;
1742 for(sClass = base; sClass; sClass = sClass->base)
1744 if(sClass->templateClass)
1745 sClass = sClass->templateClass;
1746 numParams += sClass->templateParams.count;
1750 if(_class->templateArgs)
1752 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1754 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1755 _class->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
1756 _class->numParams = numParams;
1757 for(sClass = _class; sClass; sClass = sClass->base)
1759 struct __ecereNameSpace__ecere__com__Class * prevClass;
1760 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1763 if(sClass->templateClass)
1764 sClass = sClass->templateClass;
1765 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
1767 if(prevClass->templateClass)
1768 prevClass = prevClass->templateClass;
1769 id += prevClass->templateParams.count;
1771 if(base->templateArgs)
1773 for(param = sClass->templateParams.first; param; param = param->next)
1775 _class->templateArgs[id] = base->templateArgs[id];
1776 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &_class->templateArgs[id]);
1783 _class->memberID = _class->startMemberID = (base && (type == 0 || type == 5 || type == 1)) ? base->memberID : 0;
1784 if(type == 0 || type == 5)
1785 _class->offset = (base && base->structSize && base->type != 1000) ? base->structSize : ((type == 5) ? 0 : (force64Bits ? 24 : (force32Bits && inCompiler) ? 12 : structSize_Instance));
1788 if(strstr(name, "ecere::sys::EARHeader") || strstr(name, "AnchorValue") || !strcmp(name, "ecere::com::CustomAVLTree") || !strcmp(name, "ecere::sys::Mutex"))
1792 if(!strcmp(name, "ecere::sys::FileListing"))
1794 size = 3 * (force32Bits ? 4 : 8);
1795 _class->structAlignment = force32Bits ? 4 : 8;
1797 else if(!strcmp(name, "ecere::com::Class"))
1799 else if(!strcmp(name, "ecere::com::ClassProperty"))
1801 else if(!strcmp(name, "ecere::com::NameSpace"))
1803 else if(!strcmp(name, "ecere::sys::BufferedFile"))
1805 else if(!strcmp(name, "ecere::sys::BTNode"))
1807 else if(!strcmp(name, "ecere::sys::StringBTNode"))
1809 else if(!strcmp(name, "ecere::sys::OldList"))
1811 else if(!strcmp(name, "ecere::sys::Item"))
1813 else if(!strcmp(name, "ecere::sys::NamedLink"))
1815 else if(!strcmp(name, "ecere::sys::OldLink"))
1817 else if(!strcmp(name, "ecere::sys::NamedItem"))
1819 else if(!strcmp(name, "ecere::sys::NamedItem64"))
1821 else if(!strcmp(name, "ecere::sys::BinaryTree"))
1823 else if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application && inCompiler)
1831 _class->memberOffset = (base && base->structSize && base->type != 1000) ? base->structSize : 0;
1832 _class->typeSize = _class->structSize = _class->memberOffset + size;
1834 else if(type == 2 || type == 4 || type == 3)
1836 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1839 _class->typeSize = dataTypeClass->typeSize;
1840 _class->structSize = 0;
1842 else if(type == 0 || type == 5)
1844 _class->structSize = _class->offset + size;
1845 _class->typeSize = sizeof(void *);
1847 _class->offsetClass = offsetClass;
1848 _class->sizeClass = totalSizeClass;
1849 _class->Constructor = (void *)Constructor;
1850 _class->Destructor = Destructor;
1851 if(_class->type != 1000)
1852 _class->type = type;
1854 _class->computeSize = 0x1;
1856 _class->computeSize = 0x0;
1857 _class->inheritanceAccess = inheritanceAccess;
1861 _class->base = base = enumBase;
1863 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1865 if(base && base->type != 4)
1868 data->largest = ((struct __ecereNameSpace__ecere__com__EnumClassData *)base->data)->largest;
1871 if(base && base->vTblSize)
1873 _class->vTblSize = base->vTblSize;
1874 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1875 _class->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(int (*)()) * _class->vTblSize);
1876 memcpy(_class->_vTbl, base->_vTbl, sizeof(int (*)()) * _class->vTblSize);
1880 struct __ecereNameSpace__ecere__sys__OldLink * link = (link = __ecereNameSpace__ecere__com__eSystem_New0(structSize_OldLink), link->data = _class, link);
1882 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->base->derivatives, link);
1884 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
1888 return (((void *)0));
1891 static void __ecereNameSpace__ecere__com__DataMember_Free(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
1893 struct __ecereNameSpace__ecere__com__DataMember * member;
1894 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1896 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->name), parentMember->name = 0);
1897 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->dataTypeString), parentMember->dataTypeString = 0);
1898 while((member = parentMember->members.first))
1900 __ecereNameSpace__ecere__com__DataMember_Free(member);
1901 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&parentMember->members, member);
1903 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentMember->membersAlpha)))
1905 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentMember->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1909 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1911 struct __ecereNameSpace__ecere__sys__NamedLink
1913 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
1914 struct __ecereNameSpace__ecere__sys__NamedLink * next;
1917 } __attribute__ ((gcc_struct));
1919 static void __ecereNameSpace__ecere__com__FreeEnumValue(struct __ecereNameSpace__ecere__sys__NamedLink * value)
1921 (__ecereNameSpace__ecere__com__eSystem_Delete(value->name), value->name = 0);
1924 static void __ecereNameSpace__ecere__com__FreeTemplateArg(struct __ecereNameSpace__ecere__com__Class * template, struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, int id)
1929 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1932 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1939 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template)
1941 if(template->templateArgs)
1943 struct __ecereNameSpace__ecere__com__Class * _class;
1945 for(_class = template; _class; _class = _class->base)
1947 struct __ecereNameSpace__ecere__com__Class * prevClass;
1948 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1951 if(_class->templateClass)
1952 _class = _class->templateClass;
1953 for(prevClass = _class->base; prevClass; prevClass = prevClass->base)
1955 if(prevClass->templateClass)
1956 prevClass = prevClass->templateClass;
1957 id += prevClass->templateParams.count;
1959 if(id < template->numParams)
1961 for(param = _class->templateParams.first; param; param = param->next)
1966 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1969 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1981 static void __ecereNameSpace__ecere__com__FreeTemplate(struct __ecereNameSpace__ecere__com__Class * template)
1983 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
1985 if(template->nameSpace)
1987 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
1989 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1991 __ecereNameSpace__ecere__com__FreeTemplateArgs(template);
1992 (__ecereNameSpace__ecere__com__eSystem_Delete(template->fullName), template->fullName = 0);
1993 (__ecereNameSpace__ecere__com__eSystem_Delete(template->name), template->name = 0);
1994 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs), template->templateArgs = 0);
1995 (__ecereNameSpace__ecere__com__eSystem_Delete(template->dataTypeString), template->dataTypeString = 0);
1996 while((deriv = template->derivatives.first))
1998 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
1999 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&template->derivatives, deriv);
2001 __ecereNameSpace__ecere__com___free(template);
2004 static void __ecereNameSpace__ecere__com__FreeTemplates(struct __ecereNameSpace__ecere__com__Class * _class)
2006 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
2008 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
2010 __ecereNameSpace__ecere__com__FreeTemplates(deriv->data);
2012 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
2013 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
2014 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2015 while((template = _class->templatized.first))
2017 __ecereNameSpace__ecere__com__FreeTemplates(template->data);
2018 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
2019 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
2023 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
2025 void __ecereNameSpace__ecere__com__eClass_Unregister(struct __ecereNameSpace__ecere__com__Class * _class)
2027 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
2028 struct __ecereNameSpace__ecere__com__DataMember * member;
2029 struct __ecereNameSpace__ecere__com__Method * method;
2030 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
2031 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
2032 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2034 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
2035 __ecereNameSpace__ecere__com__FreeTemplates(_class);
2036 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
2037 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
2038 while((template = _class->templatized.first))
2040 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
2041 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
2043 while((member = _class->membersAndProperties.first))
2045 if(!member->isProperty && (member->type == 1 || member->type == 2))
2046 __ecereNameSpace__ecere__com__DataMember_Free(member);
2047 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
2048 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
2049 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, member);
2051 while((member = _class->conversions.first))
2053 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
2054 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
2055 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->conversions, member);
2057 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->prop)))
2059 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
2061 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->members)))
2063 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
2065 while((classProp = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->classProperties)))
2067 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->name), classProp->name = 0);
2068 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->dataTypeString), classProp->dataTypeString = 0);
2069 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)classProp);
2071 while((method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods)))
2073 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
2074 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
2075 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
2077 if(_class->type == 4)
2079 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
2081 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&data->values, (void *)__ecereNameSpace__ecere__com__FreeEnumValue);
2083 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->delayedCPValues, (((void *)0)));
2084 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->selfWatchers, (((void *)0)));
2087 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
2089 for(deriv = base->derivatives.first; deriv; deriv = deriv->next)
2091 if(deriv->data == _class)
2095 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
2097 while((deriv = _class->derivatives.first))
2099 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2100 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->derivatives, deriv);
2102 if(_class->nameSpace)
2104 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
2106 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2108 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->name), _class->name = 0);
2109 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
2110 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2111 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->data), _class->data = 0);
2112 while((param = _class->templateParams.first))
2117 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.dataTypeString), param->defaultArg.dataTypeString = 0);
2120 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.memberString), param->defaultArg.memberString = 0);
2125 if(param->type != 1)
2126 (__ecereNameSpace__ecere__com__eSystem_Delete(param->dataTypeString), param->dataTypeString = 0);
2127 (__ecereNameSpace__ecere__com__eSystem_Delete(param->name), param->name = 0);
2128 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templateParams, param);
2130 __ecereNameSpace__ecere__com___free(_class);
2133 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, uintptr_t key);
2135 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__ScanNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2137 struct __ecereNameSpace__ecere__sys__BinaryTree * tree = (struct __ecereNameSpace__ecere__sys__BinaryTree *)((unsigned char *)nameSpace + (unsigned int)listOffset);
2138 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find((&*tree), (uintptr_t)name);
2139 struct __ecereNameSpace__ecere__com__NameSpace * child;
2143 for(child = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&nameSpace->nameSpaces); child; child = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)child)))
2145 link = __ecereNameSpace__ecere__com__ScanNameSpace(child, name, listOffset);
2153 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2159 for(c = 0; (ch = name[c]); c++)
2165 if(level == 0 && (ch == '.' || (ch == ':' && name[c + 1] == ':')))
2167 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
2168 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
2170 memcpy(spaceName, name + start, c - start);
2171 spaceName[c - start] = '\0';
2172 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&nameSpace->nameSpaces, spaceName);
2173 __ecereNameSpace__ecere__com___free(spaceName);
2175 return (((void *)0));
2176 nameSpace = newSpace;
2177 if(level == 0 && ch == ':')
2184 return __ecereNameSpace__ecere__com__ScanNameSpace(nameSpace, name + start, listOffset);
2186 return (((void *)0));
2189 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchModule(struct __ecereNameSpace__ecere__com__Instance * module, char * name, void * listOffset, unsigned int searchPrivate)
2191 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2192 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2196 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace, name, listOffset);
2200 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace, name, listOffset);
2203 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.first; subModule; subModule = subModule->next)
2205 if(searchPrivate || subModule->importMode == 1)
2207 link = __ecereNameSpace__ecere__com__SearchModule(subModule->module, name, listOffset, 0x0);
2212 return (((void *)0));
2215 extern int isspace(int c);
2217 long long __ecereNameSpace__ecere__com___strtoi64(char * string, char ** endString, int base)
2219 long long value = 0;
2224 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2236 if(ch == '0' && string[c + 1] == 'x')
2249 for(; (ch = string[c]); c++)
2251 if(ch >= '0' && ch <= '9')
2253 else if(ch >= 'a' && ch <= 'z')
2255 else if(ch >= 'A' && ch <= 'Z')
2260 *endString = string + c;
2271 *endString = string + c;
2275 return sign * value;
2278 uint64 __ecereNameSpace__ecere__com___strtoui64(char * string, char ** endString, int base)
2285 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2297 if(ch == '0' && string[c + 1] == 'x')
2310 for(; (ch = string[c]); c++)
2312 if(ch >= '0' && ch <= '9')
2314 else if(ch >= 'a' && ch <= 'z')
2316 else if(ch >= 'A' && ch <= 'Z')
2321 *endString = string + c;
2332 *endString = string + c;
2336 return sign * value;
2339 extern char * strcat(char * , const char * );
2341 extern size_t strlen(const char * );
2343 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
2345 void * __ecereTemp1;
2349 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2351 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2354 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2358 char noTemplateName[1024];
2359 char * templateParams = strchr(name, '<');
2363 strncpy(noTemplateName, name, templateParams - name);
2364 noTemplateName[templateParams - name] = '\0';
2367 strcpy(noTemplateName, name);
2368 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2370 link = __ecereNameSpace__ecere__com__SearchModule(module, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2373 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
2374 struct __ecereNameSpace__ecere__com__Class * templatedClass = (((void *)0));
2375 char className[1024];
2377 strcpy(className, _class->fullName);
2378 strcat(className, templateParams);
2379 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2382 link = __ecereNameSpace__ecere__com__SearchModule(module, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2385 if(_class && templateParams)
2387 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct1 =
2391 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct0 =
2396 templatedClass = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Class);
2397 *templatedClass = *_class;
2398 templatedClass->templateClass = _class;
2399 templatedClass->fullName = __ecereNameSpace__ecere__sys__CopyString(className);
2400 templatedClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(_class->dataTypeString);
2401 templatedClass->name = __ecereNameSpace__ecere__sys__CopyString(templatedClass->fullName + strlen(_class->fullName) - strlen(_class->name));
2402 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*templatedClass->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = templatedClass->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = templatedClass, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
2403 templatedClass->templateArgs = (((void *)0));
2404 templatedClass->numParams = 0;
2405 templatedClass->derivatives = __simpleStruct0;
2406 templatedClass->templatized = __simpleStruct1;
2407 __ecereNameSpace__ecere__com__ComputeClassParameters(templatedClass, templateParams, module);
2408 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templatized, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_OldLink), ((struct __ecereNameSpace__ecere__sys__OldLink *)__ecereTemp1)->data = templatedClass, ((struct __ecereNameSpace__ecere__sys__OldLink *)__ecereTemp1)));
2410 return templatedClass;
2414 return (((void *)0));
2417 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg)
2422 arg->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(arg->dataTypeString);
2427 arg->memberString = __ecereNameSpace__ecere__sys__CopyString(arg->memberString);
2432 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
2434 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
2436 extern double strtod(char * , char * * );
2438 extern int sprintf(char * , char * , ...);
2440 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos);
2442 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2444 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2446 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule)
2449 char * nextParamStart = templateParams ? (templateParams + 1) : (((void *)0));
2450 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam = (((void *)0));
2451 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0)), * sClass;
2454 struct __ecereNameSpace__ecere__com__Class * _class = templatedClass->templateClass ? templatedClass->templateClass : templatedClass;
2456 for(sClass = _class; sClass; sClass = sClass->base)
2458 if(sClass->templateClass)
2459 sClass = sClass->templateClass;
2460 numParams += sClass->templateParams.count;
2462 if(templatedClass->templateArgs)
2463 __ecereNameSpace__ecere__com__FreeTemplateArgs(templatedClass);
2464 (__ecereNameSpace__ecere__com__eSystem_Delete(templatedClass->templateArgs), templatedClass->templateArgs = 0);
2465 templatedClass->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
2466 templatedClass->numParams = numParams;
2467 if(_class != templatedClass)
2470 if(templatedClass->base && templatedClass->base->templateArgs && _class == templatedClass)
2472 struct __ecereNameSpace__ecere__com__Class * sClass;
2474 memcpy(templatedClass->templateArgs, templatedClass->base->templateArgs, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams - templatedClass->templateParams.count));
2475 for(sClass = templatedClass->base; sClass; sClass = sClass->base)
2477 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2478 struct __ecereNameSpace__ecere__com__Class * prevClass;
2481 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
2483 if(prevClass->templateClass)
2484 prevClass = prevClass->templateClass;
2485 id += prevClass->templateParams.count;
2487 if(sClass->templateClass)
2488 sClass = sClass->templateClass;
2489 for(param = sClass->templateParams.first; param; param = param->next)
2490 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[id++]);
2493 while(nextParamStart)
2495 char * paramStart = nextParamStart;
2499 while(*paramStart == ' ')
2501 paramEnd = paramStart;
2502 while((ch = *paramEnd, ch && (level > 0 || (ch != '>' && ch != ','))))
2510 nextParamStart = (ch == ',') ? (paramEnd + 1) : (((void *)0));
2511 while(*paramEnd == ' ')
2513 if(paramEnd > paramStart)
2515 char * ptr, * equal = (((void *)0));
2517 for(ptr = paramStart; ptr <= paramEnd; ptr++)
2527 char * end = equal - 1;
2532 strncpy(ident, paramStart, end + 1 - paramStart);
2533 ident[end + 1 - paramStart] = (char)0;
2534 for(sClass = _class; sClass; sClass = sClass->base)
2536 if(sClass->templateClass)
2537 sClass = sClass->templateClass;
2538 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
2540 if(!strcmp(curParam->name, ident))
2545 struct __ecereNameSpace__ecere__com__Class * nextClass;
2546 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prevParam;
2549 for(prevParam = curParam->prev; prevParam; prevParam = prevParam->prev)
2551 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2553 if(nextClass->templateClass)
2554 nextClass = nextClass->templateClass;
2555 curParamID += nextClass->templateParams.count;
2566 curParam = curParam->next;
2571 for(sClass = lastClass ? lastClass->base : _class; sClass; sClass = sClass->base)
2573 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2576 if(sClass->templateClass)
2577 sClass = sClass->templateClass;
2578 for(param = sClass->templateParams.first; param; param = param->next, curParamID++)
2585 struct __ecereNameSpace__ecere__com__Class * nextClass;
2587 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2589 if(nextClass->templateClass)
2590 nextClass = nextClass->templateClass;
2591 curParamID += nextClass->templateParams.count;
2601 struct __ecereNameSpace__ecere__com__ClassTemplateArgument argument =
2610 while(*equal == ' ')
2612 memcpy(value, equal, paramEnd - equal);
2613 value[paramEnd - equal] = (char)0;
2617 memcpy(value, paramStart, paramEnd - paramStart);
2618 value[paramEnd - paramStart] = (char)0;
2620 __ecereNameSpace__ecere__sys__TrimRSpaces(value, value);
2621 switch(curParam->type)
2624 argument.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value);
2625 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, value);
2626 if(!argument.dataTypeClass)
2627 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application, value);
2628 if(!argument.dataTypeClass)
2629 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, value);
2633 struct __ecereNameSpace__ecere__com__Class * expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, curParam->dataTypeString);
2636 expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application, curParam->dataTypeString);
2639 ((unsigned int (*)(void *, void *, const char *))(void *)expClass->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(expClass, &argument.expression, value);
2641 else if(value[0] == '\"')
2643 char * endQuote = value + strlen(value) - 1;
2645 if(*endQuote != '\"')
2648 argument.expression.p = __ecereNameSpace__ecere__sys__CopyString(value + 1);
2650 else if(value[0] == '\'')
2653 unsigned int ch = __ecereNameSpace__ecere__sys__UTF8GetChar(value + 1, &nb);
2655 argument.expression.ui = ch;
2657 else if(!strcmp(curParam->dataTypeString, "uint"))
2659 argument.expression.ui = strtoul(value, (((void *)0)), 0);
2661 else if(!strcmp(curParam->dataTypeString, "char"))
2663 argument.expression.c = (char)strtol(value, (((void *)0)), 0);
2665 else if(!strcmp(curParam->dataTypeString, "byte"))
2667 argument.expression.uc = (unsigned char)strtoul(value, (((void *)0)), 0);
2669 else if(!strcmp(curParam->dataTypeString, "short"))
2671 argument.expression.s = (short)strtol(value, (((void *)0)), 0);
2673 else if(!strcmp(curParam->dataTypeString, "uint16"))
2675 argument.expression.us = (unsigned short)strtoul(value, (((void *)0)), 0);
2677 else if(!strcmp(curParam->dataTypeString, "int64"))
2679 argument.expression.i64 = __ecereNameSpace__ecere__com___strtoi64(value, (((void *)0)), 0);
2681 else if(!strcmp(curParam->dataTypeString, "uint64"))
2683 argument.expression.ui64 = __ecereNameSpace__ecere__com___strtoui64(value, (((void *)0)), 0);
2685 else if(!strcmp(curParam->dataTypeString, "float"))
2687 argument.expression.f = (float)strtod(value, (((void *)0)));
2689 else if(!strcmp(curParam->dataTypeString, "double"))
2691 argument.expression.d = strtod(value, (((void *)0)));
2695 argument.expression.i = strtol(value, (((void *)0)), 0);
2700 argument.memberString = __ecereNameSpace__ecere__sys__CopyString(value);
2703 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, curParam, curParamID);
2704 templatedClass->templateArgs[curParamID] = argument;
2708 if(templatedClass == _class)
2710 struct __ecereNameSpace__ecere__com__Class * sClass = _class;
2712 struct __ecereNameSpace__ecere__com__Class * nextClass;
2713 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2715 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2717 if(nextClass->templateClass)
2718 nextClass = nextClass->templateClass;
2719 curParamID += nextClass->templateParams.count;
2721 for(param = sClass->templateParams.first; param; param = param->next)
2723 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2725 templatedClass->templateArgs[curParamID] = param->defaultArg;
2726 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2727 if(param->type == 0 && param->defaultArg.dataTypeString)
2729 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2730 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2731 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, param->defaultArg.dataTypeString);
2732 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2733 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2739 if(templatedClass->base && templatedClass->base->templateArgs && numParams - _class->templateParams.count)
2741 int c = numParams - _class->templateParams.count - 1;
2743 for(sClass = _class->base; sClass; sClass = sClass->base)
2745 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2747 if(sClass->templateClass)
2748 sClass = sClass->templateClass;
2749 for(param = sClass->templateParams.last; param; param = param->prev)
2751 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2752 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * baseArg = &templatedClass->base->templateArgs[c];
2754 if(!(*arg).dataTypeString)
2756 *arg = templatedClass->base->templateArgs[c];
2757 __ecereNameSpace__ecere__com__CopyTemplateArg(param, arg);
2758 if(param->type == 0)
2760 if((*arg).dataTypeClass && strchr((*arg).dataTypeString, '<') && (*arg).dataTypeClass->templateArgs)
2762 struct __ecereNameSpace__ecere__com__Class * expClass = (*arg).dataTypeClass;
2763 struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0));
2766 char templateString[1024];
2768 sprintf(templateString, "%s<", expClass->templateClass->fullName);
2769 for(cClass = expClass; cClass; cClass = cClass->base)
2772 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2774 for(param = cClass->templateParams.first; param; param = param->next)
2777 struct __ecereNameSpace__ecere__com__Class * sClass;
2778 struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg;
2780 for(sClass = expClass->base; sClass; sClass = sClass->base)
2781 id += sClass->templateParams.count;
2782 arg = expClass->templateArgs[id];
2784 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2785 int p = numParams - _class->templateParams.count;
2787 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2789 if(cParam->type == 0 && arg.dataTypeString && !strcmp(cParam->name, arg.dataTypeString))
2791 arg.dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2792 arg.dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2809 strcat(argument, arg.member->name);
2814 if(arg.dataTypeString)
2815 strcat(argument, arg.dataTypeString);
2822 strcat(templateString, ", ");
2823 if(lastParam != p - 1)
2825 strcat(templateString, param->name);
2826 strcat(templateString, " = ");
2828 strcat(templateString, argument);
2837 int len = strlen(templateString);
2839 if(templateString[len - 1] == '>')
2840 templateString[len++] = ' ';
2841 templateString[len++] = '>';
2842 templateString[len++] = '\0';
2844 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2845 (*arg).dataTypeString = __ecereNameSpace__ecere__sys__CopyString(templateString);
2846 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, templateString);
2847 if(!(*arg).dataTypeClass)
2848 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, templateString);
2852 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2853 int p = numParams - _class->templateParams.count;
2855 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2857 if(cParam->type == 0 && (*baseArg).dataTypeString && !strcmp(cParam->name, (*baseArg).dataTypeString))
2859 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2860 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2861 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2862 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2874 struct __ecereNameSpace__ecere__com__Class * sClass;
2876 for(sClass = _class; sClass; sClass = sClass->base)
2879 struct __ecereNameSpace__ecere__com__Class * nextClass;
2880 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2882 if(sClass->templateClass)
2883 sClass = sClass->templateClass;
2884 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2886 if(nextClass->templateClass)
2887 nextClass = nextClass->templateClass;
2888 curParamID += nextClass->templateParams.count;
2890 for(param = sClass->templateParams.first; param; param = param->next)
2892 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2894 templatedClass->templateArgs[curParamID] = param->defaultArg;
2895 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2896 if(param->type == 0 && param->defaultArg.dataTypeString)
2898 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2899 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2900 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, param->defaultArg.dataTypeString);
2901 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2902 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2910 int c = numParams - 1;
2912 for(sClass = _class; sClass; sClass = sClass->base)
2914 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2916 if(sClass->templateClass)
2917 sClass = sClass->templateClass;
2918 for(param = sClass->templateParams.last; param; param = param->prev)
2920 if(param->type == 0)
2922 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2923 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2924 struct __ecereNameSpace__ecere__com__Class * dClass;
2925 int p = numParams - 1;
2927 for(dClass = _class; dClass; dClass = dClass->base)
2929 if(dClass->templateClass)
2930 dClass = dClass->templateClass;
2931 for(cParam = dClass->templateParams.last; cParam; cParam = cParam->prev, p--)
2933 if(cParam->type == 0 && (*arg).dataTypeString && !strcmp(cParam->name, (*arg).dataTypeString))
2935 if(templatedClass->templateArgs[p].dataTypeString && c != p)
2937 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2938 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2939 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2940 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2951 struct __ecereNameSpace__ecere__com__Class * tClass;
2952 int c = numParams - 1;
2954 for(tClass = _class; tClass; tClass = tClass->base)
2956 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2958 if(tClass->templateClass)
2959 tClass = tClass->templateClass;
2960 for(param = tClass->templateParams.last; param; param = param->prev)
2962 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2964 if(param->type == 1 && (*arg).memberString)
2966 struct __ecereNameSpace__ecere__com__Class * memberClass = templatedClass;
2967 char * memberString = (*arg).memberString;
2968 char * colon = strstr(memberString, "::");
2969 char * memberName = memberString;
2972 memberName = colon + 2;
2975 memberString = param->defaultArg.memberString;
2976 colon = memberString ? strstr(memberString, "::") : (((void *)0));
2980 char className[1024];
2981 struct __ecereNameSpace__ecere__com__Class * sClass;
2983 memcpy(className, memberString, colon - memberString);
2984 className[colon - memberString] = '\0';
2985 for(sClass = _class; sClass; sClass = sClass->base)
2987 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2988 struct __ecereNameSpace__ecere__com__Class * nextClass;
2991 if(sClass->templateClass)
2992 sClass = sClass->templateClass;
2993 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2995 if(nextClass->templateClass)
2996 nextClass = nextClass->templateClass;
2997 id += nextClass->templateParams.count;
2999 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
3001 if(cParam->type == 0 && !strcmp(cParam->name, className) && templatedClass->templateArgs[id].dataTypeString)
3003 strcpy(className, templatedClass->templateArgs[id].dataTypeString);
3008 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, className);
3010 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, className);
3012 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, className);
3016 switch(param->memberType)
3019 (*arg).member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
3022 (*arg).method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
3025 (*arg).prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
3036 unsigned int __ecereNameSpace__ecere__com__DefaultFunction()
3041 unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3043 if(!_class && !from)
3045 if(_class && from && (_class->templateClass || from->templateClass))
3047 if(__ecereNameSpace__ecere__com__eClass_IsDerived(_class->templateClass ? _class->templateClass : _class, from->templateClass ? from->templateClass : from))
3049 if(!from->templateClass)
3051 else if(!_class->templateClass && _class == from->templateClass)
3055 struct __ecereNameSpace__ecere__com__Class * sClass;
3057 for(sClass = from; sClass; sClass = sClass->base)
3059 if(sClass->templateParams.first)
3061 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
3062 struct __ecereNameSpace__ecere__com__Class * nextClass;
3065 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
3066 p += nextClass->templateParams.count;
3067 for(param = sClass->templateParams.first; param; param = param->next, p++)
3069 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &_class->templateArgs[p];
3070 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * fArg = &from->templateArgs[p];
3072 if(param->type == 0)
3074 if((*arg).dataTypeString != (*fArg).dataTypeString && (*arg).dataTypeString && (*fArg).dataTypeString && strcmp((*arg).dataTypeString, (*fArg).dataTypeString))
3077 else if(param->type == 1)
3079 if((*arg).member != (*fArg).member)
3082 else if(param->type == 2)
3084 if((*arg).expression.ui64 != (*fArg).expression.ui64)
3098 for(; _class && from; _class = _class->base)
3100 if(_class == from || _class->templateClass == from || (_class->type == 1000 && from->name && !strcmp(_class->name, from->name)))
3107 static void __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(struct __ecereNameSpace__ecere__com__Class * base, char * name, int vid, void * origFunction, char * type)
3109 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3111 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3113 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3114 struct __ecereNameSpace__ecere__com__Method * method, * next;
3115 void * function = origFunction;
3118 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3119 memmove(_class->_vTbl + vid + 1, _class->_vTbl + vid, (_class->vTblSize - vid - 1) * sizeof(void *));
3120 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3123 if(method->function)
3124 function = method->function;
3127 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
3128 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3129 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3133 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3135 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type);
3136 method->_class = base;
3139 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
3141 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
3142 if(method->type == 1)
3145 _class->_vTbl[vid] = function;
3147 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3149 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3151 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3153 template->_vTbl = _class->_vTbl;
3156 if(_class->derivatives.first || _class->templatized.first)
3157 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, vid, function, type);
3160 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3162 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
3164 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3166 template->_vTbl = base->_vTbl;
3167 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(template, name, vid, origFunction, type);
3172 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3176 struct __ecereNameSpace__ecere__com__Class * base;
3178 for(base = _class; base; base = base->base)
3180 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3184 if(method->type == 1)
3186 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3187 void * oldFunction = _class->_vTbl[method->vid];
3189 if(method->vid > _class->vTblSize)
3192 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3193 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3195 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3197 if(derivClass->_vTbl[method->vid] == oldFunction)
3198 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3201 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3203 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3205 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3207 for(deriv = template->derivatives.first; deriv; deriv = deriv->next)
3209 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3211 if(derivClass->_vTbl[method->vid] == oldFunction)
3212 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3223 base = (((void *)0));
3231 struct __ecereNameSpace__ecere__com__Method * method = (method = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Method), method->name = __ecereNameSpace__ecere__sys__CopyString(name), method->function = function ? function : __ecereNameSpace__ecere__com__DefaultFunction, method->_class = _class, method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), method->memberAccess = declMode, method);
3233 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3237 return (((void *)0));
3240 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3244 struct __ecereNameSpace__ecere__com__Class * base;
3246 for(base = _class; base; base = base->base)
3248 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3252 if(method->type == 1)
3253 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3255 base = (((void *)0));
3261 struct __ecereNameSpace__ecere__com__Method * method = (method = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Method), method->name = __ecereNameSpace__ecere__sys__CopyString(name), method->function = function ? function : __ecereNameSpace__ecere__com__DefaultFunction, method->type = 1, method->_class = _class, method->vid = _class->vTblSize++, method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), method->memberAccess = declMode, method);
3263 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3264 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3265 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3266 if(_class->derivatives.first || _class->templatized.first)
3267 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, method->vid, function ? function : (void *)__ecereNameSpace__ecere__com__DefaultFunction, type);
3271 return (((void *)0));
3274 static void __ecereNameSpace__ecere__com__FixDerivativeProperty(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Property * _property)
3276 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3278 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3280 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3281 struct __ecereNameSpace__ecere__com__Property * prop;
3282 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3284 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
3288 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
3290 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
3292 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
3294 if(watcher->_property == prop)
3295 watcher->_property = _property;
3297 _property->selfWatchable = 0x1;
3298 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
3299 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
3300 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
3301 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
3304 for(prop = _class->membersAndProperties.first; prop; prop = prop->next)
3307 _class->startMemberID++;
3308 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3312 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_AddProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt, int declMode)
3314 void * __ecereTemp1;
3315 struct __ecereNameSpace__ecere__com__Property * _property = (((void *)0));
3319 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, (name ? name : dataType)))
3321 _property = (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Property), ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->isProperty = 0x1, ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->name = __ecereNameSpace__ecere__sys__CopyString(name ? name : dataType), ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->id = (name && (setStmt || getStmt || dataType)) ? _class->memberID++ : 0, ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->Set = setStmt, ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->Get = getStmt, ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataType), ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->_class = _class, ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->compiled = 0x1, ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->conversion = name ? 0x0 : 0x1, ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1)->memberAccess = declMode, ((struct __ecereNameSpace__ecere__com__Property *)__ecereTemp1));
3323 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, _property);
3325 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->conversions, _property);
3326 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = _property->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = _property, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
3327 if(!_property->conversion)
3329 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3336 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink64;
3338 struct __ecereNameSpace__ecere__sys__NamedLink64
3340 struct __ecereNameSpace__ecere__sys__NamedLink64 * prev;
3341 struct __ecereNameSpace__ecere__sys__NamedLink64 * next;
3344 } __attribute__ ((gcc_struct));
3346 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property)
3348 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3349 struct __ecereNameSpace__ecere__sys__NamedLink64 * value, * next;
3351 for(value = _class->delayedCPValues.first; value; value = next)
3354 if(!strcmp(value->name, _property->name))
3356 _property->Set(_class, value->data);
3357 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->delayedCPValues, value);
3360 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3362 __ecereNameSpace__ecere__com__SetDelayedCPValues(deriv->data, _property);
3366 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt)
3368 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name))
3370 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (_property = __ecereNameSpace__ecere__com__eSystem_New0(structSize_ClassProperty), _property->name = __ecereNameSpace__ecere__sys__CopyString(name), _property->Set = setStmt, _property->Get = getStmt, _property->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataType), _property);
3372 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)_property);
3373 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
3376 return (((void *)0));
3379 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3381 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (((void *)0));
3385 struct __ecereNameSpace__ecere__com__Class * origClass = _class;
3387 for(; _class; _class = _class->base)
3389 _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name);
3393 if(!_property && origClass->type == 4)
3395 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(origClass->module, "enum");
3397 _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(enumClass, name);
3403 long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3405 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3407 if(_property && _property->Get && _property->Get != (void *)1)
3409 long long result = _property->Get(_class);
3416 void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, long long value)
3418 void * __ecereTemp1;
3419 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3424 ((void (*)(void *, long long))_property->Set)(_class, value);
3428 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->delayedCPValues, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink64), ((struct __ecereNameSpace__ecere__sys__NamedLink64 *)__ecereTemp1)->name = name, ((struct __ecereNameSpace__ecere__sys__NamedLink64 *)__ecereTemp1)->data = value, ((struct __ecereNameSpace__ecere__sys__NamedLink64 *)__ecereTemp1)));
3432 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3436 for(; _class; _class = _class->base)
3438 struct __ecereNameSpace__ecere__com__Method * method;
3440 if(_class->templateClass)
3441 _class = _class->templateClass;
3442 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3443 if(method && (method->memberAccess == 1 || _class->module == module || !method->dataTypeString))
3445 if(!method->dataTypeString)
3447 if(_class->module != module)
3449 if(method->memberAccess == 1)
3450 module = _class->module;
3453 return (((void *)0));
3462 if(_class->inheritanceAccess == 2 && _class->module != module)
3466 return (((void *)0));
3469 static unsigned int __ecereNameSpace__ecere__com__ConstructInstance(void * instance, struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3471 if(_class->templateClass)
3472 _class = _class->templateClass;
3473 if(_class->base && from != _class->base)
3475 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class->base, from))
3478 if(_class->Initialize)
3480 void (* Initialize)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)_class->Initialize;
3482 _class->Initialize = (((void *)0));
3483 Initialize(_class->module);
3485 if(_class->Constructor)
3487 if(!_class->Constructor(instance))
3489 for(; _class; _class = _class->base)
3491 if(_class->templateClass)
3492 _class = _class->templateClass;
3493 if(_class->Destructor)
3494 _class->Destructor(instance);
3499 (_class->templateClass ? _class->templateClass : _class)->count++;
3503 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class)
3505 struct __ecereNameSpace__ecere__com__Instance * instance = (((void *)0));
3510 int size = _class->structSize;
3511 struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
3512 struct __ecereNameSpace__ecere__com__Instance * application = module ? ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application : (((void *)0));
3513 int flags = application ? (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)application + structSize_Module)))->isGUIApp : 0;
3514 unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
3518 unsigned int force32Bits = (flags & 4) ? 0x1 : 0x0;
3522 if(!strcmp(_class->name, "Module"))
3524 else if(_class->templateClass && !strcmp(_class->templateClass->name, "Map"))
3528 instance = __ecereNameSpace__ecere__com___calloc(1, size);
3530 if(_class->type == 0)
3532 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3533 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3535 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, (((void *)0))))
3537 __ecereNameSpace__ecere__com___free(instance);
3538 instance = (((void *)0));
3544 void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance ** instancePtr, struct __ecereNameSpace__ecere__com__Class * _class)
3546 if(_class && instancePtr && *instancePtr)
3548 unsigned int wasApp = 0x0, wasGuiApp = 0x0;
3549 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eSystem_Renew(*instancePtr, sizeof(unsigned char) * (_class->structSize));
3550 struct __ecereNameSpace__ecere__com__Class * fromClass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3552 *instancePtr = instance;
3553 memset(((unsigned char *)instance) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->structSize, 0, _class->structSize - ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->structSize);
3554 if((wasApp = !strcmp(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->name, "Application")) || (wasGuiApp = !strcmp(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->name, "GuiApplication")))
3556 struct __ecereNameSpace__ecere__com__Instance * module;
3557 struct __ecereNameSpace__ecere__com__Instance * app = (struct __ecereNameSpace__ecere__com__Instance *)instance;
3558 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3559 struct __ecereNameSpace__ecere__com__Class * _class;
3560 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
3562 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
3563 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = app;
3564 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3566 struct __ecereNameSpace__ecere__sys__OldLink * t;
3568 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3569 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3571 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3573 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3576 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3578 struct __ecereNameSpace__ecere__sys__OldLink * t;
3580 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3581 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3583 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3585 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3588 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3589 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3590 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3591 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3592 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3593 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3594 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3595 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3596 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3597 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3598 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3599 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3600 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3602 struct __ecereNameSpace__ecere__sys__OldLink * t;
3604 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3605 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3607 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3609 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3612 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3613 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3614 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3615 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3616 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3617 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3618 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3619 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3620 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->classes.first; _class; _class = _class->next)
3622 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3624 _class->module = (struct __ecereNameSpace__ecere__com__Instance *)app;
3625 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3627 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3629 template->module = _class->module;
3632 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
3634 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes.first; _class; _class = _class->next)
3636 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3638 _class->module = module;
3639 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3641 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3643 template->module = _class->module;
3647 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->application = app;
3650 struct __ecereNameSpace__ecere__com__Class * base;
3652 for(base = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; base && base->type == 0 && base->count; base = base->base)
3653 (base->templateClass ? base->templateClass : base)->count--;
3655 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3656 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3657 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, fromClass))
3659 __ecereNameSpace__ecere__com___free(instance);
3660 *instancePtr = (((void *)0));
3665 void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance)
3669 struct __ecereNameSpace__ecere__com__Class * _class, * base;
3670 unsigned int ownVtbl;
3672 ownVtbl = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl != ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl;
3673 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3675 if(_class->templateClass)
3676 _class = _class->templateClass;
3677 if(_class->destructionWatchOffset)
3679 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
3680 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
3682 for(watcher = (*watchers).first; watcher; watcher = next)
3684 next = watcher->next;
3685 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*watchers), watcher);
3686 watcher->callback(watcher->object, instance);
3687 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
3690 base = _class->base;
3691 if(base && base->type == 1000)
3692 base = (((void *)0));
3693 if(_class->Destructor)
3694 _class->Destructor(instance);
3696 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3698 if(_class->templateClass)
3699 _class = _class->templateClass;
3700 base = _class->base;
3701 (_class->templateClass ? _class->templateClass : _class)->count--;
3702 if(_class->type == 0 && !_class->count && !_class->module)
3704 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
3709 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl), ((struct __ecereNameSpace__ecere__com__Instance * )(char * )instance)->_vTbl = 0);
3711 __ecereNameSpace__ecere__com___free(instance);
3715 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3719 for(; _class; _class = _class->base)
3721 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3723 if(_class->templateClass)
3724 _class = _class->templateClass;
3725 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name);
3728 struct __ecereNameSpace__ecere__com__Property * _property = (struct __ecereNameSpace__ecere__com__Property *)link->data;
3730 if(_property->memberAccess == 1 || _class->module == module || !_property->dataTypeString)
3732 if(!_property->dataTypeString)
3734 if(_class->module != module)
3736 if(_property->memberAccess == 1)
3737 module = _class->module;
3740 return (((void *)0));
3750 if(_class->inheritanceAccess == 2 && _class->module != module)
3754 return (((void *)0));
3757 static struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__FindDataMember(struct __ecereNameSpace__ecere__sys__OldList * list, struct __ecereNameSpace__ecere__sys__BinaryTree * alist, char * name, unsigned int * offset, int * id, unsigned int searchPrivate, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
3759 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3760 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3762 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(alist, name);
3765 dataMember = link->data;
3766 if(dataMember->type == 0 && (dataMember->memberAccess == 1 || searchPrivate || !dataMember->dataTypeString))
3769 *offset += dataMember->offset;
3771 *id = dataMember->id;
3774 return (((void *)0));
3776 for(dataMember = list->first; dataMember; dataMember = dataMember->next)
3778 if(!dataMember->isProperty && (dataMember->memberAccess == 1 || searchPrivate) && !dataMember->name && (dataMember->type == 1 || dataMember->type == 2))
3780 struct __ecereNameSpace__ecere__com__DataMember * childMember;
3782 if(subMemberStackPos)
3783 subMemberStack[(*subMemberStackPos)++] = dataMember;
3784 childMember = __ecereNameSpace__ecere__com__FindDataMember(&dataMember->members, &dataMember->membersAlpha, name, offset, id, searchPrivate, subMemberStack, subMemberStackPos);
3788 *offset += dataMember->offset;
3790 *id += dataMember->id;
3793 if(subMemberStackPos)
3794 (*subMemberStackPos)--;
3797 return (((void *)0));
3800 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
3802 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3804 if(subMemberStackPos)
3805 *subMemberStackPos = 0;
3808 for(; _class; _class = _class->base)
3810 if(_class->templateClass)
3811 _class = _class->templateClass;
3812 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3815 if(!dataMember->dataTypeString)
3817 if(_class->module != module)
3819 if(dataMember->memberAccess == 1)
3820 module = _class->module;
3823 return (((void *)0));
3826 dataMember = (((void *)0));
3830 dataMember->_class = _class->templateClass ? _class->templateClass : _class;
3834 if(_class->inheritanceAccess == 2 && _class->module != module)
3841 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset(struct __ecereNameSpace__ecere__com__Class * _class, char * name, unsigned int * offset, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
3843 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3845 if(subMemberStackPos)
3846 *subMemberStackPos = 0;
3851 for(; _class; _class = _class->base)
3853 if(_class->templateClass)
3854 _class = _class->templateClass;
3855 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, offset, (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3858 if(!dataMember->dataTypeString)
3860 if(_class->module != module)
3862 if(dataMember->memberAccess == 1)
3863 module = _class->module;
3866 return (((void *)0));
3869 dataMember = (((void *)0));
3873 dataMember->_class = _class;
3877 if(_class->inheritanceAccess == 2 && _class->module != module)
3884 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_FindDataMemberAndId(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int * id, struct __ecereNameSpace__ecere__com__Instance * module, struct __ecereNameSpace__ecere__com__DataMember ** subMemberStack, int * subMemberStackPos)
3886 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3888 if(subMemberStackPos)
3889 *subMemberStackPos = 0;
3892 for(; _class; _class = _class->base)
3894 if(_class->templateClass)
3895 _class = _class->templateClass;
3896 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), id, _class->module == module, subMemberStack, subMemberStackPos);
3899 if(!dataMember->dataTypeString)
3901 if(_class->module != module)
3903 if(dataMember->memberAccess == 1)
3904 module = _class->module;
3907 return (((void *)0));
3910 dataMember = (((void *)0));
3914 dataMember->_class = _class;
3918 if(_class->inheritanceAccess == 2 && _class->module != module)
3925 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)
3929 *curMember = (*curMember)->next;
3930 if(subMemberStackPos && *subMemberStackPos > 0 && subMemberStack[*subMemberStackPos - 1]->type == 1)
3932 *curMember = subMemberStack[--(*subMemberStackPos)];
3933 *curMember = (*curMember)->next;
3935 if(subMemberStackPos && *subMemberStackPos > 0)
3937 while(*curMember && ((*curMember)->memberAccess == 2))
3938 *curMember = (*curMember)->next;
3941 while(*curMember && (*curMember)->name)
3943 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3946 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3947 if(dataMember && dataMember->memberAccess != 2)
3949 *curMember = dataMember;
3953 *curMember = (*curMember)->next;
3955 if(subMemberStackPos)
3957 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3959 subMemberStack[(*subMemberStackPos)++] = *curMember;
3960 *curMember = (*curMember)->members.first;
3961 while(*curMember && ((*curMember)->memberAccess == 2))
3962 *curMember = (*curMember)->next;
3970 if(subMemberStackPos && *subMemberStackPos)
3972 *curMember = subMemberStack[--(*subMemberStackPos)];
3973 *curMember = (*curMember)->next;
3977 struct __ecereNameSpace__ecere__com__Class * lastCurClass = *curClass;
3979 if(*curClass == _class)
3981 for(*curClass = _class; (*curClass)->base != lastCurClass && (*curClass)->base->type != 1000 && (*curClass)->inheritanceAccess != 2; *curClass = (*curClass)->base)
3983 *curMember = (*curClass)->membersAndProperties.first;
3985 if(subMemberStackPos && *subMemberStackPos > 0)
3987 while(*curMember && ((*curMember)->memberAccess == 2))
3988 *curMember = (*curMember)->next;
3991 while(*curMember && (*curMember)->name)
3993 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3996 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3997 if(dataMember && dataMember->memberAccess != 2)
3999 *curMember = dataMember;
4003 *curMember = (*curMember)->next;
4005 if(subMemberStackPos)
4007 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
4009 subMemberStack[(*subMemberStackPos)++] = *curMember;
4010 *curMember = (*curMember)->members.first;
4011 while(*curMember && (*curMember)->memberAccess == 2)
4012 *curMember = (*curMember)->next;
4019 void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function)
4021 if(instance && name)
4023 struct __ecereNameSpace__ecere__com__Class * _class;
4025 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4027 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
4029 if(method && method->type == 1)
4031 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl == ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl)
4033 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(void *) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
4034 memcpy(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl, sizeof(int (*)()) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
4036 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
4042 unsigned int __ecereNameSpace__ecere__com__eInstance_IsDerived(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Class * from)
4046 struct __ecereNameSpace__ecere__com__Class * _class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
4048 for(; _class; _class = _class->base)
4057 void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance)
4060 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount++;
4063 void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance)
4067 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount--;
4068 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount <= 0)
4070 __ecereNameSpace__ecere__com__eInstance_Delete(instance);
4075 static void __ecereNameSpace__ecere__com__FixOffsets(struct __ecereNameSpace__ecere__com__Class * _class)
4077 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
4079 _class->structSize += _class->base->structSize - _class->offset;
4080 _class->offset = _class->base->structSize;
4081 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
4082 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
4085 void __ecereNameSpace__ecere__com__eClass_Resize(struct __ecereNameSpace__ecere__com__Class * _class, int newSize)
4087 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
4089 _class->structSize = newSize;
4090 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
4091 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
4094 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, unsigned int size, unsigned int alignment, int declMode)
4096 void * __ecereTemp1;
4100 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4102 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4106 int __simpleStruct0;
4108 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4109 if(_class->memberOffset % alignment)
4110 _class->memberOffset += alignment - (_class->memberOffset % alignment);
4112 dataMember = (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember), ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->name = __ecereNameSpace__ecere__sys__CopyString(name), ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->id = _class->memberID++, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->_class = _class, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->offset = _class->memberOffset, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->memberOffset = size, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->memberAccess = declMode, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1));
4113 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4114 _class->memberOffset += size;
4115 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = dataMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = dataMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4119 return (((void *)0));
4122 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_AddDataMember(struct __ecereNameSpace__ecere__com__DataMember * member, char * name, char * type, unsigned int size, unsigned int alignment, int declMode)
4124 void * __ecereTemp1;
4126 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&member->membersAlpha, name))
4128 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4132 int __simpleStruct0;
4134 member->structAlignment = (__simpleStruct0 = member->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4135 if(member->memberOffset % alignment)
4136 member->memberOffset += alignment - (member->memberOffset % alignment);
4138 dataMember = (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember), ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->name = __ecereNameSpace__ecere__sys__CopyString(name), ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->_class = member->_class, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->id = member->memberID++, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->offset = (member->type == 1) ? 0 : member->memberOffset, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->memberAccess = declMode, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1));
4139 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&member->members, dataMember);
4140 if(member->type == 1)
4142 if(size > member->memberOffset)
4143 member->memberOffset = size;
4146 member->memberOffset += size;
4147 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&member->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = dataMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = dataMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4150 return (((void *)0));
4153 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode)
4155 void * __ecereTemp1;
4157 return (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember), ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->type = type, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->memberAccess = declMode, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1)->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, ((struct __ecereNameSpace__ecere__com__DataMember *)__ecereTemp1));
4160 static void __ecereNameSpace__ecere__com__SetMemberClass(struct __ecereNameSpace__ecere__com__DataMember * member, struct __ecereNameSpace__ecere__com__Class * _class)
4162 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4164 member->_class = _class;
4165 for(dataMember = member->members.first; dataMember; dataMember = dataMember->next)
4166 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4169 unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4171 void * __ecereTemp1;
4172 int __simpleStruct0, __simpleStruct1;
4174 if(dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&addTo->membersAlpha, dataMember->name))
4176 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&addTo->members, dataMember);
4177 if(dataMember->name)
4178 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&addTo->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = dataMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = dataMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4179 dataMember->_class = addTo->_class;
4180 dataMember->id = addTo->memberID;
4181 if(dataMember->type == 1)
4182 addTo->memberID += 1;
4184 addTo->memberID += dataMember->memberID;
4185 addTo->structAlignment = (__simpleStruct0 = addTo->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4186 dataMember->offset = (addTo->type == 1) ? 0 : addTo->memberOffset;
4187 if(addTo->type == 1)
4189 if(dataMember->memberOffset > addTo->memberOffset)
4190 addTo->memberOffset = dataMember->memberOffset;
4193 addTo->memberOffset += dataMember->memberOffset;
4197 unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4199 void * __ecereTemp1;
4200 int __simpleStruct0, __simpleStruct1;
4202 if(!_class || _class->comRedefinition || (dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, dataMember->name)))
4204 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4205 if(dataMember->name)
4206 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = dataMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = dataMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4207 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4208 dataMember->id = _class->memberID;
4209 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4210 if(dataMember->type == 1)
4211 _class->memberID += 1;
4213 _class->memberID += dataMember->memberID;
4214 dataMember->offset = _class->memberOffset;
4215 _class->memberOffset += dataMember->memberOffset;
4219 struct __ecereNameSpace__ecere__com__BitMember * __ecereNameSpace__ecere__com__eClass_AddBitMember(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, int bitSize, int bitPos, int declMode)
4221 void * __ecereTemp1;
4223 if(_class && name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4227 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (bitMember = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BitMember), bitMember->name = __ecereNameSpace__ecere__sys__CopyString(name), bitMember->_class = _class, bitMember->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), bitMember->id = _class->memberID++, bitMember->memberAccess = declMode, bitMember);
4229 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, bitMember);
4232 bitMember->pos = (bitPos == -1) ? _class->memberOffset : bitPos;
4233 bitMember->size = bitSize;
4234 _class->memberOffset = bitMember->pos + bitMember->size;
4235 for(c = 0; c < bitSize; c++)
4241 bitMember->mask = mask << bitMember->pos;
4243 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = bitMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = bitMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4246 return (((void *)0));
4249 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__Module_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int ensureCOM)
4251 void * __ecereTemp1;
4252 unsigned int (stdcall * Load)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4253 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4254 struct __ecereNameSpace__ecere__com__Instance * module;
4256 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4258 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4261 if(ensureCOM && (!strcmp(name, "ecereCOM") || !strcmp(name, "ecere")))
4263 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4265 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecere") || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM"))
4271 void * library = (((void *)0));
4273 if(ensureCOM && !strcmp(name, "ecereCOM"))
4275 Load = __ecereDll_Load_ecere;
4276 Unload = __ecereDll_Unload_ecere;
4280 char * libLocation = (((void *)0));
4282 library = Instance_Module_Load(libLocation, name, &Load, &Unload);
4286 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4287 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4288 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library = library;
4289 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4290 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = Unload;
4291 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType = 0;
4294 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4295 module = (((void *)0));
4298 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4300 if(ensureCOM && !strcmp(name, "ecere") && module)
4302 name = !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM") ? "ecere" : "ecereCOM";
4303 if((!Load && !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM")) || (Load && (!__thisModule || !((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name, "ecereCOM")) && Load != __ecereDll_Load_ecere))
4305 struct __ecereNameSpace__ecere__com__Instance * module;
4307 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4309 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4314 Load = __ecereDll_Load_ecere;
4315 Unload = __ecereDll_Unload_ecere;
4316 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4317 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4318 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library = (((void *)0));
4319 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4320 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = Unload;
4323 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4324 module = (((void *)0));
4326 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4332 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule), ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)->module = module, ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)->importMode = importAccess, ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)));
4334 module->_refCount++;
4342 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule), ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)->module = module, ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)->importMode = importAccess, ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)));
4344 module->_refCount++;
4349 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4351 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x1);
4354 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4356 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x0);
4359 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStatic(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int (* Load)(struct __ecereNameSpace__ecere__com__Instance * module), unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module))
4361 void * __ecereTemp1;
4362 struct __ecereNameSpace__ecere__com__Instance * module;
4364 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4366 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4373 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4374 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4375 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4376 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType = 1;
4377 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = (void *)Unload;
4380 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4381 module = (((void *)0));
4384 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4390 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, (__ecereTemp1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule), ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)->module = module, ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)->importMode = importAccess, ((struct __ecereNameSpace__ecere__com__SubModule *)__ecereTemp1)));
4392 module->_refCount++;
4397 void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module)
4399 struct __ecereNameSpace__ecere__sys__OldLink * m;
4401 for(m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules.first; m; m = m->next)
4403 if(m->data == module)
4408 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, m);
4409 (__ecereNameSpace__ecere__com__eInstance_DecRef(module), module = 0);
4413 void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value)
4415 void * __ecereTemp1;
4417 if(_class && _class->type == 4)
4419 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4420 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4422 for(item = data->values.first; item; item = item->next)
4423 if(!strcmp(item->name, string))
4427 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink), ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)->data = (void *)value, ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)->name = __ecereNameSpace__ecere__sys__CopyString(string), ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)));
4428 if(value > data->largest)
4429 data->largest = value;
4434 int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
4436 void * __ecereTemp1;
4438 if(_class && _class->type == 4)
4440 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4441 int value = data->largest + 1;
4442 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4444 for(item = data->values.first; item; item = item->next)
4445 if(!strcmp(item->name, string))
4449 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink), ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)->data = (void *)value, ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)->name = __ecereNameSpace__ecere__sys__CopyString(string), ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)));
4450 if(value > data->largest)
4451 data->largest = value;
4458 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace)
4460 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
4462 (__ecereNameSpace__ecere__com__eSystem_Delete(parentNameSpace->name), parentNameSpace->name = 0);
4463 while((nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentNameSpace->nameSpaces)))
4465 __ecereNameSpace__ecere__com__NameSpace_Free(nameSpace);
4466 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentNameSpace->nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace);
4470 static void __ecereNameSpace__ecere__com__Application_Destructor(struct __ecereNameSpace__ecere__com__Instance * app)
4472 if(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand)
4474 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argv), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + structSize_Module)))->argv = 0);
4475 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + structSize_Module)))->parsedCommand = 0);
4479 static unsigned int __ecereNameSpace__ecere__com__Module_Constructor(struct __ecereNameSpace__ecere__com__Instance * module)
4481 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4482 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4483 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4484 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4485 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4486 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4487 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4488 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4492 static void __ecereNameSpace__ecere__com__Module_Destructor(struct __ecereNameSpace__ecere__com__Instance * module)
4494 struct __ecereNameSpace__ecere__com__Class * _class;
4495 struct __ecereNameSpace__ecere__com__DefinedExpression * def;
4496 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
4497 struct __ecereNameSpace__ecere__com__Instance * m;
4498 struct __ecereNameSpace__ecere__com__SubModule * handle;
4500 for(m = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->allModules.first; m; m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->next)
4502 struct __ecereNameSpace__ecere__com__SubModule * next;
4504 for(handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->modules.first; handle; handle = next)
4506 next = handle->next;
4507 if(handle->module == module)
4508 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->modules, handle);
4511 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload)
4513 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType == 1)
4515 unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload;
4521 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload;
4527 struct __ecereNameSpace__ecere__com__Instance * ourWorld = __ecereClass___ecereNameSpace__ecere__com__Class->module;
4528 void * ourHandle = (((void *)0));
4530 while((handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.last))
4532 struct __ecereNameSpace__ecere__com__Instance * depModule = handle->module;
4534 if(depModule == ourWorld)
4536 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules, handle);
4541 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules, handle);
4542 (__ecereNameSpace__ecere__com__eInstance_DecRef(depModule), depModule = 0);
4547 (__ecereNameSpace__ecere__com__eSystem_Delete(ourHandle), ourHandle = 0);
4548 (__ecereNameSpace__ecere__com__eInstance_DecRef(ourWorld), ourWorld = 0);
4551 for(; (_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes.first); )
4553 if(_class->nameSpace)
4555 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
4556 struct __ecereNameSpace__ecere__sys__OldLink * t;
4558 for(t = _class->templatized.first; t; t = t->next)
4560 struct __ecereNameSpace__ecere__com__Class * template = t->data;
4561 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4563 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
4564 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
4565 template->nameSpace = (((void *)0));
4567 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
4568 _class->nameSpace = (((void *)0));
4570 _class->module = (((void *)0));
4571 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes, _class);
4572 if(!_class->count || _class->type != 0)
4573 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
4578 for(; (def = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines.first); )
4582 struct __ecereNameSpace__ecere__com__BTNamedLink * defLink;
4584 for(defLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*def->nameSpace).defines); defLink; defLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)defLink)))
4585 if(defLink->data == def)
4587 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*def->nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)defLink);
4591 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
4592 (__ecereNameSpace__ecere__com__eSystem_Delete(def->value), def->value = 0);
4593 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines, def);
4595 for(; (function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions.first); )
4597 if(function->nameSpace)
4599 struct __ecereNameSpace__ecere__com__BTNamedLink * functionLink;
4601 for(functionLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&(*function->nameSpace).functions); functionLink; functionLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)functionLink)))
4602 if(functionLink->data == function)
4604 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*function->nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)functionLink);
4608 (__ecereNameSpace__ecere__com__eSystem_Delete(function->name), function->name = 0);
4609 (__ecereNameSpace__ecere__com__eSystem_Delete(function->dataTypeString), function->dataTypeString = 0);
4610 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions, function);
4612 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name), ((struct __ecereNameSpace__ecere__com__Module * )(((char * )module + structSize_Instance)))->name = 0);
4613 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace);
4614 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace);
4615 if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application)
4616 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4618 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace);
4619 Instance_Module_Free(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library);
4622 static int __ecereNameSpace__ecere__com__GetEnumSize(struct __ecereNameSpace__ecere__com__Class * _class)
4624 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4626 return data->largest + 1;
4629 char * strlwr(char * string)
4633 for(c = 0; string[c]; c++)
4634 if(string[c] >= 'A' && string[c] <= 'Z')
4635 string[c] += 'a' - 'A';
4639 char * strupr(char * string)
4643 for(c = 0; string[c]; c++)
4644 if(string[c] >= 'a' && string[c] <= 'z')
4645 string[c] -= 'a' - 'A';
4649 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4651 void * __ecereTemp1;
4652 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4655 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
4657 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
4660 for(c = 0; name[c]; c++)
4662 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4664 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4665 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4667 strncpy(spaceName, name + start, c - start);
4668 spaceName[c - start] = '\0';
4669 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4672 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4673 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4674 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4675 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4676 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4677 (*newSpace).name = spaceName;
4678 (*newSpace).parent = nameSpace;
4679 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4682 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4683 nameSpace = newSpace;
4692 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).defines, name + start))
4694 struct __ecereNameSpace__ecere__com__DefinedExpression * def = (def = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DefinedExpression), def->name = __ecereNameSpace__ecere__sys__CopyString(name), def->nameSpace = nameSpace, def->value = __ecereNameSpace__ecere__sys__CopyString(value), def);
4696 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = def->name + start, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = def, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4697 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines, def);
4700 return (((void *)0));
4703 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4705 void * __ecereTemp1;
4706 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4709 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
4711 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
4714 for(c = 0; name[c]; c++)
4716 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4718 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4719 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4721 strncpy(spaceName, name + start, c - start);
4722 spaceName[c - start] = '\0';
4723 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4726 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4727 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4728 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4729 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4730 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4731 (*newSpace).name = spaceName;
4732 (*newSpace).parent = nameSpace;
4733 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4736 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4737 nameSpace = newSpace;
4746 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).functions, name + start))
4748 struct __ecereNameSpace__ecere__com__GlobalFunction * function = (function = __ecereNameSpace__ecere__com__eSystem_New0(structSize_GlobalFunction), function->name = __ecereNameSpace__ecere__sys__CopyString(name), function->nameSpace = nameSpace, function->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), function->function = func, function->module = module, function);
4750 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = function->name + start, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = function, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4751 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions, function);
4754 return (((void *)0));
4757 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4761 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4763 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines);
4766 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines, 0x1);
4770 return (((void *)0));
4773 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4777 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4779 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions);
4782 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions, 0x1);
4786 return (((void *)0));
4789 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size)
4791 return __ecereNameSpace__ecere__com___realloc(memory, size);
4794 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size)
4796 return __ecereNameSpace__ecere__com___crealloc(memory, size);
4799 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size)
4801 return __ecereNameSpace__ecere__com___malloc(size);
4804 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size)
4806 return __ecereNameSpace__ecere__com___calloc(1, size);
4809 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory)
4812 __ecereNameSpace__ecere__com___free(memory);
4815 void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4817 if(instance && _property && _property->selfWatchable)
4819 struct __ecereNameSpace__ecere__com__Class * _class;
4821 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4823 struct __ecereNameSpace__ecere__com__SelfWatcher * selfWatcher, * next;
4825 for(selfWatcher = _class->selfWatchers.first; selfWatcher; selfWatcher = next)
4827 next = selfWatcher->next;
4828 if(selfWatcher->_property == _property)
4829 selfWatcher->callback(instance);
4835 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4837 if(instance && _property && _property->isWatchable)
4839 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4840 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
4842 for(watcher = (*watchers).first; watcher; watcher = next)
4844 next = watcher->next;
4845 watcher->callback(watcher->object, instance);
4850 void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property)
4852 if(!_property->isWatchable)
4854 struct __ecereNameSpace__ecere__com__Class * _class = _property->_class;
4856 if(!_class->computeSize)
4858 _property->watcherOffset = _class->structSize;
4859 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4860 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4862 _property->isWatchable = 0x1;
4866 void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(struct __ecereNameSpace__ecere__com__Class * _class)
4868 if(!_class->destructionWatchOffset)
4870 _class->destructionWatchOffset = _class->structSize;
4871 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4872 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4876 void __ecereNameSpace__ecere__com__eProperty_SelfWatch(struct __ecereNameSpace__ecere__com__Class * _class, char * name, void (* callback)(void *))
4878 void * __ecereTemp1;
4882 struct __ecereNameSpace__ecere__com__Property * _property = __ecereNameSpace__ecere__com__eClass_FindProperty(_class, name, _class->module);
4885 _property = __ecereNameSpace__ecere__com__eClass_AddProperty(_class, name, (((void *)0)), (((void *)0)), (((void *)0)), 4);
4886 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->selfWatchers, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_SelfWatcher), ((struct __ecereNameSpace__ecere__com__SelfWatcher *)__ecereTemp1)->_property = _property, ((struct __ecereNameSpace__ecere__com__SelfWatcher *)__ecereTemp1)->callback = callback, ((struct __ecereNameSpace__ecere__com__SelfWatcher *)__ecereTemp1)));
4887 _property->selfWatchable = 0x1;
4891 void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void *, void *))
4893 void * __ecereTemp1;
4895 if(_property->isWatchable)
4897 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4899 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Watcher), ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)->callback = callback, ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)->object = object, ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)));
4903 void __ecereNameSpace__ecere__com__eInstance_WatchDestruction(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Instance * object, void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *))
4905 void * __ecereTemp1;
4906 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->destructionWatchOffset);
4908 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Watcher), ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)->callback = callback, ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)->object = object, ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)));
4911 void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object)
4913 if(instance && (!_property || _property->isWatchable))
4917 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4918 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4920 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4921 if(watcher->object == object)
4923 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4929 struct __ecereNameSpace__ecere__com__Class * _class, * base;
4931 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
4933 if(_class->destructionWatchOffset)
4935 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
4936 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4938 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4940 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4944 for(_property = (struct __ecereNameSpace__ecere__com__Property *)_class->membersAndProperties.first; _property; _property = _property->next)
4946 if(_property->isProperty && _property->isWatchable)
4948 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4949 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4951 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4952 if(watcher->object == object)
4954 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4959 base = _class->base;
4960 if(base && base->type == 1000)
4961 base = (((void *)0));
4967 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eClass_GetDesigner(struct __ecereNameSpace__ecere__com__Class * _class)
4969 for(; _class; _class = _class->base)
4971 if(_class->designerClass)
4972 return (struct __ecereNameSpace__ecere__com__Class *)__ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->designerClass);
4974 return (((void *)0));
4977 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eInstance_GetDesigner(struct __ecereNameSpace__ecere__com__Instance * instance)
4980 return __ecereNameSpace__ecere__com__eClass_GetDesigner(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class);
4981 return (((void *)0));
4984 unsigned int __ecereNameSpace__ecere__com__LocateModule(char * name, char * fileName)
4986 return Instance_LocateModule(name, fileName);
4989 extern void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module);
4991 extern void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module);
4993 extern double sin(struct __ecereNameSpace__ecere__com__Instance * number);
4995 extern double sinh(struct __ecereNameSpace__ecere__com__Instance * number);
4997 extern double cosh(struct __ecereNameSpace__ecere__com__Instance * number);
4999 extern double tanh(struct __ecereNameSpace__ecere__com__Instance * number);
5001 extern double sqrt(double number);
5003 extern double cos(struct __ecereNameSpace__ecere__com__Instance * number);
5005 extern double tan(struct __ecereNameSpace__ecere__com__Instance * number);
5007 extern struct __ecereNameSpace__ecere__com__Instance * atan2(double y, double x);
5009 extern struct __ecereNameSpace__ecere__com__Instance * asin(double number);
5011 extern struct __ecereNameSpace__ecere__com__Instance * acos(double number);
5013 extern struct __ecereNameSpace__ecere__com__Instance * atan(double number);
5015 extern double pow(double number, double number2);
5017 extern double fmod(double x, double y);
5019 extern double fabs(double number);
5021 extern double log(double number);
5023 extern double log10(double number);
5025 extern double ceil(double number);
5027 extern double floor(double number);
5029 extern double exp(double number);
5031 extern void qsort(void * , size_t, size_t, int (* )(void * , void * ));
5033 extern int system(const char * );
5035 extern int atoi(const char * );
5037 extern float atof(const char * );
5039 extern int tolower(int);
5041 extern int toupper(int);
5043 extern unsigned int isdigit(int);
5045 extern char * getenv(const char * name);
5047 extern int rename(const char * oldpath, const char * newpath);
5049 extern char * strncat(char * , const char * , size_t n);
5051 extern int strcasecmp(const char * , const char * );
5053 extern int strncasecmp(const char * , const char * , size_t n);
5055 extern int strncmp(const char * , const char * , size_t n);
5057 extern int vsprintf(char * , const char * , __builtin_va_list);
5059 extern int puts(char * );
5061 extern int fputs(char * , void * stream);
5063 extern int isalnum(int c);
5065 extern int isalpha(int c);
5067 extern int islower(int c);
5069 extern int isupper(int c);
5071 extern int isprint(int c);
5073 static void __ecereNameSpace__ecere__com__LoadCOM(struct __ecereNameSpace__ecere__com__Instance * module)
5075 unsigned int force64Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 2) ? 0x1 : 0x0;
5076 unsigned int force32Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 4) ? 0x1 : 0x0;
5077 unsigned int inCompiler = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 8) ? 0x1 : 0x0;
5078 int pointerSize = force64Bits ? 8 : force32Bits ? 4 : sizeof(void *);
5079 struct __ecereNameSpace__ecere__com__Class * applicationClass;
5080 struct __ecereNameSpace__ecere__com__Class * enumClass, * structClass, * boolClass;
5081 struct __ecereNameSpace__ecere__com__Class * moduleClass;
5082 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "class", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5084 baseClass->type = 1000;
5085 baseClass->memberOffset = 0;
5086 baseClass->offset = 0;
5087 baseClass->structSize = 0;
5088 baseClass->typeSize = 0;
5090 struct __ecereNameSpace__ecere__com__Class * instanceClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Instance", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5092 instanceClass->type = 1000;
5093 instanceClass->fixed = 0x1;
5094 instanceClass->memberOffset = 0;
5095 instanceClass->offset = 0;
5096 instanceClass->memberID = -3;
5097 instanceClass->startMemberID = -3;
5098 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_vTbl", "int (**)()", pointerSize, pointerSize, 1);
5099 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_class", "ecere::com::Class", pointerSize, pointerSize, 1);
5100 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_refCount", "int", sizeof(int), sizeof(int), 1);
5102 __ecereNameSpace__ecere__com__InitializeDataTypes1(module);
5103 enumClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "enum", (((void *)0)), 0, force64Bits ? 40 : sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), (((void *)0)), (((void *)0)), module, 4, 1);
5104 __ecereNameSpace__ecere__com__eClass_AddClassProperty(enumClass, "enumSize", "int", (((void *)0)), __ecereNameSpace__ecere__com__GetEnumSize)->constant = 0x1;
5105 enumClass->type = 1000;
5106 (__ecereNameSpace__ecere__com__eSystem_Delete(enumClass->dataTypeString), enumClass->dataTypeString = 0);
5107 enumClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
5108 structClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "struct", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5109 structClass->type = 1000;
5110 structClass->memberOffset = 0;
5111 structClass->offset = 0;
5112 structClass->structSize = 0;
5113 structClass->typeSize = 0;
5114 __ecereNameSpace__ecere__com__InitializeDataTypes(module);
5115 boolClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "bool", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5116 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "true", (unsigned int)0x1);
5117 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "false", (unsigned int)0x0);
5118 moduleClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Module", (((void *)0)), force64Bits ? 8 + 32 + 32 + 32 + 32 + 8 + 8 + 8 + 8 + 8 + 4 + 4 + (32 + 8 + 8 + 4 * 32) + (32 + 8 + 8 + 4 * 32) : sizeof(struct __ecereNameSpace__ecere__com__Module), 0, (void *)__ecereNameSpace__ecere__com__Module_Constructor, (void *)__ecereNameSpace__ecere__com__Module_Destructor, module, 4, 1);
5119 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnLoad", "bool()", (((void *)0)), 1);
5120 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnUnload", "void()", (((void *)0)), 1);
5121 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Load", "Module(char * name, AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, 1);
5122 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Unload", "void(Module module)", __ecereNameSpace__ecere__com__eModule_Unload, 1);
5123 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "application", "Application", pointerSize, pointerSize, 1);
5124 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "classes", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5125 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "defines", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5126 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "functions", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5127 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "modules", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5128 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "prev", "Module", pointerSize, pointerSize, 1);
5129 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "next", "Module", pointerSize, pointerSize, 1);
5130 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "name", "char *", pointerSize, pointerSize, 1);
5131 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "library", "void *", pointerSize, pointerSize, 1);
5132 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "Unload", "void *", pointerSize, pointerSize, 1);
5133 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "importType", "ImportType", sizeof(int), 4, 1);
5134 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "origImportType", "ImportType", sizeof(int), 4, 1);
5135 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "privateNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5136 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "publicNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5137 moduleClass->fixed = 0x1;
5138 moduleClass->count++;
5139 if(inCompiler && force32Bits)
5140 moduleClass->structSize = 12 + 4 + 20 + 20 + 20 + 20 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + (16 + 4 + 4 + 4 * 16) + (16 + 4 + 4 + 4 * 16);
5141 applicationClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Application", "Module", force64Bits ? (8 + 8 + 4 + 4 + 32 + 8 + 176) : sizeof(struct __ecereNameSpace__ecere__com__Application), 0, (((void *)0)), (void *)__ecereNameSpace__ecere__com__Application_Destructor, module, 4, 1);
5142 if(inCompiler && force32Bits)
5144 applicationClass->offset = 12 + 4 + 20 + 20 + 20 + 20 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + (16 + 4 + 4 + 4 * 16) + (16 + 4 + 4 + 4 * 16);
5145 applicationClass->structSize = applicationClass->offset + (4 + 4 + 4 + 4 + 20 + 4 + 88);
5147 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(applicationClass, "Main", "void()", (((void *)0)), 1);
5148 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argc", "int", sizeof(int), 4, 1);
5149 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argv", "char **", pointerSize, pointerSize, 1);
5150 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "exitCode", "int", sizeof(int), 4, 1);
5151 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "isGUIApp", "bool", sizeof(unsigned int), 4, 1);
5152 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "allModules", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5153 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "parsedCommand", "char *", pointerSize, pointerSize, 1);
5154 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "systemNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5155 applicationClass->fixed = 0x1;
5156 applicationClass->count++;
5157 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sin", "double sin(Angle number)", sin, module, 4);
5158 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sinh", "double sinh(Angle number)", sinh, module, 4);
5159 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cosh", "double cosh(Angle number)", cosh, module, 4);
5160 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tanh", "double tanh(Angle number)", tanh, module, 4);
5161 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sqrt", "double sqrt(double number)", sqrt, module, 4);
5162 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cos", "double cos(Angle number)", cos, module, 4);
5163 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tan", "double tan(Angle number)", tan, module, 4);
5164 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan2", "Angle atan2(double y, double x)", atan2, module, 4);
5165 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("asin", "Angle asin(double number)", asin, module, 4);
5166 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("acos", "Angle acos(double number)", acos, module, 4);
5167 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan", "Angle atan(double number)", atan, module, 4);
5168 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("pow", "double pow(double number, double number2)", pow, module, 4);
5169 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fmod", "double fmod(double x, double y)", fmod, module, 4);
5170 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fabs", "double fabs(double number)", fabs, module, 4);
5171 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log", "double log(double number)", log, module, 4);
5172 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log10", "double log10(double number)", log10, module, 4);
5173 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ceil", "double ceil(double number)", ceil, module, 4);
5174 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("floor", "double floor(double number)", floor, module, 4);
5175 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("exp", "double exp(double number)", exp, module, 4);
5176 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("qsort", "void qsort(void *, uintsize, uintsize, int (*)(void *, void *))", qsort, module, 4);
5177 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtod", "double strtod(char*, char**)", strtod, module, 4);
5178 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtol", "int strtol(char*, char**, int base)", strtol, module, 4);
5179 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("system", "int system(const char*)", system, module, 4);
5180 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atoi", "int atoi(const char*)", atoi, module, 4);
5181 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atof", "float atof(const char*)", atof, module, 4);
5182 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tolower", "int tolower(int)", tolower, module, 4);
5183 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("toupper", "int toupper(int)", toupper, module, 4);
5184 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isdigit", "bool isdigit(int)", isdigit, module, 4);
5185 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memset", "void * memset(void * area, int value, uintsize count)", memset, module, 4);
5186 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("getenv", "char * getenv(const char * name)", getenv, module, 4);
5187 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("rename", "int rename(const char *oldpath, const char *newpath)", rename, module, 4);
5188 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlen", "uintsize strlen(const char *)", strlen, module, 4);
5189 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcat", "char * strcat(char *, const char *)", strcat, module, 4);
5190 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncat", "char * strncat(char *, const char *, uintsize n)", strncat, module, 4);
5191 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strchr", "char * strchr(const char *, int)", strchr, module, 4);
5192 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strstr", "char * strstr(const char *, const char *)", strstr, module, 4);
5193 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("fstrcmp", "(GetRuntimePlatform() == win32) ? strcmpi : strcmp", module, 4);
5194 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strcmpi", "strcasecmp", module, 4);
5195 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strnicmp", "strncasecmp", module, 4);
5196 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcasecmp", "int strcasecmp(const char *, const char *)", strcasecmp, module, 4);
5197 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncasecmp", "int strncasecmp(const char *, const char *, uintsize n)", strncasecmp, module, 4);
5198 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcmp", "int strcmp(const char *, const char *)", strcmp, module, 4);
5199 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncmp", "int strncmp(const char *, const char *, uintsize n)", strncmp, module, 4);
5200 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlwr", "char * strlwr(char *)", strlwr, module, 4);
5201 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strupr", "char * strupr(char *)", strupr, module, 4);
5202 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcpy", "char * strcpy(char *, const char *)", strcpy, module, 4);
5203 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncpy", "char * strncpy(char *, const char *, uintsize n)", strncpy, module, 4);
5204 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memcpy", "void * memcpy(void *, const void *, uintsize size)", memcpy, module, 4);
5205 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memmove", "void * memmove(void *, const void *, uintsize size)", memmove, module, 4);
5206 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sprintf", "int sprintf(char *, char *, ...)", sprintf, module, 4);
5207 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("snprintf", "int sprintf(char *, uintsize, char *, ...)", snprintf, module, 4);
5208 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("printf", "int printf(char *, ...)", printf, module, 4);
5209 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsprintf", "int vsprintf(char*, const char*, __builtin_va_list)", vsprintf, module, 4);
5210 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsnprintf", "int vsnprintf(char*, uintsize, const char*, __builtin_va_list)", vsnprintf, module, 4);
5211 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("puts", "int puts(char *)", puts, module, 4);
5212 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fputs", "int fputs(char *, void * stream)", fputs, module, 4);
5213 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalnum", "int isalnum(int c)", isalnum, module, 4);
5214 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isspace", "int isspace(int c)", isspace, module, 4);
5215 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalpha", "int isalpha(int c)", isalpha, module, 4);
5216 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("islower", "int islower(int c)", islower, module, 4);
5217 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isupper", "int isupper(int c)", isupper, module, 4);
5218 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isprint", "int isprint(int c)", isprint, module, 4);
5219 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoul", "unsigned long strtoul(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5222 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[])
5224 struct __ecereNameSpace__ecere__com__Instance * app;
5226 app = __ecereNameSpace__ecere__com___calloc(1, structSize_Application);
5227 __ecereNameSpace__ecere__com__Module_Constructor(app);
5228 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5229 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5230 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5231 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5232 Instance_COM_Initialize(argc, argv, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argc, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argv);
5233 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->application = app;
5234 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.offset = structSize_Instance + (unsigned int)&(*((struct __ecereNameSpace__ecere__com__Module *)0)).prev;
5235 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->isGUIApp = guiApp;
5236 __ecereNameSpace__ecere__com__LoadCOM(app);
5237 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)app)->_class = __ecereNameSpace__ecere__com__eSystem_FindClass(app, "Application");
5241 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int type, void * info, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * defaultArg)
5243 void * __ecereTemp1;
5247 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5249 for(param = _class->templateParams.first; param; param = param->next)
5251 if(!strcmp(param->name, name))
5254 param = (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_ClassTemplateParameter), ((struct __ecereNameSpace__ecere__com__ClassTemplateParameter *)__ecereTemp1)->name = __ecereNameSpace__ecere__sys__CopyString(name), ((struct __ecereNameSpace__ecere__com__ClassTemplateParameter *)__ecereTemp1)->type = type, ((struct __ecereNameSpace__ecere__com__ClassTemplateParameter *)__ecereTemp1)->dataTypeString = (type == 1) ? info : __ecereNameSpace__ecere__sys__CopyString(info), ((struct __ecereNameSpace__ecere__com__ClassTemplateParameter *)__ecereTemp1));
5255 if(defaultArg != (((void *)0)))
5257 param->defaultArg = *defaultArg;
5258 __ecereNameSpace__ecere__com__CopyTemplateArg(param, ¶m->defaultArg);
5260 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templateParams, param);
5263 return (((void *)0));
5266 void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base)
5270 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
5271 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5274 void * first = base->templateParams.first;
5275 int count = base->templateParams.count;
5277 base->templateParams.first = (((void *)0));
5278 base->templateParams.count = 0;
5279 __ecereNameSpace__ecere__com__FreeTemplateArgs(base);
5280 (__ecereNameSpace__ecere__com__eSystem_Delete(base->templateArgs), base->templateArgs = 0);
5281 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(base);
5282 base->templateParams.first = first;
5283 base->templateParams.count = count;
5285 for(param = base->templateParams.first; param; param = param->next)
5287 if(param->type == 1 && param->defaultArg.memberString)
5289 struct __ecereNameSpace__ecere__com__Class * memberClass = base;
5290 char * colon = strstr(param->defaultArg.memberString, "::");
5295 char className[1024];
5296 struct __ecereNameSpace__ecere__com__Class * sClass;
5298 memcpy(className, param->defaultArg.memberString, colon - param->defaultArg.memberString);
5299 className[colon - param->defaultArg.memberString] = '\0';
5300 memberName = colon + 2;
5301 for(sClass = base; sClass; sClass = sClass->base)
5303 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
5304 struct __ecereNameSpace__ecere__com__Class * nextClass;
5307 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
5308 id += nextClass->templateParams.count;
5309 if(sClass == base || base->templateArgs)
5311 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
5313 if(cParam->type == 0 && !strcmp(cParam->name, className))
5314 strcpy(className, (sClass == base) ? cParam->defaultArg.dataTypeString : base->templateArgs[id].dataTypeString);
5319 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(base->module, className);
5321 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)base->module + structSize_Instance)))->application, className);
5324 memberName = param->defaultArg.memberString;
5327 switch(param->memberType)
5330 param->defaultArg.member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
5333 param->defaultArg.method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
5336 param->defaultArg.prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
5342 __ecereNameSpace__ecere__com__FixDerivativesBase(base, base);
5346 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base)
5348 struct __ecereNameSpace__ecere__sys__OldLink * derivative, * templateLink;
5350 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
5352 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
5354 if(_class->templateArgs)
5356 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5357 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5359 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5361 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
5363 struct __ecereNameSpace__ecere__com__Class * _class = templateLink->data;
5365 if(_class->templateArgs)
5367 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5368 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5370 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5374 static const char * __ecereNameSpace__ecere__com__platformNames[4] =
5376 "", "win32", "linux", "apple"
5379 static const int __ecereNameSpace__ecere__com__firstPlatform = 1;
5381 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Platform_char__PTR_;
5383 static const int __ecereNameSpace__ecere__com__lastPlatform = 3;
5385 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Platform;
5387 int __ecereVMethodID_class_OnGetString;
5389 char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this)
5391 return ((char * (*)(struct __ecereNameSpace__ecere__com__Class *, void *, char * tempString, void * fieldData, unsigned int * needClass))__ecereClass___ecereNameSpace__ecere__com__Platform->_vTbl[__ecereVMethodID_class_OnGetString])(__ecereClass___ecereNameSpace__ecere__com__Platform, &this, (((void *)0)), (((void *)0)), (((void *)0)));
5394 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(char * value)
5400 for(c = __ecereNameSpace__ecere__com__firstPlatform; c <= __ecereNameSpace__ecere__com__lastPlatform; c++)
5401 if(!strcasecmp(value, __ecereNameSpace__ecere__com__platformNames[c]))
5407 char * __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * tempString, void * fieldData, unsigned int * needClass)
5409 if((*(this)) >= __ecereNameSpace__ecere__com__firstPlatform && (*(this)) <= __ecereNameSpace__ecere__com__lastPlatform)
5412 strcpy(tempString, __ecereNameSpace__ecere__com__platformNames[*(int *)this]);
5413 return __ecereNameSpace__ecere__com__platformNames[*(int *)this];
5415 if(tempString && tempString[0])
5416 tempString[0] = '\0';
5417 return (((void *)0));
5420 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * string)
5422 (*(this)) = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(string);
5423 return (unsigned int)*(int *)this;
5426 extern int runtimePlatform;
5428 int __ecereNameSpace__ecere__com__GetRuntimePlatform()
5430 return runtimePlatform;
5433 struct __ecereNameSpace__ecere__com__ObjectInfo
5435 struct __ecereNameSpace__ecere__com__ObjectInfo * prev, * next;
5436 struct __ecereNameSpace__ecere__com__Instance * instance;
5438 struct __ecereNameSpace__ecere__com__Instance * instCode;
5439 unsigned int deleted;
5440 struct __ecereNameSpace__ecere__com__ObjectInfo * oClass;
5441 struct __ecereNameSpace__ecere__sys__OldList instances;
5442 struct __ecereNameSpace__ecere__com__Instance * classDefinition;
5443 unsigned int modified;
5444 } __attribute__ ((gcc_struct));
5446 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ObjectInfo;
5448 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner;
5450 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass;
5452 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging;
5454 struct __ecereNameSpace__ecere__com__DesignerBase
5456 struct __ecereNameSpace__ecere__com__Instance * classDesigner;
5458 unsigned int isDragging;
5459 } __attribute__ ((gcc_struct));
5461 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DesignerBase;
5463 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this)
5465 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5467 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner;
5470 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
5472 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5474 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner = value;
5475 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner);
5478 char * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass(struct __ecereNameSpace__ecere__com__Instance * this)
5480 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5482 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass;
5485 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass(struct __ecereNameSpace__ecere__com__Instance * this, char * value)
5487 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5489 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass = value;
5490 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass);
5493 unsigned int __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging(struct __ecereNameSpace__ecere__com__Instance * this)
5495 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5497 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging;
5500 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
5502 struct __ecereNameSpace__ecere__com__DesignerBase * __ecerePointer___ecereNameSpace__ecere__com__DesignerBase = (struct __ecereNameSpace__ecere__com__DesignerBase *)(this ? (((char *)this) + __ecereClass___ecereNameSpace__ecere__com__DesignerBase->offset) : 0);
5504 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging = value;
5505 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging);
5508 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase;
5510 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__activeDesigner;
5512 void __ecereNameSpace__ecere__com__SetActiveDesigner(struct __ecereNameSpace__ecere__com__Instance * designer)
5514 __ecereNameSpace__ecere__com__activeDesigner = designer;
5517 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__GetActiveDesigner()
5519 return __ecereNameSpace__ecere__com__activeDesigner;
5524 unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source)
5530 for(c = 0; source[c]; )
5532 unsigned char ch = source[c];
5533 unsigned int codePoint = 0;
5536 unsigned char mask = (unsigned char)0x7F;
5538 if(ch & (unsigned char)0x80)
5540 if(ch & (unsigned char)0x40)
5544 if(ch & (unsigned char)0x20)
5548 if(ch & (unsigned char)0x10)
5550 if(ch & (unsigned char)0x08)
5560 for(i = 0; i < numBytes && (ch = source[c]); i++, c++)
5563 codePoint |= ch & mask;
5564 mask = (unsigned char)0x3F;
5567 if(!(ch & (unsigned char)0x80) || (ch & (unsigned char)0x40))
5573 if(codePoint > 0x10FFFF || (codePoint >= 0xD800 && codePoint <= 0xDFFF) || (codePoint < 0x80 && numBytes > 1) || (codePoint < 0x800 && numBytes > 2) || (codePoint < 0x10000 && numBytes > 3))
5580 int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max)
5585 for(c = 0; source[c]; c++)
5587 unsigned int ch = ((unsigned char *)source)[c];
5593 dest[d++] = (char)ch;
5599 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5600 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5602 else if(ch < 0x10000)
5606 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5607 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5608 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5614 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5615 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5616 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5617 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5624 char * __ecereNameSpace__ecere__sys__UTF16toUTF8(unsigned short * source)
5631 unsigned int invert = 0x0;
5633 for(len = 0; source[len]; len++)
5635 dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len * 3 + 1));
5636 for(c = 0; (u16 = source[c]); c++)
5640 if(!c && (u16 == (unsigned short)0xFFFE || u16 == (unsigned short)0xFEFF))
5642 if(u16 == (unsigned short)0xFFFE)
5648 u16 = ((u16 & (unsigned short)0xFF00) >> (unsigned short)8) | ((u16 & (unsigned short)0x00FF) << (unsigned short)8);
5650 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5653 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5656 dest[d++] = (char)ch;
5660 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5661 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5663 else if(ch < 0x10000)
5665 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5666 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5667 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5671 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5672 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5673 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5674 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5678 dest = __ecereNameSpace__ecere__com__eSystem_Renew(dest, sizeof(char) * (d + 1));
5682 int __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer(unsigned short * source, unsigned char * dest, int max)
5688 for(c = 0; (u16 = source[c]); c++)
5692 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5695 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5700 dest[d++] = (char)ch;
5706 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5707 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5709 else if(ch < 0x10000)
5713 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5714 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5715 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5721 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5722 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5723 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5724 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5727 dest[d] = (unsigned char)0;
5731 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes)
5734 unsigned char b = ((unsigned char *)string)[0];
5736 unsigned char mask = (unsigned char)0x7F;
5740 if(b & (unsigned char)0x80)
5742 if(b & (unsigned char)0x40)
5746 if(b & (unsigned char)0x20)
5750 if(b & (unsigned char)0x10)
5752 if(b & (unsigned char)0x08)
5764 for(i = 0; i < nb; i++)
5767 ch |= (b = ((unsigned char *)string)[i]) & mask;
5768 mask = (unsigned char)0x3F;
5769 if(i > 1 && (!(b & (unsigned char)0x80) || (b & (unsigned char)0x40)))
5775 if(i < nb || ch > 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF) || (ch < 0x80 && nb > 1) || (ch < 0x800 && nb > 2) || (ch < 0x10000 && nb > 3))
5785 int __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer(char * source, unsigned short * dest, int max)
5792 for(c = 0; source[c]; )
5794 unsigned char ch = source[c];
5795 unsigned int codePoint = 0;
5798 unsigned char mask = (unsigned char)0x7F;
5800 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5804 if(ch & (unsigned char)0x20)
5808 if(ch & (unsigned char)0x10)
5815 for(i = 0; i < numBytes; i++)
5818 codePoint |= source[c++] & mask;
5819 mask = (unsigned char)0x3F;
5821 if(codePoint > 0xFFFF)
5823 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5824 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5835 dest[d++] = (unsigned short)codePoint;
5838 dest[d] = (unsigned short)0;
5844 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max)
5850 for(c = 0; c < count && (ch = source[c]); c++)
5856 dest[d++] = (char)ch;
5862 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5863 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5865 else if(ch < 0x10000)
5869 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5870 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5871 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5877 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5878 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5879 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5880 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5883 dest[d] = (unsigned char)0;
5887 unsigned short * __ecereNameSpace__ecere__sys__UTF8toUTF16(char * source, int * wordCount)
5891 int len = strlen(source);
5892 unsigned short * dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned short) * (len + 1));
5896 for(c = 0; source[c]; )
5898 unsigned char ch = source[c];
5899 unsigned int codePoint = 0;
5902 unsigned char mask = (unsigned char)0x7F;
5904 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5908 if(ch & (unsigned char)0x20)
5912 if(ch & (unsigned char)0x10)
5919 for(i = 0; i < numBytes; i++)
5922 codePoint |= source[c++] & mask;
5923 mask = (unsigned char)0x3F;
5925 if(codePoint > 0xFFFF)
5927 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5928 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5935 dest[d++] = (unsigned short)codePoint;
5938 dest[d] = (unsigned short)0;
5943 return (((void *)0));
5946 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_FindObject;
5948 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_RenameObject;
5950 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SelectObjectFromDesigner;
5952 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_CodeAddObject;
5954 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SheetAddObject;
5956 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddToolBoxClass;
5958 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddDefaultMethod;
5960 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_DeleteObject;
5962 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ObjectContainsCode;
5964 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ModifyCode;
5966 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_UpdateProperties;
5968 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_Reset;
5970 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_AddObject;
5972 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_SelectObject;
5974 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_ListToolBoxClasses;
5976 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PrepareTestObject;
5978 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateObject;
5980 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PostCreateObject;
5982 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DroppedObject;
5984 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DestroyObject;
5986 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_FixProperty;
5988 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew;
5990 void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
5992 struct __ecereNameSpace__ecere__com__Class * class;
5994 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4);
5995 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::unichar", "uint", 0, 0, 0, 0, module, 4, 1);
5996 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
5997 __ecereClass___ecereNameSpace__ecere__com__unichar = class;
5998 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString, 1);
5999 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString, 1);
6000 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Property", 0, sizeof(struct __ecereNameSpace__ecere__com__Property), 0, 0, 0, module, 4, 1);
6001 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6002 __ecereClass___ecereNameSpace__ecere__com__Property = class;
6003 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6004 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6005 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6006 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6007 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6008 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6009 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6010 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6011 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6012 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6013 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)(void *, int)", arch_PointerSize, arch_PointerSize, 1);
6014 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)(void *)", arch_PointerSize, arch_PointerSize, 1);
6015 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "IsSet", "bool( *)(void *)", arch_PointerSize, arch_PointerSize, 1);
6016 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6017 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6018 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6019 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
6020 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "watcherOffset", "uint", 4, 4, 1);
6021 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "char *", arch_PointerSize, arch_PointerSize, 1);
6022 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "compiled", "bool", 4, 4, 1);
6023 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchable", "bool", 4, 4, 1);
6024 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
6026 class->fixed = (unsigned int)1;
6028 class->noExpansion = (unsigned int)1;
6029 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PushLoc", "void ecere::com::MemoryGuard_PushLoc(char * loc)", __ecereNameSpace__ecere__com__MemoryGuard_PushLoc, module, 4);
6030 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PopLoc", "void ecere::com::MemoryGuard_PopLoc(void)", __ecereNameSpace__ecere__com__MemoryGuard_PopLoc, module, 4);
6031 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BTNamedLink", 0, sizeof(struct __ecereNameSpace__ecere__com__BTNamedLink), 0, 0, 0, module, 4, 1);
6032 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6033 __ecereClass___ecereNameSpace__ecere__com__BTNamedLink = class;
6034 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6035 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6036 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6037 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6038 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6039 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6041 class->fixed = (unsigned int)1;
6042 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SelfWatcher", 0, sizeof(struct __ecereNameSpace__ecere__com__SelfWatcher), 0, 0, 0, module, 2, 1);
6043 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6044 __ecereClass___ecereNameSpace__ecere__com__SelfWatcher = class;
6046 class->fixed = (unsigned int)1;
6047 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::AccessMode", 0, 0, 0, 0, 0, module, 4, 1);
6048 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6049 __ecereClass___ecereNameSpace__ecere__com__AccessMode = class;
6050 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "defaultAccess", 0);
6051 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "publicAccess", 1);
6052 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "privateAccess", 2);
6053 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticAccess", 3);
6054 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "baseSystemAccess", 4);
6055 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SubModule", 0, sizeof(struct __ecereNameSpace__ecere__com__SubModule), 0, 0, 0, module, 4, 1);
6056 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6057 __ecereClass___ecereNameSpace__ecere__com__SubModule = class;
6058 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::SubModule", arch_PointerSize, arch_PointerSize, 1);
6059 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::SubModule", arch_PointerSize, arch_PointerSize, 1);
6060 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6061 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "importMode", "ecere::com::AccessMode", 4, 4, 1);
6062 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::DataMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6063 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6064 __ecereClass___ecereNameSpace__ecere__com__DataMemberType = class;
6065 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMember", 0);
6066 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionMember", 1);
6067 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMember", 2);
6068 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ClassType", 0, 0, 0, 0, 0, module, 4, 1);
6069 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6070 __ecereClass___ecereNameSpace__ecere__com__ClassType = class;
6071 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalClass", 0);
6072 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structClass", 1);
6073 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "bitClass", 2);
6074 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unitClass", 3);
6075 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "enumClass", 4);
6076 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noHeadClass", 5);
6077 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionClass", 6);
6078 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "systemClass", 1000);
6079 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Class", 0, sizeof(struct __ecereNameSpace__ecere__com__Class), 0, 0, 0, module, 4, 1);
6080 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6081 __ecereClass___ecereNameSpace__ecere__com__Class = class;
6082 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree, 1);
6083 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString, 1);
6084 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString, 1);
6085 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize, 1);
6086 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize, 1);
6087 __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_ = __ecereNameSpace__ecere__com__eClass_AddProperty(class, 0, "char *", __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_, __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_, 1);
6088 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6089 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6090 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6091 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6092 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structSize", "int", 4, 4, 1);
6093 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_vTbl", "int( * *)()", arch_PointerSize, arch_PointerSize, 1);
6094 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vTblSize", "int", 4, 4, 1);
6095 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Constructor", "int( *)(ecere::com::Instance)", arch_PointerSize, arch_PointerSize, 1);
6096 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Destructor", "void( *)(ecere::com::Instance)", arch_PointerSize, arch_PointerSize, 1);
6097 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offsetClass", "int", 4, 4, 1);
6098 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "sizeClass", "int", 4, 4, 1);
6099 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "base", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6100 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6101 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6102 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prop", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6103 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAndProperties", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6104 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classProperties", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6105 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "derivatives", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6106 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6107 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "startMemberID", "int", 4, 4, 1);
6108 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::ClassType", 4, 4, 1);
6109 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6110 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6111 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6112 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6113 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeSize", "int", 4, 4, 1);
6114 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultAlignment", "int", 4, 4, 1);
6115 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Initialize", "void( *)()", arch_PointerSize, arch_PointerSize, 1);
6116 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6117 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchers", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6118 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "designerClass", "char *", arch_PointerSize, arch_PointerSize, 1);
6119 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "noExpansion", "bool", 4, 4, 1);
6120 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultProperty", "char *", arch_PointerSize, arch_PointerSize, 1);
6121 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "comRedefinition", "bool", 4, 4, 1);
6122 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
6123 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
6124 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "internalDecl", "bool", 4, 4, 1);
6125 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6126 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computeSize", "bool", 4, 4, 1);
6127 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6128 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "destructionWatchOffset", "int", 4, 4, 1);
6129 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fixed", "bool", 4, 4, 1);
6130 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "delayedCPValues", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6131 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "inheritanceAccess", "ecere::com::AccessMode", 4, 4, 1);
6132 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fullName", "char *", arch_PointerSize, arch_PointerSize, 1);
6133 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6134 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversions", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6135 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateParams", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6136 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateArgs", "ecere::com::ClassTemplateArgument *", arch_PointerSize, arch_PointerSize, 1);
6137 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6138 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templatized", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6139 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParams", "int", 4, 4, 1);
6141 class->fixed = (unsigned int)1;
6143 class->noExpansion = (unsigned int)1;
6144 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateParameterType", 0, 0, 0, 0, 0, module, 4, 1);
6145 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6146 __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType = class;
6147 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "type", 0);
6148 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 1);
6149 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "expression", 2);
6150 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6151 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6152 __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType = class;
6153 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dataMember", 0);
6154 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "method", 1);
6155 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "prop", 2);
6156 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::ClassTemplateArgument", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument), 0, 0, 0, module, 4, 1);
6157 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6158 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument = class;
6160 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6163 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6165 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6166 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6167 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6169 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expression", "ecere::com::DataValue", 8, 8, 1);
6171 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6173 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "memberString", "char *", arch_PointerSize, arch_PointerSize, 1);
6175 struct __ecereNameSpace__ecere__com__DataMember * dataMember2 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6177 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "member", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6178 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "prop", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6179 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "method", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6180 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember1, dataMember2);
6182 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6184 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6186 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassTemplateParameter", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateParameter), 0, 0, 0, module, 4, 1);
6187 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6188 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter = class;
6189 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ClassTemplateParameter", arch_PointerSize, arch_PointerSize, 1);
6190 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ClassTemplateParameter", arch_PointerSize, arch_PointerSize, 1);
6191 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6192 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::TemplateParameterType", 4, 4, 1);
6194 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6196 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6197 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "ecere::com::TemplateMemberType", 4, 4, 1);
6198 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6200 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArg", "ecere::com::ClassTemplateArgument", structSize_ClassTemplateArgument, 8, 1);
6201 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "param", "void *", arch_PointerSize, arch_PointerSize, 1);
6203 class->fixed = (unsigned int)1;
6204 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::MethodType", 0, 0, 0, 0, 0, module, 4, 1);
6205 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6206 __ecereClass___ecereNameSpace__ecere__com__MethodType = class;
6207 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMethod", 0);
6208 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "virtualMethod", 1);
6209 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Method", 0, sizeof(struct __ecereNameSpace__ecere__com__Method), 0, 0, 0, module, 4, 1);
6210 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6211 __ecereClass___ecereNameSpace__ecere__com__Method = class;
6212 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6213 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6214 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6215 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6216 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6217 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", arch_PointerSize, arch_PointerSize, 1);
6218 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6219 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::MethodType", 4, 4, 1);
6220 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6221 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6222 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6223 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6224 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6226 class->fixed = (unsigned int)1;
6227 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ImportType", 0, 0, 0, 0, 0, module, 4, 1);
6228 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6229 __ecereClass___ecereNameSpace__ecere__com__ImportType = class;
6230 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalImport", 0);
6231 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticImport", 1);
6232 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "remoteImport", 2);
6233 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preDeclImport", 3);
6234 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "comCheckImport", 4);
6235 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::NameSpace", 0, sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 0, 0, 0, module, 4, 1);
6236 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6237 __ecereClass___ecereNameSpace__ecere__com__NameSpace = class;
6238 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6239 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "btParent", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6240 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6241 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6242 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6243 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6244 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpaces", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6245 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classes", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6246 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defines", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6247 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "functions", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6248 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::DataValue", 0, sizeof(struct __ecereNameSpace__ecere__com__DataValue), 0, 0, 0, module, 4, 1);
6249 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6250 __ecereClass___ecereNameSpace__ecere__com__DataValue = class;
6252 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6254 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "c", "char", 1, 1, 1);
6255 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "uc", "byte", 1, 1, 1);
6256 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "s", "short", 2, 2, 1);
6257 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "us", "uint16", 2, 2, 1);
6258 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i", "int", 4, 4, 1);
6259 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui", "uint", 4, 4, 1);
6260 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "p", "void *", arch_PointerSize, arch_PointerSize, 1);
6261 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "f", "float", 4, 4, 1);
6262 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "d", "double", 8, 8, 1);
6263 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i64", "int64", 8, 8, 1);
6264 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui64", "uint64", 8, 8, 1);
6265 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6267 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DataMember", 0, sizeof(struct __ecereNameSpace__ecere__com__DataMember), 0, 0, 0, module, 4, 1);
6268 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6269 __ecereClass___ecereNameSpace__ecere__com__DataMember = class;
6270 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6271 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6272 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6273 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6274 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6275 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6276 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6277 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6278 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6279 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6280 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6281 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6282 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6283 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6284 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAlpha", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6285 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6286 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6288 class->fixed = (unsigned int)1;
6289 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BitMember", 0, sizeof(struct __ecereNameSpace__ecere__com__BitMember), 0, 0, 0, module, 4, 1);
6290 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6291 __ecereClass___ecereNameSpace__ecere__com__BitMember = class;
6292 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::BitMember", arch_PointerSize, arch_PointerSize, 1);
6293 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::BitMember", arch_PointerSize, arch_PointerSize, 1);
6294 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6295 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6296 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6297 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6298 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6299 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6300 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6301 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6302 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6303 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "int", 4, 4, 1);
6304 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
6305 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "mask", "uint64", 8, 8, 1);
6307 class->fixed = (unsigned int)1;
6308 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassProperty", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassProperty), 0, 0, 0, module, 4, 1);
6309 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6310 __ecereClass___ecereNameSpace__ecere__com__ClassProperty = class;
6311 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6312 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6313 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6314 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6315 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6316 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)(ecere::com::Class, int64)", arch_PointerSize, arch_PointerSize, 1);
6317 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int64( *)(ecere::com::Class)", arch_PointerSize, arch_PointerSize, 1);
6318 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6319 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6320 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
6322 class->fixed = (unsigned int)1;
6323 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DefinedExpression", 0, sizeof(struct __ecereNameSpace__ecere__com__DefinedExpression), 0, 0, 0, module, 4, 1);
6324 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6325 __ecereClass___ecereNameSpace__ecere__com__DefinedExpression = class;
6326 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DefinedExpression", arch_PointerSize, arch_PointerSize, 1);
6327 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DefinedExpression", arch_PointerSize, arch_PointerSize, 1);
6328 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6329 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "value", "char *", arch_PointerSize, arch_PointerSize, 1);
6330 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6332 class->fixed = (unsigned int)1;
6333 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::GlobalFunction", 0, sizeof(struct __ecereNameSpace__ecere__com__GlobalFunction), 0, 0, 0, module, 4, 1);
6334 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6335 __ecereClass___ecereNameSpace__ecere__com__GlobalFunction = class;
6336 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::GlobalFunction", arch_PointerSize, arch_PointerSize, 1);
6337 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::GlobalFunction", arch_PointerSize, arch_PointerSize, 1);
6338 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6339 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", arch_PointerSize, arch_PointerSize, 1);
6340 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6341 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6342 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6343 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6344 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6346 class->fixed = (unsigned int)1;
6347 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::EnumClassData", 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), 0, 0, 0, module, 4, 1);
6348 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6349 __ecereClass___ecereNameSpace__ecere__com__EnumClassData = class;
6350 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "values", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6351 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "largest", "int", 4, 4, 1);
6353 class->fixed = (unsigned int)1;
6354 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Watcher", 0, sizeof(struct __ecereNameSpace__ecere__com__Watcher), 0, 0, 0, module, 2, 1);
6355 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6356 __ecereClass___ecereNameSpace__ecere__com__Watcher = class;
6358 class->fixed = (unsigned int)1;
6359 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemBlock", 0, sizeof(struct __ecereNameSpace__ecere__com__MemBlock), 0, 0, 0, module, 2, 1);
6360 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6361 __ecereClass___ecereNameSpace__ecere__com__MemBlock = class;
6362 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemPart", 0, sizeof(struct __ecereNameSpace__ecere__com__MemPart), 0, 0, 0, module, 2, 1);
6363 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6364 __ecereClass___ecereNameSpace__ecere__com__MemPart = class;
6365 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::BlockPool", 0, sizeof(struct __ecereNameSpace__ecere__com__BlockPool), 0, 0, 0, module, 2, 1);
6366 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6367 __ecereClass___ecereNameSpace__ecere__com__BlockPool = class;
6368 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "ecere::com::MemBlock Add()", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add, 1);
6369 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Expand", "bool Expand(unsigned int numBlocks)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand, 1);
6370 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::com::MemBlock block)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove, 1);
6371 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6372 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6373 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "free", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6374 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSize", "uint", 4, 4, 1);
6375 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSpace", "uint", 4, 4, 1);
6376 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParts", "int", 4, 4, 1);
6377 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numBlocks", "int", 4, 4, 1);
6378 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "totalSize", "uint", 4, 4, 1);
6379 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "usedSpace", "uint", 4, 4, 1);
6380 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::log2i", "uint ecere::com::log2i(uint number)", __ecereNameSpace__ecere__com__log2i, module, 4);
6381 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::pow2i", "uint ecere::com::pow2i(uint number)", __ecereNameSpace__ecere__com__pow2i, module, 4);
6382 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::memswap", "void ecere::com::memswap(byte * a, byte * b, uint size)", __ecereNameSpace__ecere__com__memswap, module, 4);
6383 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::CheckMemory", "void ecere::com::CheckMemory(void)", __ecereNameSpace__ecere__com__CheckMemory, module, 4);
6384 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_RegisterClass", "ecere::com::Class ecere::com::eSystem_RegisterClass(ecere::com::ClassType type, char * name, char * baseName, int size, int sizeClass, bool( *)(void *), void( *)(void *), ecere::com::Module module, ecere::com::AccessMode declMode, ecere::com::AccessMode inheritanceAccess)", __ecereNameSpace__ecere__com__eSystem_RegisterClass, module, 4);
6385 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_Unregister", "void ecere::com::eClass_Unregister(ecere::com::Class _class)", __ecereNameSpace__ecere__com__eClass_Unregister, module, 4);
6386 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoi64", "int64 ecere::com::_strtoi64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoi64, module, 4);
6387 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoui64", "uint64 ecere::com::_strtoui64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoui64, module, 4);
6388 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_FindClass", "ecere::com::Class ecere::com::eSystem_FindClass(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__com__eSystem_FindClass, module, 4);
6389 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::DefaultFunction", "bool ecere::com::DefaultFunction(void)", __ecereNameSpace__ecere__com__DefaultFunction, module, 2);
6390 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_IsDerived", "bool ecere::com::eClass_IsDerived(ecere::com::Class _class, ecere::com::Class from)", __ecereNameSpace__ecere__com__eClass_IsDerived, module, 4);
6391 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddMethod", "ecere::com::Method ecere::com::eClass_AddMethod(ecere::com::Class _class, char * name, char * type, void * function, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddMethod, module, 4);
6392 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddVirtualMethod", "ecere::com::Method ecere::com::eClass_AddVirtualMethod(ecere::com::Class _class, char * name, char * type, void * function, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddVirtualMethod, module, 4);
6393 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddProperty", "ecere::com::Property ecere::com::eClass_AddProperty(ecere::com::Class _class, char * name, char * dataType, void * setStmt, void * getStmt, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddProperty, module, 4);
6394 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddClassProperty", "ecere::com::ClassProperty ecere::com::eClass_AddClassProperty(ecere::com::Class _class, char * name, char * dataType, void * setStmt, void * getStmt)", __ecereNameSpace__ecere__com__eClass_AddClassProperty, module, 4);
6395 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindClassProperty", "ecere::com::ClassProperty ecere::com::eClass_FindClassProperty(ecere::com::Class _class, char * name)", __ecereNameSpace__ecere__com__eClass_FindClassProperty, module, 4);
6396 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_GetProperty", "int64 ecere::com::eClass_GetProperty(ecere::com::Class _class, char * name)", __ecereNameSpace__ecere__com__eClass_GetProperty, module, 4);
6397 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_SetProperty", "void ecere::com::eClass_SetProperty(ecere::com::Class _class, char * name, int64 value)", __ecereNameSpace__ecere__com__eClass_SetProperty, module, 4);
6398 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindMethod", "ecere::com::Method ecere::com::eClass_FindMethod(ecere::com::Class _class, char * name, ecere::com::Module module)", __ecereNameSpace__ecere__com__eClass_FindMethod, module, 4);
6399 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_New", "void * ecere::com::eInstance_New(ecere::com::Class _class)", __ecereNameSpace__ecere__com__eInstance_New, module, 4);
6400 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_Evolve", "void ecere::com::eInstance_Evolve(ecere::com::Instance * instancePtr, ecere::com::Class _class)", __ecereNameSpace__ecere__com__eInstance_Evolve, module, 4);
6401 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_Delete", "void ecere::com::eInstance_Delete(ecere::com::Instance instance)", __ecereNameSpace__ecere__com__eInstance_Delete, module, 4);
6402 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindProperty", "ecere::com::Property ecere::com::eClass_FindProperty(ecere::com::Class _class, char * name, ecere::com::Module module)", __ecereNameSpace__ecere__com__eClass_FindProperty, module, 4);
6403 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindDataMember", "ecere::com::DataMember ecere::com::eClass_FindDataMember(ecere::com::Class _class, char * name, ecere::com::Module module, ecere::com::DataMember * subMemberStack, int * subMemberStackPos)", __ecereNameSpace__ecere__com__eClass_FindDataMember, module, 4);
6404 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindDataMemberAndOffset", "ecere::com::DataMember ecere::com::eClass_FindDataMemberAndOffset(ecere::com::Class _class, char * name, uint * offset, ecere::com::Module module, ecere::com::DataMember * subMemberStack, int * subMemberStackPos)", __ecereNameSpace__ecere__com__eClass_FindDataMemberAndOffset, module, 4);
6405 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindDataMemberAndId", "ecere::com::DataMember ecere::com::eClass_FindDataMemberAndId(ecere::com::Class _class, char * name, int * id, ecere::com::Module module, ecere::com::DataMember * subMemberStack, int * subMemberStackPos)", __ecereNameSpace__ecere__com__eClass_FindDataMemberAndId, module, 4);
6406 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_FindNextMember", "void ecere::com::eClass_FindNextMember(ecere::com::Class _class, ecere::com::Class * curClass, ecere::com::DataMember * curMember, ecere::com::DataMember * subMemberStack, int * subMemberStackPos)", __ecereNameSpace__ecere__com__eClass_FindNextMember, module, 4);
6407 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_SetMethod", "void ecere::com::eInstance_SetMethod(ecere::com::Instance instance, char * name, void * function)", __ecereNameSpace__ecere__com__eInstance_SetMethod, module, 4);
6408 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_IsDerived", "bool ecere::com::eInstance_IsDerived(ecere::com::Instance instance, ecere::com::Class from)", __ecereNameSpace__ecere__com__eInstance_IsDerived, module, 4);
6409 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_IncRef", "void ecere::com::eInstance_IncRef(ecere::com::Instance instance)", __ecereNameSpace__ecere__com__eInstance_IncRef, module, 4);
6410 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_DecRef", "void ecere::com::eInstance_DecRef(ecere::com::Instance instance)", __ecereNameSpace__ecere__com__eInstance_DecRef, module, 4);
6411 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_Resize", "void ecere::com::eClass_Resize(ecere::com::Class _class, int newSize)", __ecereNameSpace__ecere__com__eClass_Resize, module, 4);
6412 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddDataMember", "ecere::com::DataMember ecere::com::eClass_AddDataMember(ecere::com::Class _class, char * name, char * type, uint size, uint alignment, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddDataMember, module, 4);
6413 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eMember_AddDataMember", "ecere::com::DataMember ecere::com::eMember_AddDataMember(ecere::com::DataMember member, char * name, char * type, uint size, uint alignment, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eMember_AddDataMember, module, 4);
6414 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eMember_New", "ecere::com::DataMember ecere::com::eMember_New(ecere::com::DataMemberType type, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eMember_New, module, 4);
6415 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eMember_AddMember", "bool ecere::com::eMember_AddMember(ecere::com::DataMember addTo, ecere::com::DataMember dataMember)", __ecereNameSpace__ecere__com__eMember_AddMember, module, 4);
6416 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddMember", "bool ecere::com::eClass_AddMember(ecere::com::Class _class, ecere::com::DataMember dataMember)", __ecereNameSpace__ecere__com__eClass_AddMember, module, 4);
6417 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddBitMember", "ecere::com::BitMember ecere::com::eClass_AddBitMember(ecere::com::Class _class, char * name, char * type, int bitSize, int bitPos, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eClass_AddBitMember, module, 4);
6418 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eModule_Load", "ecere::com::Module ecere::com::eModule_Load(ecere::com::Module fromModule, char * name, ecere::com::AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, module, 4);
6419 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eModule_LoadStrict", "ecere::com::Module ecere::com::eModule_LoadStrict(ecere::com::Module fromModule, char * name, ecere::com::AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_LoadStrict, module, 4);
6420 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eModule_LoadStatic", "ecere::com::Module ecere::com::eModule_LoadStatic(ecere::com::Module fromModule, char * name, ecere::com::AccessMode importAccess, bool( *)(ecere::com::Module module), bool( *)(ecere::com::Module module))", __ecereNameSpace__ecere__com__eModule_LoadStatic, module, 4);
6421 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eModule_Unload", "void ecere::com::eModule_Unload(ecere::com::Module fromModule, ecere::com::Module module)", __ecereNameSpace__ecere__com__eModule_Unload, module, 4);
6422 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eEnum_AddFixedValue", "void ecere::com::eEnum_AddFixedValue(ecere::com::Class _class, char * string, int value)", __ecereNameSpace__ecere__com__eEnum_AddFixedValue, module, 4);
6423 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eEnum_AddValue", "int ecere::com::eEnum_AddValue(ecere::com::Class _class, char * string)", __ecereNameSpace__ecere__com__eEnum_AddValue, module, 4);
6424 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_RegisterDefine", "ecere::com::DefinedExpression ecere::com::eSystem_RegisterDefine(char * name, char * value, ecere::com::Module module, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eSystem_RegisterDefine, module, 4);
6425 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_RegisterFunction", "ecere::com::GlobalFunction ecere::com::eSystem_RegisterFunction(char * name, char * type, void * func, ecere::com::Module module, ecere::com::AccessMode declMode)", __ecereNameSpace__ecere__com__eSystem_RegisterFunction, module, 4);
6426 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_FindDefine", "ecere::com::DefinedExpression ecere::com::eSystem_FindDefine(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__com__eSystem_FindDefine, module, 4);
6427 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_FindFunction", "ecere::com::GlobalFunction ecere::com::eSystem_FindFunction(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__com__eSystem_FindFunction, module, 4);
6428 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Renew", "void * ecere::com::eSystem_Renew(void * memory, uint size)", __ecereNameSpace__ecere__com__eSystem_Renew, module, 4);
6429 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Renew0", "void * ecere::com::eSystem_Renew0(void * memory, uint size)", __ecereNameSpace__ecere__com__eSystem_Renew0, module, 4);
6430 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New", "void * ecere::com::eSystem_New(uint size)", __ecereNameSpace__ecere__com__eSystem_New, module, 4);
6431 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New0", "void * ecere::com::eSystem_New0(uint size)", __ecereNameSpace__ecere__com__eSystem_New0, module, 4);
6432 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Delete", "void ecere::com::eSystem_Delete(void * memory)", __ecereNameSpace__ecere__com__eSystem_Delete, module, 4);
6433 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_FireSelfWatchers", "void ecere::com::eInstance_FireSelfWatchers(ecere::com::Instance instance, ecere::com::Property _property)", __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers, module, 4);
6434 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_FireWatchers", "void ecere::com::eInstance_FireWatchers(ecere::com::Instance instance, ecere::com::Property _property)", __ecereNameSpace__ecere__com__eInstance_FireWatchers, module, 4);
6435 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eProperty_Watchable", "void ecere::com::eProperty_Watchable(ecere::com::Property _property)", __ecereNameSpace__ecere__com__eProperty_Watchable, module, 4);
6436 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_DestructionWatchable", "void ecere::com::eClass_DestructionWatchable(ecere::com::Class _class)", __ecereNameSpace__ecere__com__eClass_DestructionWatchable, module, 4);
6437 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eProperty_SelfWatch", "void ecere::com::eProperty_SelfWatch(ecere::com::Class _class, char * name, void( *)(void *))", __ecereNameSpace__ecere__com__eProperty_SelfWatch, module, 4);
6438 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_Watch", "void ecere::com::eInstance_Watch(void * instance, ecere::com::Property _property, void * object, void( *)(void *, void *))", __ecereNameSpace__ecere__com__eInstance_Watch, module, 4);
6439 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_WatchDestruction", "void ecere::com::eInstance_WatchDestruction(ecere::com::Instance instance, ecere::com::Instance object, void( *)(ecere::com::Instance, ecere::com::Instance))", __ecereNameSpace__ecere__com__eInstance_WatchDestruction, module, 4);
6440 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_StopWatching", "void ecere::com::eInstance_StopWatching(ecere::com::Instance instance, ecere::com::Property _property, ecere::com::Instance object)", __ecereNameSpace__ecere__com__eInstance_StopWatching, module, 4);
6441 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_GetDesigner", "subclass(ecere::com::ClassDesignerBase) ecere::com::eClass_GetDesigner(ecere::com::Class _class)", __ecereNameSpace__ecere__com__eClass_GetDesigner, module, 4);
6442 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_GetDesigner", "subclass(ecere::com::ClassDesignerBase) ecere::com::eInstance_GetDesigner(ecere::com::Instance instance)", __ecereNameSpace__ecere__com__eInstance_GetDesigner, module, 4);
6443 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::LocateModule", "bool ecere::com::LocateModule(char * name, char * fileName)", __ecereNameSpace__ecere__com__LocateModule, module, 4);
6444 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::__ecere_COM_Initialize", "ecere::com::Application ecere::com::__ecere_COM_Initialize(bool guiApp, int argc, char * argv[])", __ecereNameSpace__ecere__com____ecere_COM_Initialize, module, 4);
6445 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_AddTemplateParameter", "ecere::com::ClassTemplateParameter ecere::com::eClass_AddTemplateParameter(ecere::com::Class _class, char * name, ecere::com::TemplateParameterType type, void * info, ecere::com::ClassTemplateArgument defaultArg)", __ecereNameSpace__ecere__com__eClass_AddTemplateParameter, module, 4);
6446 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_DoneAddingTemplateParameters", "void ecere::com::eClass_DoneAddingTemplateParameters(ecere::com::Class base)", __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters, module, 4);
6447 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::Platform", 0, 0, 0, 0, 0, module, 4, 1);
6448 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6449 __ecereClass___ecereNameSpace__ecere__com__Platform = class;
6450 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString, 1);
6451 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString, 1);
6452 __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_ = __ecereNameSpace__ecere__com__eClass_AddProperty(class, 0, "char *", __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_, __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_, 1);
6453 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknown", 0);
6454 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "win32", 1);
6455 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "tux", 2);
6456 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "apple", 3);
6457 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetRuntimePlatform", "ecere::com::Platform ecere::com::GetRuntimePlatform(void)", __ecereNameSpace__ecere__com__GetRuntimePlatform, module, 4);
6458 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ObjectInfo", 0, sizeof(struct __ecereNameSpace__ecere__com__ObjectInfo), 0, 0, 0, module, 4, 1);
6459 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6460 __ecereClass___ecereNameSpace__ecere__com__ObjectInfo = class;
6461 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6462 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6463 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instance", "ecere::com::Instance", arch_PointerSize, arch_PointerSize, 1);
6464 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6465 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instCode", "Instantiation", arch_PointerSize, arch_PointerSize, 1);
6466 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "deleted", "bool", 4, 4, 1);
6467 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "oClass", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6468 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instances", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6469 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDefinition", "ClassDefinition", arch_PointerSize, arch_PointerSize, 1);
6470 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "bool", 4, 4, 1);
6471 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::DesignerBase", "ecere::gui::Window", sizeof(struct __ecereNameSpace__ecere__com__DesignerBase), 0, 0, 0, module, 4, 1);
6472 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6473 __ecereClass___ecereNameSpace__ecere__com__DesignerBase = class;
6474 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindObject", "bool FindObject(ecere::com::Instance * instance, char * string)", 0, 1);
6475 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RenameObject", "void RenameObject(ecere::com::ObjectInfo object, char * name)", 0, 1);
6476 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObjectFromDesigner", "void SelectObjectFromDesigner(ecere::com::ObjectInfo object)", 0, 1);
6477 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CodeAddObject", "void CodeAddObject(ecere::com::Instance instance, ecere::com::ObjectInfo * object)", 0, 1);
6478 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SheetAddObject", "void SheetAddObject(ecere::com::ObjectInfo object)", 0, 1);
6479 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddToolBoxClass", "void AddToolBoxClass(ecere::com::Class _class)", 0, 1);
6480 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddDefaultMethod", "void AddDefaultMethod(ecere::com::Instance instance, ecere::com::Instance classInstance)", 0, 1);
6481 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DeleteObject", "void DeleteObject(ecere::com::ObjectInfo object)", 0, 1);
6482 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ObjectContainsCode", "bool ObjectContainsCode(ecere::com::ObjectInfo object)", 0, 1);
6483 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ModifyCode", "void ModifyCode(void)", 0, 1);
6484 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "UpdateProperties", "void UpdateProperties(void)", 0, 1);
6485 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDesigner", "ecere::com::ClassDesignerBase", arch_PointerSize, arch_PointerSize, 1);
6486 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "objectClass", "char *", arch_PointerSize, arch_PointerSize, 1);
6487 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isDragging", "bool", 4, 4, 1);
6488 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "classDesigner", "ecere::com::ClassDesignerBase", __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner, 1);
6489 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6490 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6491 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "objectClass", "char *", __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass, 1);
6492 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6493 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6494 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "isDragging", "bool", __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging, 1);
6495 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6496 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;
6497 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::ClassDesignerBase", "ecere::gui::Window", 0, 0, 0, 0, module, 4, 1);
6498 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6499 __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase = class;
6500 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Reset", "void Reset(void)", 0, 1);
6501 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddObject", "void AddObject(void)", 0, 1);
6502 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObject", "void SelectObject(ecere::com::ObjectInfo object, ecere::com::Instance control)", 0, 1);
6503 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ListToolBoxClasses", "void ListToolBoxClasses(ecere::com::DesignerBase designer)", 0, 1);
6504 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PrepareTestObject", "void ::PrepareTestObject(ecere::com::DesignerBase designer, ecere::com::Instance test)", 0, 1);
6505 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateObject", "void ::CreateObject(ecere::com::DesignerBase designer, ecere::com::Instance instance, ecere::com::ObjectInfo object, bool isClass, ecere::com::Instance _class)", 0, 1);
6506 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PostCreateObject", "void ::PostCreateObject(ecere::com::Instance instance, ecere::com::ObjectInfo object, bool isClass, ecere::com::Instance _class)", 0, 1);
6507 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DroppedObject", "void ::DroppedObject(ecere::com::Instance instance, ecere::com::ObjectInfo object, bool isClass, ecere::com::Instance _class)", 0, 1);
6508 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DestroyObject", "void ::DestroyObject(ecere::com::Instance object)", 0, 1);
6509 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixProperty", "void ::FixProperty(ecere::com::Property prop, ecere::com::Instance object)", 0, 1);
6510 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateNew", "void ::CreateNew(EditBox editBox, Size clientSize, char * name, char * inherit)", 0, 1);
6511 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::SetActiveDesigner", "void ecere::com::SetActiveDesigner(ecere::com::DesignerBase designer)", __ecereNameSpace__ecere__com__SetActiveDesigner, module, 4);
6512 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetActiveDesigner", "ecere::com::DesignerBase ecere::com::GetActiveDesigner(void)", __ecereNameSpace__ecere__com__GetActiveDesigner, module, 4);
6513 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::LEAD_OFFSET", "0xD800 - (0x10000 >> 10)", module, 2);
6514 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::SURROGATE_OFFSET", "0x10000 - (0xD800 << 10) - 0xDC00", module, 2);
6515 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8Validate", "bool ecere::sys::UTF8Validate(char * source)", __ecereNameSpace__ecere__sys__UTF8Validate, module, 4);
6516 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::ISO8859_1toUTF8", "int ecere::sys::ISO8859_1toUTF8(char * source, char * dest, int max)", __ecereNameSpace__ecere__sys__ISO8859_1toUTF8, module, 4);
6517 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8", "char * ecere::sys::UTF16toUTF8(uint16 * source)", __ecereNameSpace__ecere__sys__UTF16toUTF8, module, 4);
6518 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8Buffer", "int ecere::sys::UTF16toUTF8Buffer(uint16 * source, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer, module, 4);
6519 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8GetChar", "ecere::com::unichar ecere::sys::UTF8GetChar(char * string, int * numBytes)", __ecereNameSpace__ecere__sys__UTF8GetChar, module, 4);
6520 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16Buffer", "int ecere::sys::UTF8toUTF16Buffer(char * source, uint16 * dest, int max)", __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer, module, 4);
6521 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF32toUTF8Len", "int ecere::sys::UTF32toUTF8Len(ecere::com::unichar * source, int count, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF32toUTF8Len, module, 4);
6522 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16", "uint16 * ecere::sys::UTF8toUTF16(char * source, int * wordCount)", __ecereNameSpace__ecere__sys__UTF8toUTF16, module, 4);
6525 void __ecereUnregisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6528 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6529 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6530 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;