2 typedef long long int64;
3 typedef unsigned long long uint64;
5 #define stdcall __attribute__((__stdcall__))
9 #elif defined(__TINYC__)
11 #define __builtin_va_list va_list
12 #define __builtin_va_start va_start
13 #define __builtin_va_end va_end
15 #define strcasecmp stricmp
16 #define strncasecmp strnicmp
17 #define __declspec(x) __attribute__((x))
18 #define stdcall __attribute__((__stdcall__))
22 typedef long long int64;
23 typedef unsigned long long uint64;
25 typedef __int64 int64;
26 typedef unsigned __int64 uint64;
29 #define __ENDIAN_PAD(x) (8 - (x))
31 #define __ENDIAN_PAD(x) 0
33 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
35 struct __ecereNameSpace__ecere__sys__BTNode;
37 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
39 struct __ecereNameSpace__ecere__sys__BinaryTree
41 struct __ecereNameSpace__ecere__sys__BTNode * root;
43 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, unsigned int a, unsigned int b);
44 void (* FreeKey)(void * key);
45 } __attribute__ ((gcc_struct));
47 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
49 struct __ecereNameSpace__ecere__sys__OldList
56 } __attribute__ ((gcc_struct));
58 struct __ecereNameSpace__ecere__com__Class
60 struct __ecereNameSpace__ecere__com__Class * prev, * next;
62 int offset, structSize;
65 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
66 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
67 int offsetClass, sizeClass;
68 struct __ecereNameSpace__ecere__com__Class * base;
69 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
70 struct __ecereNameSpace__ecere__sys__BinaryTree members;
71 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
72 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
73 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
74 struct __ecereNameSpace__ecere__sys__OldList derivatives;
75 int memberID, startMemberID;
77 struct __ecereNameSpace__ecere__com__Instance * module;
78 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
79 char * dataTypeString;
80 struct __ecereNameSpace__ecere__com__Instance * dataType;
83 void (* Initialize)();
85 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
87 unsigned int noExpansion;
88 char * defaultProperty;
89 unsigned int comRedefinition;
91 unsigned int isRemote;
92 unsigned int internalDecl;
94 unsigned int computeSize;
96 int destructionWatchOffset;
98 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
99 int inheritanceAccess;
102 struct __ecereNameSpace__ecere__sys__OldList conversions;
103 struct __ecereNameSpace__ecere__sys__OldList templateParams;
104 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
105 struct __ecereNameSpace__ecere__com__Class * templateClass;
106 struct __ecereNameSpace__ecere__sys__OldList templatized;
108 } __attribute__ ((gcc_struct));
110 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
112 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
114 struct __ecereNameSpace__ecere__com__Instance
117 struct __ecereNameSpace__ecere__com__Class * _class;
119 } __attribute__ ((gcc_struct));
121 struct __ecereNameSpace__ecere__com__Property
123 struct __ecereNameSpace__ecere__com__Property * prev, * next;
125 unsigned int isProperty;
128 struct __ecereNameSpace__ecere__com__Class * _class;
129 char * dataTypeString;
130 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
131 struct __ecereNameSpace__ecere__com__Instance * dataType;
134 unsigned int (* IsSet)();
138 unsigned int conversion;
139 unsigned int watcherOffset;
141 unsigned int compiled;
142 unsigned int selfWatchable, isWatchable;
143 } __attribute__ ((gcc_struct));
145 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
147 struct __ecereNameSpace__ecere__com__DataMember
149 struct __ecereNameSpace__ecere__com__DataMember * prev, * next;
151 unsigned int isProperty;
154 struct __ecereNameSpace__ecere__com__Class * _class;
155 char * dataTypeString;
156 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
157 struct __ecereNameSpace__ecere__com__Instance * dataType;
161 struct __ecereNameSpace__ecere__sys__OldList members;
162 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
165 } __attribute__ ((gcc_struct));
167 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
169 struct __ecereNameSpace__ecere__com__Method
172 struct __ecereNameSpace__ecere__com__Method * parent, * left, * right;
177 struct __ecereNameSpace__ecere__com__Class * _class;
179 char * dataTypeString;
180 struct __ecereNameSpace__ecere__com__Instance * dataType;
182 } __attribute__ ((gcc_struct));
184 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
186 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
188 struct __ecereNameSpace__ecere__com__SerialBuffer
190 unsigned char * _buffer;
194 } __attribute__ ((gcc_struct));
196 struct __ecereNameSpace__ecere__com__DataValue
211 } __attribute__ ((gcc_struct));
212 } __attribute__ ((gcc_struct));
214 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
216 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
222 char * dataTypeString;
223 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
224 } __attribute__ ((gcc_struct));
225 struct __ecereNameSpace__ecere__com__DataValue expression;
231 struct __ecereNameSpace__ecere__com__DataMember * member;
232 struct __ecereNameSpace__ecere__com__Property * prop;
233 struct __ecereNameSpace__ecere__com__Method * method;
234 } __attribute__ ((gcc_struct));
235 } __attribute__ ((gcc_struct));
236 } __attribute__ ((gcc_struct));
237 } __attribute__ ((gcc_struct));
239 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
241 typedef unsigned int size_t;
243 void exit(int status);
245 void * calloc(size_t nmemb, size_t size);
247 void free(void * ptr);
249 void * malloc(size_t size);
251 void * realloc(void * ptr, size_t size);
253 long int strtol(const char * nptr, char ** endptr, int base);
255 long long int strtoll(const char * nptr, char ** endptr, int base);
257 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
259 typedef __builtin_va_list __gnuc_va_list;
261 typedef __gnuc_va_list va_list;
265 FILE * bsl_stdin(void);
267 FILE * bsl_stdout(void);
269 FILE * bsl_stderr(void);
271 char * fgets(char * s, int size, FILE * stream);
273 FILE * fopen(const char * path, const char * mode);
275 int fclose(FILE * fp);
277 int fflush(FILE * stream);
279 int fgetc(FILE * stream);
281 int fprintf(FILE * stream, const char * format, ...);
283 int fputc(int c, FILE * stream);
285 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
287 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
289 int fseek(FILE * stream, long offset, int whence);
291 long ftell(FILE * stream);
293 int feof(FILE * stream);
295 int ferror(FILE * stream);
297 int fileno(FILE * stream);
300 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
302 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
304 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
306 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
308 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
310 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
312 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
314 extern int __ecereVMethodID_class_OnGetDataFromString;
316 unsigned int Instance_LocateModule(char * name, char * fileName);
318 void Instance_COM_Initialize(int argc, char ** argv, char ** parsedCommand, int * argcPtr, char *** argvPtr);
320 void * Instance_Module_Load(char * name, void ** Load, void ** Unload);
322 void Instance_Module_Free(void * library);
324 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__unichar;
326 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max);
328 char * __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * tempString, void * fieldData, unsigned int * needClass)
330 __ecereNameSpace__ecere__sys__UTF32toUTF8Len(&(*(this)), 1, tempString, 5);
334 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes);
336 unsigned int __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string)
340 (*(this)) = __ecereNameSpace__ecere__sys__UTF8GetChar(string, &nb);
344 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
346 void __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(char * loc)
350 void __ecereNameSpace__ecere__com__MemoryGuard_PopLoc()
354 extern unsigned int __ecereDll_Load_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
356 extern unsigned int __ecereDll_Unload_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
358 struct __ecereNameSpace__ecere__com__BTNamedLink
361 struct __ecereNameSpace__ecere__com__BTNamedLink * parent, * left, * right;
364 } __attribute__ ((gcc_struct));
366 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BTNamedLink;
368 struct __ecereNameSpace__ecere__com__SelfWatcher
370 struct __ecereNameSpace__ecere__com__SelfWatcher * prev, * next;
371 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *);
372 struct __ecereNameSpace__ecere__com__Property * _property;
373 } __attribute__ ((gcc_struct));
375 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SelfWatcher;
377 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AccessMode;
379 struct __ecereNameSpace__ecere__com__SubModule
381 struct __ecereNameSpace__ecere__com__SubModule * prev, * next;
382 struct __ecereNameSpace__ecere__com__Instance * module;
384 } __attribute__ ((gcc_struct));
386 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SubModule;
388 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMemberType;
390 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassType;
392 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Class_char__PTR_;
394 char * __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this)
399 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
401 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(char * value)
403 struct __ecereNameSpace__ecere__com__Class * theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, value);
408 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)
413 struct __ecereNameSpace__ecere__com__NameSpace
416 struct __ecereNameSpace__ecere__com__NameSpace * btParent, * left, * right;
418 struct __ecereNameSpace__ecere__com__NameSpace * parent;
419 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
420 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
421 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
422 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
423 } __attribute__ ((gcc_struct));
425 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
427 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
429 struct __ecereNameSpace__ecere__com__Module
431 struct __ecereNameSpace__ecere__com__Instance * application;
432 struct __ecereNameSpace__ecere__sys__OldList classes;
433 struct __ecereNameSpace__ecere__sys__OldList defines;
434 struct __ecereNameSpace__ecere__sys__OldList functions;
435 struct __ecereNameSpace__ecere__sys__OldList modules;
436 struct __ecereNameSpace__ecere__com__Instance * prev;
437 struct __ecereNameSpace__ecere__com__Instance * next;
443 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
444 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
445 } __attribute__ ((gcc_struct));
447 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, char * string)
449 struct __ecereNameSpace__ecere__com__Class * theClass;
451 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
453 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application, string);
454 (*(this)) = (void *)theClass;
455 return theClass != (((void *)0));
458 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
460 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_char__PTR_;
462 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)
464 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_char__PTR_, this->fullName);
467 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this)
471 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
473 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
475 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)
477 struct __ecereNameSpace__ecere__com__Class * theClass;
480 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &string);
481 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
483 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application, string);
484 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
485 (*(this)) = (void *)theClass;
488 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType;
490 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType;
492 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
494 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev, * next;
499 char * dataTypeString;
501 } __attribute__ ((gcc_struct));
502 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
504 } __attribute__ ((gcc_struct));
506 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
508 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MethodType;
510 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ImportType;
512 struct __ecereNameSpace__ecere__com__BitMember
514 struct __ecereNameSpace__ecere__com__BitMember * prev, * next;
516 unsigned int isProperty;
519 struct __ecereNameSpace__ecere__com__Class * _class;
520 char * dataTypeString;
521 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
522 struct __ecereNameSpace__ecere__com__Instance * dataType;
527 } __attribute__ ((gcc_struct));
529 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
531 struct __ecereNameSpace__ecere__com__ClassProperty
534 struct __ecereNameSpace__ecere__com__ClassProperty * parent, * left, * right;
536 void (* Set)(struct __ecereNameSpace__ecere__com__Class *, int);
537 int (* Get)(struct __ecereNameSpace__ecere__com__Class *);
538 char * dataTypeString;
539 struct __ecereNameSpace__ecere__com__Instance * dataType;
540 unsigned int constant;
541 } __attribute__ ((gcc_struct));
543 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty;
545 struct __ecereNameSpace__ecere__com__DefinedExpression
547 struct __ecereNameSpace__ecere__com__DefinedExpression * prev, * next;
550 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
551 } __attribute__ ((gcc_struct));
553 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
555 struct __ecereNameSpace__ecere__com__GlobalFunction
557 struct __ecereNameSpace__ecere__com__GlobalFunction * prev, * next;
560 struct __ecereNameSpace__ecere__com__Instance * module;
561 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
562 char * dataTypeString;
563 struct __ecereNameSpace__ecere__com__Instance * dataType;
565 } __attribute__ ((gcc_struct));
567 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
569 struct __ecereNameSpace__ecere__com__EnumClassData
571 struct __ecereNameSpace__ecere__sys__OldList values;
573 } __attribute__ ((gcc_struct));
575 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
577 struct __ecereNameSpace__ecere__com__Watcher
579 struct __ecereNameSpace__ecere__com__Watcher * prev, * next;
580 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *);
581 struct __ecereNameSpace__ecere__com__Instance * object;
582 } __attribute__ ((gcc_struct));
584 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Watcher;
586 static unsigned int __ecereNameSpace__ecere__com__TOTAL_MEM = 0;
588 static unsigned int __ecereNameSpace__ecere__com__OUTSIDE_MEM = 0;
590 struct __ecereNameSpace__ecere__com__MemBlock
592 struct __ecereNameSpace__ecere__com__MemBlock * prev, * next;
593 struct __ecereNameSpace__ecere__com__MemPart * part;
595 } __attribute__ ((gcc_struct));
597 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemBlock;
599 struct __ecereNameSpace__ecere__com__MemPart
604 struct __ecereNameSpace__ecere__com__BlockPool * pool;
605 } __attribute__ ((gcc_struct));
607 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemPart;
609 static int __ecereNameSpace__ecere__com__power15[] =
611 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
614 struct __ecereNameSpace__ecere__com__BlockPool
616 struct __ecereNameSpace__ecere__com__MemBlock * first, * last;
617 struct __ecereNameSpace__ecere__com__MemBlock * free;
618 unsigned int blockSize;
619 unsigned int blockSpace;
622 unsigned int totalSize;
623 unsigned int usedSpace;
624 } __attribute__ ((gcc_struct));
626 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BlockPool;
628 unsigned int __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(struct __ecereNameSpace__ecere__com__BlockPool * this, unsigned int numBlocks)
630 unsigned char * memory = malloc(numBlocks * this->blockSpace);
632 __ecereNameSpace__ecere__com__TOTAL_MEM += numBlocks * this->blockSpace;
636 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)memory;
637 struct __ecereNameSpace__ecere__com__MemPart * part = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__MemPart));
639 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemPart);
641 for(c = 0; c < numBlocks - 1; c++)
644 block->prev = (((void *)0));
645 block->next = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)block + this->blockSpace);
648 part->blocksUsed = 0;
650 part->memory = memory;
651 part->size = numBlocks;
653 block->prev = (((void *)0));
654 block->next = (((void *)0));
655 this->totalSize += numBlocks;
662 struct __ecereNameSpace__ecere__com__MemBlock * __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(struct __ecereNameSpace__ecere__com__BlockPool * this)
665 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
668 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(this, (__simpleStruct0 = this->numBlocks / 2, (1 > __simpleStruct0) ? 1 : __simpleStruct0));
672 block->prev = this->last;
674 block->prev->next = block;
678 this->free = block->next;
679 block->next = (((void *)0));
680 block->part->blocksUsed++;
686 void __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove(struct __ecereNameSpace__ecere__com__BlockPool * this, struct __ecereNameSpace__ecere__com__MemBlock * block)
689 block->prev->next = block->next;
691 block->next->prev = block->prev;
692 if(this->first == block)
693 this->first = block->next;
694 if(this->last == block)
695 this->last = block->prev;
696 block->next = this->free;
698 block->part->blocksUsed--;
700 (*block->part->pool).usedSpace -= block->size;
701 if(!block->part->blocksUsed && this->numBlocks && this->totalSize > this->numBlocks + this->numBlocks / 2)
703 struct __ecereNameSpace__ecere__com__MemBlock * next = this->free, * prev = (((void *)0));
704 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
706 this->free = (((void *)0));
707 this->totalSize -= part->size;
710 if(next->part != part)
722 prev->next = (((void *)0));
723 __ecereNameSpace__ecere__com__TOTAL_MEM -= part->size * this->blockSpace;
724 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemPart);
731 static struct __ecereNameSpace__ecere__com__BlockPool * __ecereNameSpace__ecere__com__pools;
733 static unsigned int __ecereNameSpace__ecere__com__PosFibonacci(unsigned int number)
736 unsigned int last = 1, prev = 0;
737 unsigned int current = 1;
739 for(pos = 0; ; pos++)
744 if(current >= number)
750 static unsigned int __ecereNameSpace__ecere__com__NthFibonacci(unsigned int number)
753 unsigned int last = 1, prev = 0;
754 unsigned int current = 1;
756 for(pos = 0; pos <= number; pos++)
765 static unsigned int __ecereNameSpace__ecere__com__NextFibonacci(unsigned int number)
768 unsigned int last = 1, prev = 0;
769 unsigned int current = 1;
771 for(pos = 0; ; pos++)
776 if(current >= number)
781 static unsigned int __ecereNameSpace__ecere__com__log1_5i(unsigned int number)
786 for(pos = 0; pos < 31; pos++)
788 if(current >= number)
790 current = current * 3 / 2;
797 static unsigned int __ecereNameSpace__ecere__com__pow1_5(unsigned int number)
802 for(pos = 0; pos < number; pos++)
804 current = current * 3 / 2;
808 return (unsigned int)current;
811 static unsigned int __ecereNameSpace__ecere__com__pow1_5i(unsigned int number)
816 for(pos = 0; pos < 31; pos++)
818 if(current >= number)
819 return (unsigned int)current;
820 current = current * 3 / 2;
824 return (unsigned int)current;
827 unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number)
831 for(power = 0; power < 32; power++)
832 if((1L << power) >= number)
837 unsigned int __ecereNameSpace__ecere__com__pow2i(unsigned int number)
839 return 1 << __ecereNameSpace__ecere__com__log2i(number);
842 static unsigned int __ecereNameSpace__ecere__com__memoryInitialized = 0x0;
844 static void __ecereNameSpace__ecere__com__InitMemory()
848 __ecereNameSpace__ecere__com__memoryInitialized = 0x1;
849 __ecereNameSpace__ecere__com__pools = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__BlockPool) * 31);
850 for(c = 0; c < 31; c++)
854 __ecereNameSpace__ecere__com__pools[c].blockSize = __ecereNameSpace__ecere__com__pow1_5(c);
855 if(__ecereNameSpace__ecere__com__pools[c].blockSize % 4)
856 __ecereNameSpace__ecere__com__pools[c].blockSize += 4 - (__ecereNameSpace__ecere__com__pools[c].blockSize % 4);
857 __ecereNameSpace__ecere__com__pools[c].blockSpace = __ecereNameSpace__ecere__com__pools[c].blockSize;
858 __ecereNameSpace__ecere__com__pools[c].blockSpace += sizeof(struct __ecereNameSpace__ecere__com__MemBlock);
859 expansion = (__ecereNameSpace__ecere__com__pools[c].blockSize < 128) ? 1024 : (131072 / __ecereNameSpace__ecere__com__pools[c].blockSize);
861 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(&__ecereNameSpace__ecere__com__pools[c], ((1 > expansion) ? 1 : expansion));
865 static void * __ecereNameSpace__ecere__com___mymalloc(unsigned int size)
867 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
871 unsigned int p = __ecereNameSpace__ecere__com__log1_5i(size);
873 if(!__ecereNameSpace__ecere__com__memoryInitialized)
874 __ecereNameSpace__ecere__com__InitMemory();
877 block = __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(&__ecereNameSpace__ecere__com__pools[p]);
881 __ecereNameSpace__ecere__com__pools[p].usedSpace += size;
886 block = malloc(sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
889 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
890 __ecereNameSpace__ecere__com__OUTSIDE_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
891 block->part = (((void *)0));
895 return block ? ((struct __ecereNameSpace__ecere__com__MemBlock *)block + 1) : (((void *)0));
898 extern void memset(void * area, unsigned char value, unsigned int count);
900 static void * __ecereNameSpace__ecere__com___mycalloc(int n, unsigned int size)
902 void * pointer = __ecereNameSpace__ecere__com___mymalloc(size);
905 memset(pointer, (unsigned char)0, size);
909 static void __ecereNameSpace__ecere__com___myfree(void * pointer)
913 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock));
914 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
915 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
918 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove((&*pool), block);
921 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
922 __ecereNameSpace__ecere__com__OUTSIDE_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
928 extern void * memcpy(void * , const void * , unsigned int size);
930 static void * __ecereNameSpace__ecere__com___myrealloc(void * pointer, unsigned int size)
932 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
933 void * newPointer = (((void *)0));
934 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
935 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
941 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
942 unsigned int mod = ns % 4;
946 if(ns == (*pool).blockSize)
948 newPointer = pointer;
949 (*pool).usedSpace += size - block->size;
955 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
959 __ecereNameSpace__ecere__com__TOTAL_MEM += size - newBlock->size;
960 __ecereNameSpace__ecere__com__OUTSIDE_MEM += size - newBlock->size;
961 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
967 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
968 if(pointer && newPointer)
970 unsigned int __simpleStruct0;
972 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
973 __ecereNameSpace__ecere__com___myfree(pointer);
979 static void * __ecereNameSpace__ecere__com___mycrealloc(void * pointer, unsigned int size)
981 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
982 void * newPointer = (((void *)0));
983 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
984 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
990 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
991 unsigned int mod = ns % 4;
995 if(ns == (*pool).blockSize)
997 int extra = size - block->size;
999 newPointer = pointer;
1000 (*pool).usedSpace += extra;
1002 memset((unsigned char *)pointer + block->size, (unsigned char)0, extra);
1008 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
1012 int extra = size - newBlock->size;
1014 __ecereNameSpace__ecere__com__TOTAL_MEM += extra;
1015 __ecereNameSpace__ecere__com__OUTSIDE_MEM += extra;
1016 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1018 memset((unsigned char *)newPointer + newBlock->size, (unsigned char)0, extra);
1019 newBlock->size = size;
1025 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1030 unsigned int __simpleStruct0;
1032 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1033 if(size > block->size)
1034 memset((unsigned char *)newPointer + block->size, (unsigned char)0, size - block->size);
1035 __ecereNameSpace__ecere__com___myfree(pointer);
1038 memset((unsigned char *)newPointer, (unsigned char)0, size);
1044 static void * __ecereNameSpace__ecere__com___malloc(unsigned int size)
1048 pointer = __ecereNameSpace__ecere__com___mymalloc(size + 2 * 0);
1049 return (unsigned char *)pointer + 0;
1052 static void * __ecereNameSpace__ecere__com___calloc(int n, unsigned int size)
1056 pointer = __ecereNameSpace__ecere__com___mycalloc(n, size + 2 * 0);
1057 return (unsigned char *)pointer + 0;
1060 static void __ecereNameSpace__ecere__com___free(void * pointer);
1062 static void * __ecereNameSpace__ecere__com___realloc(void * pointer, unsigned int size)
1066 __ecereNameSpace__ecere__com___free(pointer);
1067 return (((void *)0));
1069 pointer = __ecereNameSpace__ecere__com___myrealloc(pointer, size);
1070 return (unsigned char *)pointer + 0;
1073 static void * __ecereNameSpace__ecere__com___crealloc(void * pointer, unsigned int size)
1076 return (((void *)0));
1077 pointer = __ecereNameSpace__ecere__com___mycrealloc(pointer, size);
1078 return (unsigned char *)pointer + 0;
1081 static void __ecereNameSpace__ecere__com___free(void * pointer)
1085 __ecereNameSpace__ecere__com___myfree(pointer);
1089 void __ecereNameSpace__ecere__com__memswap(unsigned char * a, unsigned char * b, unsigned int size)
1092 unsigned char buffer[1024];
1094 for(c = 0; c < size; )
1096 int s = sizeof buffer;
1100 memcpy(buffer, a + c, s);
1101 memcpy(a + c, b + c, s);
1102 memcpy(b + c, buffer, s);
1107 void __ecereNameSpace__ecere__com__CheckMemory()
1111 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule);
1113 extern char * strchr(char * , int);
1115 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
1117 struct __ecereNameSpace__ecere__sys__OldLink
1119 struct __ecereNameSpace__ecere__sys__OldLink * prev;
1120 struct __ecereNameSpace__ecere__sys__OldLink * next;
1122 } __attribute__ ((gcc_struct));
1124 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1126 extern void * memmove(void * , const void * , unsigned int size);
1128 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property);
1130 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1132 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1134 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1136 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1138 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key);
1140 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1142 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1144 static void __ecereNameSpace__ecere__com__FixDerivativesBase(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Class * mod)
1146 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
1147 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1149 __ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)));
1150 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
1152 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
1153 int type = _class->type;
1154 int size = _class->structSize - _class->offset;
1155 int oldSizeClass = _class->sizeClass;
1156 int sizeClass = _class->sizeClass - _class->offsetClass;
1157 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1158 char * dataTypeString = (((void *)0));
1159 struct __ecereNameSpace__ecere__com__Class * baseClass;
1160 unsigned int offsetBefore = _class->offset;
1161 int offsetClass, totalSizeClass;
1163 for(baseClass = base; baseClass->base; baseClass = baseClass->base)
1165 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1167 if(base->type == 1 && type == 0)
1172 if(base && (_class->type == 0 || _class->type == 5 || _class->type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1181 base = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, "enum");
1184 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1185 offsetClass = base ? (base->templateClass ? base->templateClass->sizeClass : base->sizeClass) : (type == 5 ? 0 : 0);
1186 totalSizeClass = offsetClass + sizeClass;
1187 if(type == 0 || type == 5)
1188 _class->offset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : ((type == 5) ? 0 : 12);
1191 _class->memberOffset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : 0;
1192 _class->typeSize = _class->structSize = _class->memberOffset + size;
1194 else if(type == 2 || type == 4 || type == 3)
1196 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1199 _class->typeSize = dataTypeClass->typeSize;
1200 _class->structSize = 0;
1202 else if(type == 0 || type == 5)
1204 _class->structSize = _class->offset + size;
1205 _class->typeSize = sizeof(void *);
1207 if(_class->type != 1000)
1208 _class->type = type;
1209 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1210 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1211 if(totalSizeClass != oldSizeClass)
1213 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1214 memmove((unsigned char *)_class->data + mod->offsetClass, (unsigned char *)_class->data, totalSizeClass - mod->sizeClass);
1215 if(base->type != 1000 && base->type != 4)
1216 memcpy((unsigned char *)_class->data, (unsigned char *)base->data, totalSizeClass - _class->sizeClass);
1218 memset((unsigned char *)_class->data, (unsigned char)0, totalSizeClass - _class->sizeClass);
1220 _class->offsetClass = offsetClass;
1221 _class->sizeClass = totalSizeClass;
1223 struct __ecereNameSpace__ecere__com__Method * method, * next;
1224 struct __ecereNameSpace__ecere__com__Class * b;
1225 unsigned int needUpdate = (mod != (base->templateClass ? base->templateClass : base) || _class->vTblSize != mod->vTblSize);
1227 if(mod->base && mod->base->base && mod->base->vTblSize > baseClass->vTblSize && needUpdate)
1229 _class->vTblSize += mod->base->vTblSize - baseClass->vTblSize;
1230 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
1231 memmove(_class->_vTbl + mod->base->vTblSize, _class->_vTbl + baseClass->vTblSize, (_class->vTblSize - mod->vTblSize) * sizeof(void *));
1232 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
1234 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
1235 if(method->type == 1)
1236 method->vid += mod->base->vTblSize - baseClass->vTblSize;
1239 for(b = mod->base; b && b != (((void *)0)); b = b->base)
1241 struct __ecereNameSpace__ecere__com__Method * vMethod;
1243 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)))
1245 if(vMethod->type == 1)
1247 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, vMethod->name);
1250 if(method->function)
1251 _class->_vTbl[vMethod->vid] = method->function;
1254 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1255 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1256 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1260 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1261 method->type = vMethod->type;
1262 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(vMethod->dataTypeString);
1263 method->_class = vMethod->_class;
1266 else if(needUpdate || _class->_vTbl[vMethod->vid] == b->_vTbl[vMethod->vid])
1267 _class->_vTbl[vMethod->vid] = _class->base->_vTbl[vMethod->vid];
1272 if(type == 0 || type == 5 || type == 1)
1274 struct __ecereNameSpace__ecere__com__Property * prop;
1275 struct __ecereNameSpace__ecere__com__DataMember * member;
1276 struct __ecereNameSpace__ecere__com__Class * c;
1278 for(c = mod->base; c; c = c->base)
1280 struct __ecereNameSpace__ecere__com__Property * _property;
1282 for(_property = c->membersAndProperties.first; _property; _property = _property->next)
1284 if(_property->isProperty)
1286 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
1291 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
1293 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
1295 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
1297 if(watcher->_property == prop)
1298 watcher->_property = _property;
1300 _property->selfWatchable = 0x1;
1301 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1302 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
1303 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
1304 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
1311 for(member = _class->membersAndProperties.first; member; member = member->next)
1313 int offsetDiff = _class->offset - offsetBefore;
1315 if(!member->isProperty && offsetDiff > 0)
1317 member->offset += offsetDiff;
1318 member->memberOffset += offsetDiff;
1320 member->id += mod->base->memberID;
1322 _class->memberID += mod->base->memberID;
1323 _class->startMemberID += mod->base->memberID;
1326 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, mod);
1328 struct __ecereNameSpace__ecere__com__Class * c;
1330 for(c = mod->base; c; c = c->base)
1332 struct __ecereNameSpace__ecere__com__ClassProperty * _property;
1334 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)))
1336 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
1342 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1344 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
1346 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
1347 char * templateParams = strchr(template->name, '<');
1349 template->base = base->base;
1350 template->_vTbl = base->_vTbl;
1351 template->data = base->data;
1352 template->offset = base->offset;
1353 template->offsetClass = base->offsetClass;
1354 template->sizeClass = base->sizeClass;
1355 template->structSize = base->structSize;
1356 template->vTblSize = base->vTblSize;
1357 __ecereNameSpace__ecere__com__FixDerivativesBase(template, mod);
1362 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
1364 struct __ecereNameSpace__ecere__com__Application
1369 unsigned int isGUIApp;
1370 struct __ecereNameSpace__ecere__sys__OldList allModules;
1371 char * parsedCommand;
1372 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1373 } __attribute__ ((gcc_struct));
1375 extern char * strncpy(char * , const char * , int n);
1377 extern int strcmp(const char * , const char * );
1379 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base);
1381 extern int printf(char * , ...);
1383 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace);
1385 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset);
1387 extern char * strcpy(char * , const char * );
1389 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template);
1391 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg);
1393 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b);
1395 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1397 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1399 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data);
1401 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1403 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)
1405 void * __ecereTemp1;
1407 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
1410 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
1412 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace;
1414 for(c = 0; name[c]; c++)
1416 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
1418 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
1419 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
1421 strncpy(spaceName, name + start, c - start);
1422 spaceName[c - start] = '\0';
1423 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
1426 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
1427 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1428 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1429 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1430 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1431 (*newSpace).name = spaceName;
1432 (*newSpace).parent = nameSpace;
1433 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
1436 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
1437 nameSpace = newSpace;
1449 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (((void *)0));
1450 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
1451 char * dataTypeString = (((void *)0));
1452 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1453 struct __ecereNameSpace__ecere__com__Class * base = (baseName && baseName[0]) ? __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName) : (((void *)0));
1454 unsigned int refine = 0x0;
1456 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1458 if(base->type == 1 && type == 0)
1463 if(base && (type == 0 || type == 5 || type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1467 if(!base || base->type == 1000)
1471 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"))
1473 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1474 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1478 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1479 base->internalDecl = 0x1;
1481 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1484 else if(type == 1 && (!baseName || !baseName[0]))
1486 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "struct");
1487 dataTypeString = name + start;
1492 dataTypeString = "struct __ecereNameSpace__ecere__com__Instance";
1494 dataTypeString = "void *";
1496 dataTypeString = (baseName && baseName[0]) ? baseName : "unsigned int";
1498 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1500 dataTypeString = name + start;
1501 if(base || (!baseName || !baseName[0]) || type == 2 || type == 3)
1503 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"))
1505 if(type == 0 && strcmp(name, "ecere::com::Instance") && strcmp(name, "enum") && strcmp(name, "struct"))
1506 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1508 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1523 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1526 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1528 offsetClass = base ? base->sizeClass : (type == 5 ? 0 : 0);
1529 totalSizeClass = offsetClass + sizeClass;
1530 if((_class = __ecereNameSpace__ecere__com__eSystem_FindClass(module, name)))
1532 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1533 if(!_class->internalDecl)
1536 printf("error: Redefinition of class %s\n", name);
1539 _class->comRedefinition = 0x1;
1542 return (((void *)0));
1544 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, name + start);
1545 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1547 struct __ecereNameSpace__ecere__sys__OldLink * t;
1549 for(t = _class->templatized.first; t; t = t->next)
1551 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1553 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1554 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1558 struct __ecereNameSpace__ecere__com__NameSpace * ns = _class->nameSpace;
1560 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))
1562 struct __ecereNameSpace__ecere__com__NameSpace * parent = (*ns).parent;
1564 __ecereNameSpace__ecere__com__NameSpace_Free(ns);
1565 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*parent).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)ns);
1573 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 12)))->privateNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1575 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 12)))->publicNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1577 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 12)))->privateNameSpace, name + start, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1579 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 12)))->publicNameSpace, name + start, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1581 _class = classLink->data;
1582 if(_class && _class->internalDecl)
1584 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1585 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1587 struct __ecereNameSpace__ecere__sys__OldLink * t;
1589 for(t = _class->templatized.first; t; t = t->next)
1591 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1593 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1594 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1598 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
1599 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1603 _class = __ecereNameSpace__ecere__com___calloc(1, sizeof(struct __ecereNameSpace__ecere__com__Class));
1604 _class->methods.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1605 _class->members.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1606 _class->prop.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1607 _class->classProperties.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1608 _class->name = __ecereNameSpace__ecere__sys__CopyString(name + start);
1609 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1614 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = _class->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = _class, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
1616 struct __ecereNameSpace__ecere__sys__OldLink * t;
1618 for(t = _class->templatized.first; t; t = t->next)
1620 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1622 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = template->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = template, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
1628 if(!base && baseName && strcmp(baseName, name))
1630 if(strchr(baseName, '<'))
1632 char templateClassName[1024];
1633 struct __ecereNameSpace__ecere__com__Class * templateBase;
1635 strcpy(templateClassName, baseName);
1636 *strchr(templateClassName, '<') = '\0';
1637 templateBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, templateClassName);
1640 templateBase = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, templateClassName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1641 templateBase->internalDecl = 0x1;
1643 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName);
1647 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1648 base->internalDecl = 0x1;
1652 _class->internalDecl = 0x0;
1655 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1656 if(base && base->type != 1000 && base->type != 4)
1657 memcpy(_class->data, base->data, offsetClass);
1659 memset(_class->data, (unsigned char)0, offsetClass);
1660 memset((unsigned char *)_class->data + offsetClass, (unsigned char)0, sizeClass);
1662 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1663 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1664 _class->defaultAlignment = base ? base->defaultAlignment : 0;
1667 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->classes, _class);
1671 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1672 struct __ecereNameSpace__ecere__sys__OldLink * deriv = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(&base->derivatives, _class);
1674 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1678 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes, _class);
1680 _class->nameSpace = nameSpace;
1682 struct __ecereNameSpace__ecere__sys__OldLink * t;
1684 for(t = _class->templatized.first; t; t = t->next)
1686 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1688 template->nameSpace = nameSpace;
1691 _class->module = module;
1692 _class->base = base;
1696 struct __ecereNameSpace__ecere__com__Class * sClass;
1698 for(sClass = base; sClass; sClass = sClass->base)
1700 if(sClass->templateClass)
1701 sClass = sClass->templateClass;
1702 numParams += sClass->templateParams.count;
1706 if(_class->templateArgs)
1708 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1710 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1711 _class->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
1712 _class->numParams = numParams;
1713 for(sClass = _class; sClass; sClass = sClass->base)
1715 struct __ecereNameSpace__ecere__com__Class * prevClass;
1716 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1719 if(sClass->templateClass)
1720 sClass = sClass->templateClass;
1721 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
1723 if(prevClass->templateClass)
1724 prevClass = prevClass->templateClass;
1725 id += prevClass->templateParams.count;
1727 if(base->templateArgs)
1729 for(param = sClass->templateParams.first; param; param = param->next)
1731 _class->templateArgs[id] = base->templateArgs[id];
1732 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &_class->templateArgs[id]);
1739 _class->memberID = _class->startMemberID = (base && (type == 0 || type == 5 || type == 1)) ? base->memberID : 0;
1740 if(type == 0 || type == 5)
1741 _class->offset = (base && base->structSize && base->type != 1000) ? base->structSize : ((type == 5) ? 0 : 12);
1744 _class->memberOffset = (base && base->structSize && base->type != 1000) ? base->structSize : 0;
1745 _class->typeSize = _class->structSize = _class->memberOffset + size;
1747 else if(type == 2 || type == 4 || type == 3)
1749 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1752 _class->typeSize = dataTypeClass->typeSize;
1753 _class->structSize = 0;
1755 else if(type == 0 || type == 5)
1757 _class->structSize = _class->offset + size;
1758 _class->typeSize = sizeof(void *);
1760 _class->offsetClass = offsetClass;
1761 _class->sizeClass = totalSizeClass;
1762 _class->Constructor = (void *)Constructor;
1763 _class->Destructor = Destructor;
1764 if(_class->type != 1000)
1765 _class->type = type;
1767 _class->computeSize = 0x1;
1769 _class->computeSize = 0x0;
1770 _class->inheritanceAccess = inheritanceAccess;
1774 _class->base = base = enumBase;
1776 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1778 if(base && base->type != 4)
1781 data->largest = ((struct __ecereNameSpace__ecere__com__EnumClassData *)base->data)->largest;
1784 if(base && base->vTblSize)
1786 _class->vTblSize = base->vTblSize;
1787 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1788 _class->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(int (*)()) * _class->vTblSize);
1789 memcpy(_class->_vTbl, base->_vTbl, sizeof(int (*)()) * _class->vTblSize);
1793 struct __ecereNameSpace__ecere__sys__OldLink * link = (link = __ecereNameSpace__ecere__com__eSystem_New0(12), link->data = _class, link);
1795 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->base->derivatives, link);
1797 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
1801 return (((void *)0));
1804 static void __ecereNameSpace__ecere__com__DataMember_Free(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
1806 struct __ecereNameSpace__ecere__com__DataMember * member;
1807 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1809 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->name), parentMember->name = 0);
1810 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->dataTypeString), parentMember->dataTypeString = 0);
1811 while((member = parentMember->members.first))
1813 __ecereNameSpace__ecere__com__DataMember_Free(member);
1814 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&parentMember->members, member);
1816 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentMember->membersAlpha)))
1818 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentMember->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1822 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1824 struct __ecereNameSpace__ecere__sys__NamedLink
1826 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
1827 struct __ecereNameSpace__ecere__sys__NamedLink * next;
1830 } __attribute__ ((gcc_struct));
1832 static void __ecereNameSpace__ecere__com__FreeEnumValue(struct __ecereNameSpace__ecere__sys__NamedLink * value)
1834 (__ecereNameSpace__ecere__com__eSystem_Delete(value->name), value->name = 0);
1837 static void __ecereNameSpace__ecere__com__FreeTemplateArg(struct __ecereNameSpace__ecere__com__Class * template, struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, int id)
1842 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1845 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1852 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template)
1854 if(template->templateArgs)
1856 struct __ecereNameSpace__ecere__com__Class * _class;
1858 for(_class = template; _class; _class = _class->base)
1860 struct __ecereNameSpace__ecere__com__Class * prevClass;
1861 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1864 if(_class->templateClass)
1865 _class = _class->templateClass;
1866 for(prevClass = _class->base; prevClass; prevClass = prevClass->base)
1868 if(prevClass->templateClass)
1869 prevClass = prevClass->templateClass;
1870 id += prevClass->templateParams.count;
1872 if(id < template->numParams)
1874 for(param = _class->templateParams.first; param; param = param->next)
1879 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1882 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1894 static void __ecereNameSpace__ecere__com__FreeTemplate(struct __ecereNameSpace__ecere__com__Class * template)
1896 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
1898 if(template->nameSpace)
1900 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
1902 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1904 __ecereNameSpace__ecere__com__FreeTemplateArgs(template);
1905 (__ecereNameSpace__ecere__com__eSystem_Delete(template->fullName), template->fullName = 0);
1906 (__ecereNameSpace__ecere__com__eSystem_Delete(template->name), template->name = 0);
1907 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs), template->templateArgs = 0);
1908 while((deriv = template->derivatives.first))
1910 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
1911 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&template->derivatives, deriv);
1913 __ecereNameSpace__ecere__com___free(template);
1916 static void __ecereNameSpace__ecere__com__FreeTemplates(struct __ecereNameSpace__ecere__com__Class * _class)
1918 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
1920 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
1922 __ecereNameSpace__ecere__com__FreeTemplates(deriv->data);
1924 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1925 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1926 while((template = _class->templatized.first))
1928 __ecereNameSpace__ecere__com__FreeTemplates(template->data);
1929 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
1930 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
1934 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
1936 void __ecereNameSpace__ecere__com__eClass_Unregister(struct __ecereNameSpace__ecere__com__Class * _class)
1938 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1939 struct __ecereNameSpace__ecere__com__DataMember * member;
1940 struct __ecereNameSpace__ecere__com__Method * method;
1941 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
1942 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
1943 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1945 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1946 __ecereNameSpace__ecere__com__FreeTemplates(_class);
1947 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1948 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1949 while((template = _class->templatized.first))
1951 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
1952 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
1954 while((member = _class->membersAndProperties.first))
1956 if(!member->isProperty && (member->type == 1 || member->type == 2))
1957 __ecereNameSpace__ecere__com__DataMember_Free(member);
1958 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
1959 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
1960 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, member);
1962 while((member = _class->conversions.first))
1964 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
1965 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
1966 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->conversions, member);
1968 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->prop)))
1970 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1972 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->members)))
1974 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1976 while((classProp = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->classProperties)))
1978 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->name), classProp->name = 0);
1979 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->dataTypeString), classProp->dataTypeString = 0);
1980 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)classProp);
1982 while((method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods)))
1984 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1985 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1986 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1988 if(_class->type == 4)
1990 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1992 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&data->values, (void *)__ecereNameSpace__ecere__com__FreeEnumValue);
1994 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->delayedCPValues, (((void *)0)));
1995 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->selfWatchers, (((void *)0)));
1998 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
2000 for(deriv = base->derivatives.first; deriv; deriv = deriv->next)
2002 if(deriv->data == _class)
2006 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
2008 while((deriv = _class->derivatives.first))
2010 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2011 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->derivatives, deriv);
2013 if(_class->nameSpace)
2015 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
2017 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2019 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->name), _class->name = 0);
2020 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
2021 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2022 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->data), _class->data = 0);
2023 while((param = _class->templateParams.first))
2028 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.dataTypeString), param->defaultArg.dataTypeString = 0);
2031 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.memberString), param->defaultArg.memberString = 0);
2036 if(param->type != 1)
2037 (__ecereNameSpace__ecere__com__eSystem_Delete(param->dataTypeString), param->dataTypeString = 0);
2038 (__ecereNameSpace__ecere__com__eSystem_Delete(param->name), param->name = 0);
2039 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templateParams, param);
2041 __ecereNameSpace__ecere__com___free(_class);
2044 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, unsigned int key);
2046 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__ScanNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2048 struct __ecereNameSpace__ecere__sys__BinaryTree * tree = (struct __ecereNameSpace__ecere__sys__BinaryTree *)((unsigned char *)nameSpace + (unsigned int)listOffset);
2049 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find((&*tree), (unsigned int)name);
2050 struct __ecereNameSpace__ecere__com__NameSpace * child;
2054 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)))
2056 link = __ecereNameSpace__ecere__com__ScanNameSpace(child, name, listOffset);
2064 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2070 for(c = 0; (ch = name[c]); c++)
2076 if(level == 0 && (ch == '.' || (ch == ':' && name[c + 1] == ':')))
2078 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
2079 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
2081 memcpy(spaceName, name + start, c - start);
2082 spaceName[c - start] = '\0';
2083 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&nameSpace->nameSpaces, spaceName);
2084 __ecereNameSpace__ecere__com___free(spaceName);
2086 return (((void *)0));
2087 nameSpace = newSpace;
2088 if(level == 0 && ch == ':')
2095 return __ecereNameSpace__ecere__com__ScanNameSpace(nameSpace, name + start, listOffset);
2097 return (((void *)0));
2100 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchModule(struct __ecereNameSpace__ecere__com__Instance * module, char * name, void * listOffset, unsigned int searchPrivate)
2102 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2103 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2107 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace, name, listOffset);
2111 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace, name, listOffset);
2114 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules.first; subModule; subModule = subModule->next)
2116 if(searchPrivate || subModule->importMode == 1)
2118 link = __ecereNameSpace__ecere__com__SearchModule(subModule->module, name, listOffset, 0x0);
2123 return (((void *)0));
2126 extern int isspace(int c);
2128 long long __ecereNameSpace__ecere__com___strtoi64(char * string, char ** endString, int base)
2130 long long value = 0;
2135 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2147 if(ch == (char)0 && string[c + 1] == 'x')
2160 for(; (ch = string[c]); c++)
2164 else if(ch >= '1' && ch <= '9')
2166 else if(ch >= 'a' && ch <= 'z')
2168 else if(ch >= 'A' && ch <= 'Z')
2172 *endString = string + c;
2182 *endString = string + c;
2186 return sign * value;
2189 uint64 __ecereNameSpace__ecere__com___strtoui64(char * string, char ** endString, int base)
2196 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2208 if(ch == (char)0 && string[c + 1] == 'x')
2221 for(; (ch = string[c]); c++)
2225 else if(ch >= '1' && ch <= '9')
2227 else if(ch >= 'a' && ch <= 'z')
2229 else if(ch >= 'A' && ch <= 'Z')
2233 *endString = string + c;
2243 *endString = string + c;
2247 return sign * value;
2250 extern char * strcat(char * , const char * );
2252 extern int strlen(const char * );
2254 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
2256 void * __ecereTemp1;
2260 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2262 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2265 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2269 char noTemplateName[1024];
2270 char * templateParams = strchr(name, '<');
2274 strncpy(noTemplateName, name, templateParams - name);
2275 noTemplateName[templateParams - name] = '\0';
2278 strcpy(noTemplateName, name);
2279 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2281 link = __ecereNameSpace__ecere__com__SearchModule(module, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2284 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
2285 struct __ecereNameSpace__ecere__com__Class * templatedClass = (((void *)0));
2286 char className[1024];
2288 strcpy(className, _class->fullName);
2289 strcat(className, templateParams);
2290 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2293 link = __ecereNameSpace__ecere__com__SearchModule(module, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2296 if(_class && templateParams)
2298 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct1 =
2302 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct0 =
2307 templatedClass = __ecereNameSpace__ecere__com__eSystem_New0(368);
2308 *templatedClass = *_class;
2309 templatedClass->templateClass = _class;
2310 templatedClass->fullName = __ecereNameSpace__ecere__sys__CopyString(className);
2311 templatedClass->name = __ecereNameSpace__ecere__sys__CopyString(templatedClass->fullName + strlen(_class->fullName) - strlen(_class->name));
2312 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*templatedClass->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = templatedClass->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = templatedClass, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
2313 templatedClass->templateArgs = (((void *)0));
2314 templatedClass->numParams = 0;
2315 templatedClass->derivatives = __simpleStruct0;
2316 templatedClass->templatized = __simpleStruct1;
2317 __ecereNameSpace__ecere__com__ComputeClassParameters(templatedClass, templateParams, module);
2318 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templatized, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(12), ((struct __ecereNameSpace__ecere__sys__OldLink *)__ecereTemp1)->data = templatedClass, ((struct __ecereNameSpace__ecere__sys__OldLink *)__ecereTemp1)));
2320 return templatedClass;
2324 return (((void *)0));
2327 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg)
2332 arg->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(arg->dataTypeString);
2337 arg->memberString = __ecereNameSpace__ecere__sys__CopyString(arg->memberString);
2342 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
2344 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
2346 extern double strtod(char * , char * * );
2348 extern int sprintf(char * , char * , ...);
2350 extern char * strstr(char * , const char * );
2352 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);
2354 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2356 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2358 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule)
2361 char * nextParamStart = templateParams ? (templateParams + 1) : (((void *)0));
2362 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam = (((void *)0));
2363 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0)), * sClass;
2366 struct __ecereNameSpace__ecere__com__Class * _class = templatedClass->templateClass ? templatedClass->templateClass : templatedClass;
2368 for(sClass = _class; sClass; sClass = sClass->base)
2370 if(sClass->templateClass)
2371 sClass = sClass->templateClass;
2372 numParams += sClass->templateParams.count;
2374 if(templatedClass->templateArgs)
2375 __ecereNameSpace__ecere__com__FreeTemplateArgs(templatedClass);
2376 (__ecereNameSpace__ecere__com__eSystem_Delete(templatedClass->templateArgs), templatedClass->templateArgs = 0);
2377 templatedClass->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
2378 templatedClass->numParams = numParams;
2379 if(_class != templatedClass)
2382 if(templatedClass->base && templatedClass->base->templateArgs && _class == templatedClass)
2384 struct __ecereNameSpace__ecere__com__Class * sClass;
2386 memcpy(templatedClass->templateArgs, templatedClass->base->templateArgs, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams - templatedClass->templateParams.count));
2387 for(sClass = templatedClass->base; sClass; sClass = sClass->base)
2389 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2390 struct __ecereNameSpace__ecere__com__Class * prevClass;
2393 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
2395 if(prevClass->templateClass)
2396 prevClass = prevClass->templateClass;
2397 id += prevClass->templateParams.count;
2399 if(sClass->templateClass)
2400 sClass = sClass->templateClass;
2401 for(param = sClass->templateParams.first; param; param = param->next)
2402 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[id++]);
2405 while(nextParamStart)
2407 char * paramStart = nextParamStart;
2411 while(*paramStart == ' ')
2413 paramEnd = paramStart;
2414 while((ch = *paramEnd, ch && (level > 0 || (ch != '>' && ch != ','))))
2422 nextParamStart = (ch == ',') ? (paramEnd + 1) : (((void *)0));
2423 while(*paramEnd == ' ')
2425 if(paramEnd > paramStart)
2427 char * ptr, * equal = (((void *)0));
2429 for(ptr = paramStart; ptr <= paramEnd; ptr++)
2439 char * end = equal - 1;
2444 strncpy(ident, paramStart, end + 1 - paramStart);
2445 ident[end + 1 - paramStart] = (char)0;
2446 for(sClass = _class; sClass; sClass = sClass->base)
2448 if(sClass->templateClass)
2449 sClass = sClass->templateClass;
2450 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
2452 if(!strcmp(curParam->name, ident))
2457 struct __ecereNameSpace__ecere__com__Class * nextClass;
2458 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prevParam;
2461 for(prevParam = curParam->prev; prevParam; prevParam = prevParam->prev)
2463 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2465 if(nextClass->templateClass)
2466 nextClass = nextClass->templateClass;
2467 curParamID += nextClass->templateParams.count;
2478 curParam = curParam->next;
2483 for(sClass = lastClass ? lastClass->base : _class; sClass; sClass = sClass->base)
2485 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2488 if(sClass->templateClass)
2489 sClass = sClass->templateClass;
2490 for(param = sClass->templateParams.first; param; param = param->next, curParamID++)
2497 struct __ecereNameSpace__ecere__com__Class * nextClass;
2499 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2501 if(nextClass->templateClass)
2502 nextClass = nextClass->templateClass;
2503 curParamID += nextClass->templateParams.count;
2513 struct __ecereNameSpace__ecere__com__ClassTemplateArgument argument =
2522 while(*equal == ' ')
2524 memcpy(value, equal, paramEnd - equal);
2525 value[paramEnd - equal] = (char)0;
2529 memcpy(value, paramStart, paramEnd - paramStart);
2530 value[paramEnd - paramStart] = (char)0;
2532 __ecereNameSpace__ecere__sys__TrimRSpaces(value, value);
2533 switch(curParam->type)
2536 argument.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value);
2537 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, value);
2538 if(!argument.dataTypeClass)
2539 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->application, value);
2540 if(!argument.dataTypeClass)
2541 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, value);
2545 struct __ecereNameSpace__ecere__com__Class * expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, curParam->dataTypeString);
2548 expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->application, curParam->dataTypeString);
2551 expClass->_vTbl[__ecereVMethodID_class_OnGetDataFromString](expClass, &argument.expression, value);
2553 else if(value[0] == '\"')
2555 char * endQuote = value + strlen(value) - 1;
2557 if(*endQuote != '\"')
2560 argument.expression.p = __ecereNameSpace__ecere__sys__CopyString(value + 1);
2562 else if(value[0] == '\'')
2565 unsigned int ch = __ecereNameSpace__ecere__sys__UTF8GetChar(value + 1, &nb);
2567 argument.expression.ui = ch;
2569 else if(!strcmp(curParam->dataTypeString, "uint"))
2571 argument.expression.ui = strtoul(value, (((void *)0)), 0);
2573 else if(!strcmp(curParam->dataTypeString, "char"))
2575 argument.expression.c = (char)strtol(value, (((void *)0)), 0);
2577 else if(!strcmp(curParam->dataTypeString, "byte"))
2579 argument.expression.uc = (unsigned char)strtoul(value, (((void *)0)), 0);
2581 else if(!strcmp(curParam->dataTypeString, "short"))
2583 argument.expression.s = (short)strtol(value, (((void *)0)), 0);
2585 else if(!strcmp(curParam->dataTypeString, "uint16"))
2587 argument.expression.us = (unsigned short)strtoul(value, (((void *)0)), 0);
2589 else if(!strcmp(curParam->dataTypeString, "int64"))
2591 argument.expression.i64 = __ecereNameSpace__ecere__com___strtoi64(value, (((void *)0)), 0);
2593 else if(!strcmp(curParam->dataTypeString, "uint64"))
2595 argument.expression.ui64 = __ecereNameSpace__ecere__com___strtoui64(value, (((void *)0)), 0);
2597 else if(!strcmp(curParam->dataTypeString, "float"))
2599 argument.expression.f = (float)strtod(value, (((void *)0)));
2601 else if(!strcmp(curParam->dataTypeString, "double"))
2603 argument.expression.d = strtod(value, (((void *)0)));
2607 argument.expression.i = strtol(value, (((void *)0)), 0);
2612 argument.memberString = __ecereNameSpace__ecere__sys__CopyString(value);
2615 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, curParam, curParamID);
2616 templatedClass->templateArgs[curParamID] = argument;
2620 if(templatedClass == _class)
2622 struct __ecereNameSpace__ecere__com__Class * sClass = _class;
2624 struct __ecereNameSpace__ecere__com__Class * nextClass;
2625 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2627 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2629 if(nextClass->templateClass)
2630 nextClass = nextClass->templateClass;
2631 curParamID += nextClass->templateParams.count;
2633 for(param = sClass->templateParams.first; param; param = param->next)
2635 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2637 templatedClass->templateArgs[curParamID] = param->defaultArg;
2638 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2639 if(param->type == 0 && param->defaultArg.dataTypeString)
2641 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2642 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2643 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, param->defaultArg.dataTypeString);
2644 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2645 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2651 if(templatedClass->base && templatedClass->base->templateArgs && numParams - _class->templateParams.count)
2653 int c = numParams - _class->templateParams.count - 1;
2655 for(sClass = _class->base; sClass; sClass = sClass->base)
2657 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2659 if(sClass->templateClass)
2660 sClass = sClass->templateClass;
2661 for(param = sClass->templateParams.last; param; param = param->prev)
2663 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2664 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * baseArg = &templatedClass->base->templateArgs[c];
2666 if(!(*arg).dataTypeString)
2668 *arg = templatedClass->base->templateArgs[c];
2669 __ecereNameSpace__ecere__com__CopyTemplateArg(param, arg);
2670 if(param->type == 0)
2672 if((*arg).dataTypeClass && strchr((*arg).dataTypeString, '<') && (*arg).dataTypeClass->templateArgs)
2674 struct __ecereNameSpace__ecere__com__Class * expClass = (*arg).dataTypeClass;
2675 struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0));
2678 char templateString[1024];
2680 sprintf(templateString, "%s<", expClass->templateClass->fullName);
2681 for(cClass = expClass; cClass; cClass = cClass->base)
2684 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2686 for(param = cClass->templateParams.first; param; param = param->next)
2689 struct __ecereNameSpace__ecere__com__Class * sClass;
2690 struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg;
2692 for(sClass = expClass->base; sClass; sClass = sClass->base)
2693 id += sClass->templateParams.count;
2694 arg = expClass->templateArgs[id];
2696 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2697 int p = numParams - _class->templateParams.count;
2699 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2701 if(cParam->type == 0 && arg.dataTypeString && !strcmp(cParam->name, arg.dataTypeString))
2703 arg.dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2704 arg.dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2721 strcat(argument, arg.member->name);
2726 if(arg.dataTypeString)
2727 strcat(argument, arg.dataTypeString);
2734 strcat(templateString, ", ");
2735 if(lastParam != p - 1)
2737 strcat(templateString, param->name);
2738 strcat(templateString, " = ");
2740 strcat(templateString, argument);
2749 int len = strlen(templateString);
2751 if(templateString[len - 1] == '>')
2752 templateString[len++] = ' ';
2753 templateString[len++] = '>';
2754 templateString[len++] = '\0';
2756 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2757 (*arg).dataTypeString = __ecereNameSpace__ecere__sys__CopyString(templateString);
2758 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, templateString);
2759 if(!(*arg).dataTypeClass)
2760 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, templateString);
2764 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2765 int p = numParams - _class->templateParams.count;
2767 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2769 if(cParam->type == 0 && (*baseArg).dataTypeString && !strcmp(cParam->name, (*baseArg).dataTypeString))
2771 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2772 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2773 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2774 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2786 struct __ecereNameSpace__ecere__com__Class * sClass;
2788 for(sClass = _class; sClass; sClass = sClass->base)
2791 struct __ecereNameSpace__ecere__com__Class * nextClass;
2792 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2794 if(sClass->templateClass)
2795 sClass = sClass->templateClass;
2796 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2798 if(nextClass->templateClass)
2799 nextClass = nextClass->templateClass;
2800 curParamID += nextClass->templateParams.count;
2802 for(param = sClass->templateParams.first; param; param = param->next)
2804 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2806 templatedClass->templateArgs[curParamID] = param->defaultArg;
2807 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2808 if(param->type == 0 && param->defaultArg.dataTypeString)
2810 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2811 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2812 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, param->defaultArg.dataTypeString);
2813 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2814 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2822 int c = numParams - 1;
2824 for(sClass = _class; sClass; sClass = sClass->base)
2826 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2828 if(sClass->templateClass)
2829 sClass = sClass->templateClass;
2830 for(param = sClass->templateParams.last; param; param = param->prev)
2832 if(param->type == 0)
2834 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2835 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2836 struct __ecereNameSpace__ecere__com__Class * dClass;
2837 int p = numParams - 1;
2839 for(dClass = _class; dClass; dClass = dClass->base)
2841 if(dClass->templateClass)
2842 dClass = dClass->templateClass;
2843 for(cParam = dClass->templateParams.last; cParam; cParam = cParam->prev, p--)
2845 if(cParam->type == 0 && (*arg).dataTypeString && !strcmp(cParam->name, (*arg).dataTypeString))
2847 if(templatedClass->templateArgs[p].dataTypeString && c != p)
2849 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2850 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2851 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2852 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2863 struct __ecereNameSpace__ecere__com__Class * tClass;
2864 int c = numParams - 1;
2866 for(tClass = _class; tClass; tClass = tClass->base)
2868 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2870 if(tClass->templateClass)
2871 tClass = tClass->templateClass;
2872 for(param = tClass->templateParams.last; param; param = param->prev)
2874 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2876 if(param->type == 1 && (*arg).memberString)
2878 struct __ecereNameSpace__ecere__com__Class * memberClass = templatedClass;
2879 char * memberString = (*arg).memberString;
2880 char * colon = strstr(memberString, "::");
2881 char * memberName = memberString;
2884 memberName = colon + 2;
2887 memberString = param->defaultArg.memberString;
2888 colon = memberString ? strstr(memberString, "::") : (((void *)0));
2892 char className[1024];
2893 struct __ecereNameSpace__ecere__com__Class * sClass;
2895 memcpy(className, memberString, colon - memberString);
2896 className[colon - memberString] = '\0';
2897 for(sClass = _class; sClass; sClass = sClass->base)
2899 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2900 struct __ecereNameSpace__ecere__com__Class * nextClass;
2903 if(sClass->templateClass)
2904 sClass = sClass->templateClass;
2905 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2907 if(nextClass->templateClass)
2908 nextClass = nextClass->templateClass;
2909 id += nextClass->templateParams.count;
2911 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
2913 if(cParam->type == 0 && !strcmp(cParam->name, className) && templatedClass->templateArgs[id].dataTypeString)
2915 strcpy(className, templatedClass->templateArgs[id].dataTypeString);
2920 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, className);
2922 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, className);
2924 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, className);
2928 switch(param->memberType)
2931 (*arg).member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
2934 (*arg).method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
2937 (*arg).prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
2948 unsigned int __ecereNameSpace__ecere__com__DefaultFunction()
2953 unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
2955 if(!_class && !from)
2957 if(_class && from && (_class->templateClass || from->templateClass))
2959 if(__ecereNameSpace__ecere__com__eClass_IsDerived(_class->templateClass ? _class->templateClass : _class, from->templateClass ? from->templateClass : from))
2961 if(!from->templateClass)
2963 else if(!_class->templateClass && _class == from->templateClass)
2967 struct __ecereNameSpace__ecere__com__Class * sClass;
2969 for(sClass = from; sClass; sClass = sClass->base)
2971 if(sClass->templateParams.first)
2973 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2974 struct __ecereNameSpace__ecere__com__Class * nextClass;
2977 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2978 p += nextClass->templateParams.count;
2979 for(param = sClass->templateParams.first; param; param = param->next, p++)
2981 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &_class->templateArgs[p];
2982 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * fArg = &from->templateArgs[p];
2984 if(param->type == 0)
2986 if((*arg).dataTypeString != (*fArg).dataTypeString && (*arg).dataTypeString && (*fArg).dataTypeString && strcmp((*arg).dataTypeString, (*fArg).dataTypeString))
2989 else if(param->type == 1)
2991 if((*arg).member != (*fArg).member)
2994 else if(param->type == 2)
2996 if((*arg).expression.ui64 != (*fArg).expression.ui64)
3010 for(; _class && from; _class = _class->base)
3012 if(_class == from || _class->templateClass == from || (_class->type == 1000 && from->name && !strcmp(_class->name, from->name)))
3019 static void __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(struct __ecereNameSpace__ecere__com__Class * base, char * name, int vid, void * origFunction, char * type)
3021 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3023 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3025 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3026 struct __ecereNameSpace__ecere__com__Method * method, * next;
3027 void * function = origFunction;
3030 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3031 memmove(_class->_vTbl + vid + 1, _class->_vTbl + vid, (_class->vTblSize - vid - 1) * sizeof(void *));
3032 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3035 if(method->function)
3036 function = method->function;
3039 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
3040 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3041 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3045 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3047 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type);
3048 method->_class = base;
3051 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
3053 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
3054 if(method->type == 1)
3057 _class->_vTbl[vid] = function;
3059 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3061 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3063 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3065 template->_vTbl = _class->_vTbl;
3068 if(_class->derivatives.first || _class->templatized.first)
3069 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, vid, function, type);
3072 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3074 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
3076 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3078 template->_vTbl = base->_vTbl;
3079 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(template, name, vid, origFunction, type);
3084 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3088 struct __ecereNameSpace__ecere__com__Class * base;
3090 for(base = _class; base; base = base->base)
3092 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3096 if(method->type == 1)
3098 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3099 void * oldFunction = _class->_vTbl[method->vid];
3101 if(method->vid > _class->vTblSize)
3104 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3105 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3107 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3109 if(derivClass->_vTbl[method->vid] == oldFunction)
3110 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3113 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3115 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3117 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3119 for(deriv = template->derivatives.first; deriv; deriv = deriv->next)
3121 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3123 if(derivClass->_vTbl[method->vid] == oldFunction)
3124 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3135 base = (((void *)0));
3143 struct __ecereNameSpace__ecere__com__Method * method = (method = __ecereNameSpace__ecere__com__eSystem_New0(52), 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);
3145 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3149 return (((void *)0));
3152 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3156 struct __ecereNameSpace__ecere__com__Class * base;
3158 for(base = _class; base; base = base->base)
3160 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3164 if(method->type == 1)
3165 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3167 base = (((void *)0));
3173 struct __ecereNameSpace__ecere__com__Method * method = (method = __ecereNameSpace__ecere__com__eSystem_New0(52), 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);
3175 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3176 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3177 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3178 if(_class->derivatives.first || _class->templatized.first)
3179 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, method->vid, function ? function : (void *)__ecereNameSpace__ecere__com__DefaultFunction, type);
3183 return (((void *)0));
3186 static void __ecereNameSpace__ecere__com__FixDerivativeProperty(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Property * _property)
3188 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3190 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3192 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3193 struct __ecereNameSpace__ecere__com__Property * prop;
3194 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3196 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
3200 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
3202 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
3204 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
3206 if(watcher->_property == prop)
3207 watcher->_property = _property;
3209 _property->selfWatchable = 0x1;
3210 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
3211 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
3212 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
3213 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
3216 for(prop = _class->membersAndProperties.first; prop; prop = prop->next)
3219 _class->startMemberID++;
3220 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3224 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)
3226 void * __ecereTemp1;
3227 struct __ecereNameSpace__ecere__com__Property * _property = (((void *)0));
3231 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, (name ? name : dataType)))
3233 _property = (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(88), ((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));
3235 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, _property);
3237 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->conversions, _property);
3238 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = _property->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = _property, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
3239 if(!_property->conversion)
3241 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3248 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property)
3250 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3251 struct __ecereNameSpace__ecere__sys__NamedLink * value, * next;
3253 for(value = _class->delayedCPValues.first; value; value = next)
3256 if(!strcmp(value->name, _property->name))
3258 _property->Set(_class, (int)value->data);
3259 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->delayedCPValues, value);
3262 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3264 __ecereNameSpace__ecere__com__SetDelayedCPValues(deriv->data, _property);
3268 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt)
3270 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name))
3272 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (_property = __ecereNameSpace__ecere__com__eSystem_New0(40), _property->name = __ecereNameSpace__ecere__sys__CopyString(name), _property->Set = setStmt, _property->Get = getStmt, _property->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataType), _property);
3274 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)_property);
3275 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
3278 return (((void *)0));
3281 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3283 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (((void *)0));
3287 struct __ecereNameSpace__ecere__com__Class * origClass = _class;
3289 for(; _class; _class = _class->base)
3291 _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name);
3295 if(!_property && origClass->type == 4)
3297 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(origClass->module, "enum");
3299 _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(enumClass, name);
3305 int __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3307 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3309 if(_property && _property->Get && _property->Get != (void *)1)
3311 int result = _property->Get(_class);
3318 void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int value)
3320 void * __ecereTemp1;
3321 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3326 _property->Set(_class, value);
3330 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->delayedCPValues, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(16), ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)->name = name, ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)->data = (void *)value, ((struct __ecereNameSpace__ecere__sys__NamedLink *)__ecereTemp1)));
3334 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3338 for(; _class; _class = _class->base)
3340 struct __ecereNameSpace__ecere__com__Method * method;
3342 if(_class->templateClass)
3343 _class = _class->templateClass;
3344 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3345 if(method && (method->memberAccess == 1 || _class->module == module || !method->dataTypeString))
3347 if(!method->dataTypeString)
3349 if(_class->module != module)
3351 if(method->memberAccess == 1)
3352 module = _class->module;
3355 return (((void *)0));
3364 if(_class->inheritanceAccess == 2 && _class->module != module)
3368 return (((void *)0));
3371 static unsigned int __ecereNameSpace__ecere__com__ConstructInstance(void * instance, struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3373 if(_class->templateClass)
3374 _class = _class->templateClass;
3375 if(_class->base && from != _class->base)
3377 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class->base, from))
3380 if(_class->Initialize)
3382 void (* Initialize)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)_class->Initialize;
3384 _class->Initialize = (((void *)0));
3385 Initialize(_class->module);
3387 if(_class->Constructor)
3389 if(!_class->Constructor(instance))
3391 for(; _class; _class = _class->base)
3393 if(_class->templateClass)
3394 _class = _class->templateClass;
3395 if(_class->Destructor)
3396 _class->Destructor(instance);
3401 (_class->templateClass ? _class->templateClass : _class)->count++;
3405 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class)
3407 struct __ecereNameSpace__ecere__com__Instance * instance = (((void *)0));
3411 instance = __ecereNameSpace__ecere__com___calloc(1, _class->structSize);
3412 if(_class->type == 0)
3414 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3415 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3417 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, (((void *)0))))
3419 __ecereNameSpace__ecere__com___free(instance);
3420 instance = (((void *)0));
3426 void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance ** instancePtr, struct __ecereNameSpace__ecere__com__Class * _class)
3428 if(_class && instancePtr && *instancePtr)
3430 unsigned int wasApp = 0x0, wasGuiApp = 0x0;
3431 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eSystem_Renew(*instancePtr, sizeof(unsigned char) * (_class->structSize));
3432 struct __ecereNameSpace__ecere__com__Class * fromClass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3434 *instancePtr = instance;
3435 memset(((unsigned char *)instance) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->structSize, (unsigned char)0, _class->structSize - ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->structSize);
3436 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")))
3438 struct __ecereNameSpace__ecere__com__Instance * module;
3439 struct __ecereNameSpace__ecere__com__Instance * app = (struct __ecereNameSpace__ecere__com__Instance *)instance;
3440 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3441 struct __ecereNameSpace__ecere__com__Class * _class;
3442 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
3444 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
3445 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = app;
3446 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3448 struct __ecereNameSpace__ecere__sys__OldLink * t;
3450 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3451 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3453 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3455 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3458 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3460 struct __ecereNameSpace__ecere__sys__OldLink * t;
3462 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3463 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3465 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3467 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3470 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3471 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3472 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3473 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3474 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3475 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3476 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3477 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3478 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3479 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3480 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3481 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3482 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3484 struct __ecereNameSpace__ecere__sys__OldLink * t;
3486 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3487 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3489 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3491 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3494 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3495 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3496 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3497 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3498 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3499 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3500 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3501 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3502 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->classes.first; _class; _class = _class->next)
3504 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3506 _class->module = (struct __ecereNameSpace__ecere__com__Instance *)app;
3507 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3509 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3511 template->module = _class->module;
3514 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
3516 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes.first; _class; _class = _class->next)
3518 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3520 _class->module = module;
3521 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3523 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3525 template->module = _class->module;
3529 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->application = app;
3532 struct __ecereNameSpace__ecere__com__Class * base;
3534 for(base = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; base && base->type == 0 && base->count; base = base->base)
3535 (base->templateClass ? base->templateClass : base)->count--;
3537 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3538 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3539 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, fromClass))
3541 __ecereNameSpace__ecere__com___free(instance);
3542 *instancePtr = (((void *)0));
3547 void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance)
3551 struct __ecereNameSpace__ecere__com__Class * _class, * base;
3552 unsigned int ownVtbl;
3554 ownVtbl = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl != ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl;
3555 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3557 if(_class->templateClass)
3558 _class = _class->templateClass;
3559 if(_class->destructionWatchOffset)
3561 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
3562 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
3564 for(watcher = (*watchers).first; watcher; watcher = next)
3566 next = watcher->next;
3567 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*watchers), watcher);
3568 watcher->callback(watcher->object, instance);
3569 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
3572 base = _class->base;
3573 if(base && base->type == 1000)
3574 base = (((void *)0));
3575 if(_class->Destructor)
3576 _class->Destructor(instance);
3578 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3580 if(_class->templateClass)
3581 _class = _class->templateClass;
3582 base = _class->base;
3583 (_class->templateClass ? _class->templateClass : _class)->count--;
3584 if(_class->type == 0 && !_class->count && !_class->module)
3586 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
3591 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl), ((struct __ecereNameSpace__ecere__com__Instance * )(char * )instance)->_vTbl = 0);
3593 __ecereNameSpace__ecere__com___free(instance);
3597 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3601 for(; _class; _class = _class->base)
3603 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3605 if(_class->templateClass)
3606 _class = _class->templateClass;
3607 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name);
3610 struct __ecereNameSpace__ecere__com__Property * _property = (struct __ecereNameSpace__ecere__com__Property *)link->data;
3612 if(_property->memberAccess == 1 || _class->module == module || !_property->dataTypeString)
3614 if(!_property->dataTypeString)
3616 if(_class->module != module)
3618 if(_property->memberAccess == 1)
3619 module = _class->module;
3622 return (((void *)0));
3632 if(_class->inheritanceAccess == 2 && _class->module != module)
3636 return (((void *)0));
3639 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)
3641 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3642 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3644 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(alist, name);
3647 dataMember = link->data;
3648 if(dataMember->type == 0 && (dataMember->memberAccess == 1 || searchPrivate || !dataMember->dataTypeString))
3651 *offset += dataMember->offset;
3653 *id = dataMember->id;
3656 return (((void *)0));
3658 for(dataMember = list->first; dataMember; dataMember = dataMember->next)
3660 if(!dataMember->isProperty && (dataMember->memberAccess == 1 || searchPrivate) && !dataMember->name && (dataMember->type == 1 || dataMember->type == 2))
3662 struct __ecereNameSpace__ecere__com__DataMember * childMember;
3664 if(subMemberStackPos)
3665 subMemberStack[(*subMemberStackPos)++] = dataMember;
3666 childMember = __ecereNameSpace__ecere__com__FindDataMember(&dataMember->members, &dataMember->membersAlpha, name, offset, id, searchPrivate, subMemberStack, subMemberStackPos);
3670 *offset += dataMember->offset;
3672 *id += dataMember->id;
3675 if(subMemberStackPos)
3676 (*subMemberStackPos)--;
3679 return (((void *)0));
3682 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)
3684 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3686 if(subMemberStackPos)
3687 *subMemberStackPos = 0;
3690 for(; _class; _class = _class->base)
3692 if(_class->templateClass)
3693 _class = _class->templateClass;
3694 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3697 if(!dataMember->dataTypeString)
3699 if(_class->module != module)
3701 if(dataMember->memberAccess == 1)
3702 module = _class->module;
3705 return (((void *)0));
3708 dataMember = (((void *)0));
3712 dataMember->_class = _class->templateClass ? _class->templateClass : _class;
3716 if(_class->inheritanceAccess == 2 && _class->module != module)
3723 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)
3725 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3727 if(subMemberStackPos)
3728 *subMemberStackPos = 0;
3733 for(; _class; _class = _class->base)
3735 if(_class->templateClass)
3736 _class = _class->templateClass;
3737 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, offset, (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3740 if(!dataMember->dataTypeString)
3742 if(_class->module != module)
3744 if(dataMember->memberAccess == 1)
3745 module = _class->module;
3748 return (((void *)0));
3751 dataMember = (((void *)0));
3755 dataMember->_class = _class;
3759 if(_class->inheritanceAccess == 2 && _class->module != module)
3766 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)
3768 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3770 if(subMemberStackPos)
3771 *subMemberStackPos = 0;
3774 for(; _class; _class = _class->base)
3776 if(_class->templateClass)
3777 _class = _class->templateClass;
3778 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), id, _class->module == module, subMemberStack, subMemberStackPos);
3781 if(!dataMember->dataTypeString)
3783 if(_class->module != module)
3785 if(dataMember->memberAccess == 1)
3786 module = _class->module;
3789 return (((void *)0));
3792 dataMember = (((void *)0));
3796 dataMember->_class = _class;
3800 if(_class->inheritanceAccess == 2 && _class->module != module)
3807 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)
3811 *curMember = (*curMember)->next;
3812 if(subMemberStackPos && *subMemberStackPos > 0 && subMemberStack[*subMemberStackPos - 1]->type == 1)
3814 *curMember = subMemberStack[--(*subMemberStackPos)];
3815 *curMember = (*curMember)->next;
3817 if(subMemberStackPos && *subMemberStackPos > 0)
3819 while(*curMember && ((*curMember)->memberAccess == 2))
3820 *curMember = (*curMember)->next;
3823 while(*curMember && (*curMember)->name)
3825 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3828 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3829 if(dataMember && dataMember->memberAccess != 2)
3831 *curMember = dataMember;
3835 *curMember = (*curMember)->next;
3837 if(subMemberStackPos)
3839 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3841 subMemberStack[(*subMemberStackPos)++] = *curMember;
3842 *curMember = (*curMember)->members.first;
3843 while(*curMember && ((*curMember)->memberAccess == 2))
3844 *curMember = (*curMember)->next;
3852 if(subMemberStackPos && *subMemberStackPos)
3854 *curMember = subMemberStack[--(*subMemberStackPos)];
3855 *curMember = (*curMember)->next;
3859 struct __ecereNameSpace__ecere__com__Class * lastCurClass = *curClass;
3861 if(*curClass == _class)
3863 for(*curClass = _class; (*curClass)->base != lastCurClass && (*curClass)->base->type != 1000 && (*curClass)->inheritanceAccess != 2; *curClass = (*curClass)->base)
3865 *curMember = (*curClass)->membersAndProperties.first;
3867 if(subMemberStackPos && *subMemberStackPos > 0)
3869 while(*curMember && ((*curMember)->memberAccess == 2))
3870 *curMember = (*curMember)->next;
3873 while(*curMember && (*curMember)->name)
3875 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3878 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3879 if(dataMember && dataMember->memberAccess != 2)
3881 *curMember = dataMember;
3885 *curMember = (*curMember)->next;
3887 if(subMemberStackPos)
3889 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3891 subMemberStack[(*subMemberStackPos)++] = *curMember;
3892 *curMember = (*curMember)->members.first;
3893 while(*curMember && (*curMember)->memberAccess == 2)
3894 *curMember = (*curMember)->next;
3901 void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function)
3903 if(instance && name)
3905 struct __ecereNameSpace__ecere__com__Class * _class;
3907 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
3909 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3911 if(method && method->type == 1)
3913 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl == ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl)
3915 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(void *) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
3916 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);
3918 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3924 unsigned int __ecereNameSpace__ecere__com__eInstance_IsDerived(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Class * from)
3928 struct __ecereNameSpace__ecere__com__Class * _class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3930 for(; _class; _class = _class->base)
3939 void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance)
3942 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount++;
3945 void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance)
3949 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount--;
3950 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount <= 0)
3952 __ecereNameSpace__ecere__com__eInstance_Delete(instance);
3957 static void __ecereNameSpace__ecere__com__FixOffsets(struct __ecereNameSpace__ecere__com__Class * _class)
3959 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3961 _class->structSize += _class->base->structSize - _class->offset;
3962 _class->offset = _class->base->structSize;
3963 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3964 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
3967 void __ecereNameSpace__ecere__com__eClass_Resize(struct __ecereNameSpace__ecere__com__Class * _class, int newSize)
3969 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3971 _class->structSize = newSize;
3972 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3973 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
3976 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)
3978 void * __ecereTemp1;
3982 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
3984 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3988 int __simpleStruct0;
3990 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
3991 if(_class->memberOffset % alignment)
3992 _class->memberOffset += alignment - (_class->memberOffset % alignment);
3994 dataMember = (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(96), ((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));
3995 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
3996 _class->memberOffset += size;
3997 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = dataMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = dataMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4001 return (((void *)0));
4004 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)
4006 void * __ecereTemp1;
4008 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&member->membersAlpha, name))
4010 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4014 int __simpleStruct0;
4016 member->structAlignment = (__simpleStruct0 = member->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4017 if(member->memberOffset % alignment)
4018 member->memberOffset += alignment - (member->memberOffset % alignment);
4020 dataMember = (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(96), ((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));
4021 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&member->members, dataMember);
4022 if(member->type == 1)
4024 if(size > member->memberOffset)
4025 member->memberOffset = size;
4028 member->memberOffset += size;
4029 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&member->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = dataMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = dataMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4032 return (((void *)0));
4035 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode)
4037 void * __ecereTemp1;
4039 return (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(96), ((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));
4042 static void __ecereNameSpace__ecere__com__SetMemberClass(struct __ecereNameSpace__ecere__com__DataMember * member, struct __ecereNameSpace__ecere__com__Class * _class)
4044 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4046 member->_class = _class;
4047 for(dataMember = member->members.first; dataMember; dataMember = dataMember->next)
4048 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4051 unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4053 void * __ecereTemp1;
4054 int __simpleStruct0, __simpleStruct1;
4056 if(dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&addTo->membersAlpha, dataMember->name))
4058 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&addTo->members, dataMember);
4059 if(dataMember->name)
4060 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&addTo->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = dataMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = dataMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4061 dataMember->_class = addTo->_class;
4062 dataMember->id = addTo->memberID;
4063 if(dataMember->type == 1)
4064 addTo->memberID += 1;
4066 addTo->memberID += dataMember->memberID;
4067 addTo->structAlignment = (__simpleStruct0 = addTo->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4068 dataMember->offset = (addTo->type == 1) ? 0 : addTo->memberOffset;
4069 if(addTo->type == 1)
4071 if(dataMember->memberOffset > addTo->memberOffset)
4072 addTo->memberOffset = dataMember->memberOffset;
4075 addTo->memberOffset += dataMember->memberOffset;
4079 unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4081 void * __ecereTemp1;
4082 int __simpleStruct0, __simpleStruct1;
4084 if(!_class || _class->comRedefinition || (dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, dataMember->name)))
4086 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4087 if(dataMember->name)
4088 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = dataMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = dataMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4089 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4090 dataMember->id = _class->memberID;
4091 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4092 if(dataMember->type == 1)
4093 _class->memberID += 1;
4095 _class->memberID += dataMember->memberID;
4096 dataMember->offset = _class->memberOffset;
4097 _class->memberOffset += dataMember->memberOffset;
4101 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)
4103 void * __ecereTemp1;
4105 if(_class && name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4109 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (bitMember = __ecereNameSpace__ecere__com__eSystem_New0(64), 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);
4111 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, bitMember);
4114 bitMember->pos = (bitPos == -1) ? _class->memberOffset : bitPos;
4115 bitMember->size = bitSize;
4116 _class->memberOffset = bitMember->pos + bitMember->size;
4117 for(c = 0; c < bitSize; c++)
4123 bitMember->mask = mask << bitMember->pos;
4125 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = bitMember->name, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = bitMember, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4128 return (((void *)0));
4131 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__Module_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int ensureCOM)
4133 void * __ecereTemp1;
4134 unsigned int (stdcall * Load)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4135 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4136 struct __ecereNameSpace__ecere__com__Instance * module;
4138 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
4140 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4143 if(ensureCOM && (!strcmp(name, "ecereCOM") || !strcmp(name, "ecere")))
4145 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
4147 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecere") || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM"))
4153 void * library = (((void *)0));
4155 if(ensureCOM && !strcmp(name, "ecereCOM"))
4157 Load = __ecereDll_Load_ecere;
4158 Unload = __ecereDll_Unload_ecere;
4162 library = Instance_Module_Load(name, &Load, &Unload);
4166 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4167 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4168 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library = library;
4169 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4170 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = Unload;
4171 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->origImportType = 0;
4174 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4175 module = (((void *)0));
4178 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules, module);
4180 if(ensureCOM && !strcmp(name, "ecere") && module)
4182 name = !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM") ? "ecere" : "ecereCOM";
4183 if((!Load && !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM")) || (Load && (!__thisModule || !((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->name || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->name, "ecereCOM")) && Load != __ecereDll_Load_ecere))
4185 struct __ecereNameSpace__ecere__com__Instance * module;
4187 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
4189 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4194 Load = __ecereDll_Load_ecere;
4195 Unload = __ecereDll_Unload_ecere;
4196 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4197 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4198 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library = (((void *)0));
4199 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4200 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = Unload;
4203 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4204 module = (((void *)0));
4206 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules, module);
4212 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->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)));
4214 module->_refCount++;
4222 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->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)));
4224 module->_refCount++;
4229 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4231 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x1);
4234 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4236 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x0);
4239 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))
4241 void * __ecereTemp1;
4242 struct __ecereNameSpace__ecere__com__Instance * module;
4244 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
4246 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4253 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4254 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4255 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4256 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->origImportType = 1;
4257 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = (void *)Unload;
4260 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4261 module = (((void *)0));
4264 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules, module);
4270 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->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)));
4272 module->_refCount++;
4277 void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module)
4279 struct __ecereNameSpace__ecere__sys__OldLink * m;
4281 for(m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->modules.first; m; m = m->next)
4283 if(m->data == module)
4288 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->modules, m);
4289 (__ecereNameSpace__ecere__com__eInstance_DecRef(module), module = 0);
4293 void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value)
4295 void * __ecereTemp1;
4297 if(_class && _class->type == 4)
4299 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4300 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4302 for(item = data->values.first; item; item = item->next)
4303 if(!strcmp(item->name, string))
4307 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(16), ((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)));
4308 if(value > data->largest)
4309 data->largest = value;
4314 int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
4316 void * __ecereTemp1;
4318 if(_class && _class->type == 4)
4320 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4321 int value = data->largest + 1;
4322 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4324 for(item = data->values.first; item; item = item->next)
4325 if(!strcmp(item->name, string))
4329 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(16), ((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)));
4330 if(value > data->largest)
4331 data->largest = value;
4338 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace)
4340 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
4342 (__ecereNameSpace__ecere__com__eSystem_Delete(parentNameSpace->name), parentNameSpace->name = 0);
4343 while((nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentNameSpace->nameSpaces)))
4345 __ecereNameSpace__ecere__com__NameSpace_Free(nameSpace);
4346 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentNameSpace->nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace);
4350 static void __ecereNameSpace__ecere__com__Application_Destructor(struct __ecereNameSpace__ecere__com__Instance * app)
4352 if(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->parsedCommand)
4354 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->argv), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + 300)))->argv = 0);
4355 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->parsedCommand), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + 300)))->parsedCommand = 0);
4359 static unsigned int __ecereNameSpace__ecere__com__Module_Constructor(struct __ecereNameSpace__ecere__com__Instance * module)
4361 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4362 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4363 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4364 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4365 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4366 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4367 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4368 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4372 static void __ecereNameSpace__ecere__com__Module_Destructor(struct __ecereNameSpace__ecere__com__Instance * module)
4374 struct __ecereNameSpace__ecere__com__Class * _class;
4375 struct __ecereNameSpace__ecere__com__DefinedExpression * def;
4376 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
4377 struct __ecereNameSpace__ecere__com__Instance * m;
4378 struct __ecereNameSpace__ecere__com__SubModule * handle;
4380 for(m = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->allModules.first; m; m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->next)
4382 struct __ecereNameSpace__ecere__com__SubModule * next;
4384 for(handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->modules.first; handle; handle = next)
4386 next = handle->next;
4387 if(handle->module == module)
4388 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->modules, handle);
4391 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload)
4393 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->origImportType == 1)
4395 unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload;
4401 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload;
4407 struct __ecereNameSpace__ecere__com__Instance * ourWorld = __ecereClass___ecereNameSpace__ecere__com__Class->module;
4408 void * ourHandle = (((void *)0));
4410 while((handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules.last))
4412 struct __ecereNameSpace__ecere__com__Instance * depModule = handle->module;
4414 if(depModule == ourWorld)
4416 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules, handle);
4421 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules, handle);
4422 (__ecereNameSpace__ecere__com__eInstance_DecRef(depModule), depModule = 0);
4427 (__ecereNameSpace__ecere__com__eSystem_Delete(ourHandle), ourHandle = 0);
4428 (__ecereNameSpace__ecere__com__eInstance_DecRef(ourWorld), ourWorld = 0);
4431 for(; (_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes.first); )
4433 if(_class->nameSpace)
4435 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
4436 struct __ecereNameSpace__ecere__sys__OldLink * t;
4438 for(t = _class->templatized.first; t; t = t->next)
4440 struct __ecereNameSpace__ecere__com__Class * template = t->data;
4441 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4443 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
4444 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
4445 template->nameSpace = (((void *)0));
4447 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
4448 _class->nameSpace = (((void *)0));
4450 _class->module = (((void *)0));
4451 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes, _class);
4452 if(!_class->count || _class->type != 0)
4453 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
4458 for(; (def = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines.first); )
4462 struct __ecereNameSpace__ecere__com__BTNamedLink * defLink;
4464 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)))
4465 if(defLink->data == def)
4467 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*def->nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)defLink);
4471 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
4472 (__ecereNameSpace__ecere__com__eSystem_Delete(def->value), def->value = 0);
4473 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines, def);
4475 for(; (function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions.first); )
4477 if(function->nameSpace)
4479 struct __ecereNameSpace__ecere__com__BTNamedLink * functionLink;
4481 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)))
4482 if(functionLink->data == function)
4484 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*function->nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)functionLink);
4488 (__ecereNameSpace__ecere__com__eSystem_Delete(function->name), function->name = 0);
4489 (__ecereNameSpace__ecere__com__eSystem_Delete(function->dataTypeString), function->dataTypeString = 0);
4490 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions, function);
4492 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name), ((struct __ecereNameSpace__ecere__com__Module * )(((char * )module + 12)))->name = 0);
4493 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace);
4494 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace);
4495 if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application)
4496 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->allModules, module);
4498 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace);
4499 Instance_Module_Free(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library);
4502 static int __ecereNameSpace__ecere__com__GetEnumSize(struct __ecereNameSpace__ecere__com__Class * _class)
4504 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4506 return data->largest + 1;
4509 char * strlwr(char * string)
4513 for(c = 0; string[c]; c++)
4514 if(string[c] >= 'A' && string[c] <= 'Z')
4515 string[c] += 'a' - 'A';
4519 char * strupr(char * string)
4523 for(c = 0; string[c]; c++)
4524 if(string[c] >= 'a' && string[c] <= 'z')
4525 string[c] -= 'a' - 'A';
4529 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4531 void * __ecereTemp1;
4532 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4535 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
4537 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace;
4540 for(c = 0; name[c]; c++)
4542 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4544 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4545 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4547 strncpy(spaceName, name + start, c - start);
4548 spaceName[c - start] = '\0';
4549 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4552 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4553 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4554 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4555 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4556 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4557 (*newSpace).name = spaceName;
4558 (*newSpace).parent = nameSpace;
4559 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4562 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4563 nameSpace = newSpace;
4572 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).defines, name + start))
4574 struct __ecereNameSpace__ecere__com__DefinedExpression * def = (def = __ecereNameSpace__ecere__com__eSystem_New0(20), def->name = __ecereNameSpace__ecere__sys__CopyString(name), def->nameSpace = nameSpace, def->value = __ecereNameSpace__ecere__sys__CopyString(value), def);
4576 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = def->name + start, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = def, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4577 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines, def);
4580 return (((void *)0));
4583 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4585 void * __ecereTemp1;
4586 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4589 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
4591 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace;
4594 for(c = 0; name[c]; c++)
4596 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4598 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4599 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4601 strncpy(spaceName, name + start, c - start);
4602 spaceName[c - start] = '\0';
4603 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4606 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4607 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4608 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4609 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4610 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4611 (*newSpace).name = spaceName;
4612 (*newSpace).parent = nameSpace;
4613 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4616 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4617 nameSpace = newSpace;
4626 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).functions, name + start))
4628 struct __ecereNameSpace__ecere__com__GlobalFunction * function = (function = __ecereNameSpace__ecere__com__eSystem_New0(36), function->name = __ecereNameSpace__ecere__sys__CopyString(name), function->nameSpace = nameSpace, function->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), function->function = func, function->module = module, function);
4630 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)(__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(24), ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->name = function->name + start, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)->data = function, ((struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereTemp1)));
4631 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions, function);
4634 return (((void *)0));
4637 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4641 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4643 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines);
4646 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines, 0x1);
4650 return (((void *)0));
4653 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4657 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4659 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions);
4662 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions, 0x1);
4666 return (((void *)0));
4669 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size)
4671 return __ecereNameSpace__ecere__com___realloc(memory, size);
4674 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size)
4676 return __ecereNameSpace__ecere__com___crealloc(memory, size);
4679 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size)
4681 return __ecereNameSpace__ecere__com___malloc(size);
4684 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size)
4686 return __ecereNameSpace__ecere__com___calloc(1, size);
4689 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory)
4692 __ecereNameSpace__ecere__com___free(memory);
4695 void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4697 if(instance && _property && _property->selfWatchable)
4699 struct __ecereNameSpace__ecere__com__Class * _class;
4701 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4703 struct __ecereNameSpace__ecere__com__SelfWatcher * selfWatcher, * next;
4705 for(selfWatcher = _class->selfWatchers.first; selfWatcher; selfWatcher = next)
4707 next = selfWatcher->next;
4708 if(selfWatcher->_property == _property)
4709 selfWatcher->callback(instance);
4715 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4717 if(instance && _property && _property->isWatchable)
4719 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4720 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
4722 for(watcher = (*watchers).first; watcher; watcher = next)
4724 next = watcher->next;
4725 watcher->callback(watcher->object, instance);
4730 void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property)
4732 if(!_property->isWatchable)
4734 struct __ecereNameSpace__ecere__com__Class * _class = _property->_class;
4736 if(!_class->computeSize)
4738 _property->watcherOffset = _class->structSize;
4739 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4740 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4742 _property->isWatchable = 0x1;
4746 void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(struct __ecereNameSpace__ecere__com__Class * _class)
4748 if(!_class->destructionWatchOffset)
4750 _class->destructionWatchOffset = _class->structSize;
4751 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4752 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4756 void __ecereNameSpace__ecere__com__eProperty_SelfWatch(struct __ecereNameSpace__ecere__com__Class * _class, char * name, void (* callback)(void *))
4758 void * __ecereTemp1;
4762 struct __ecereNameSpace__ecere__com__Property * _property = __ecereNameSpace__ecere__com__eClass_FindProperty(_class, name, _class->module);
4765 _property = __ecereNameSpace__ecere__com__eClass_AddProperty(_class, name, (((void *)0)), (((void *)0)), (((void *)0)), 4);
4766 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->selfWatchers, (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(16), ((struct __ecereNameSpace__ecere__com__SelfWatcher *)__ecereTemp1)->_property = _property, ((struct __ecereNameSpace__ecere__com__SelfWatcher *)__ecereTemp1)->callback = callback, ((struct __ecereNameSpace__ecere__com__SelfWatcher *)__ecereTemp1)));
4767 _property->selfWatchable = 0x1;
4771 void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void *, void *))
4773 void * __ecereTemp1;
4775 if(_property->isWatchable)
4777 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4779 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(16), ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)->callback = callback, ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)->object = object, ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)));
4783 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 *))
4785 void * __ecereTemp1;
4786 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->destructionWatchOffset);
4788 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(16), ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)->callback = callback, ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)->object = object, ((struct __ecereNameSpace__ecere__com__Watcher *)__ecereTemp1)));
4791 void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object)
4793 if(instance && (!_property || _property->isWatchable))
4797 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4798 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4800 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4801 if(watcher->object == object)
4803 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4809 struct __ecereNameSpace__ecere__com__Class * _class, * base;
4811 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
4813 if(_class->destructionWatchOffset)
4815 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
4816 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4818 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4820 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4824 for(_property = (struct __ecereNameSpace__ecere__com__Property *)_class->membersAndProperties.first; _property; _property = _property->next)
4826 if(_property->isProperty && _property->isWatchable)
4828 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4829 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4831 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4832 if(watcher->object == object)
4834 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4839 base = _class->base;
4840 if(base && base->type == 1000)
4841 base = (((void *)0));
4847 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eClass_GetDesigner(struct __ecereNameSpace__ecere__com__Class * _class)
4849 for(; _class; _class = _class->base)
4851 if(_class->designerClass)
4852 return (struct __ecereNameSpace__ecere__com__Class *)__ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->designerClass);
4854 return (((void *)0));
4857 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eInstance_GetDesigner(struct __ecereNameSpace__ecere__com__Instance * instance)
4860 return __ecereNameSpace__ecere__com__eClass_GetDesigner(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class);
4861 return (((void *)0));
4864 unsigned int __ecereNameSpace__ecere__com__LocateModule(char * name, char * fileName)
4866 return Instance_LocateModule(name, fileName);
4869 extern void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module);
4871 extern void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module);
4873 extern double sin(struct __ecereNameSpace__ecere__com__Instance * number);
4875 extern double sinh(struct __ecereNameSpace__ecere__com__Instance * number);
4877 extern double cosh(struct __ecereNameSpace__ecere__com__Instance * number);
4879 extern double tanh(struct __ecereNameSpace__ecere__com__Instance * number);
4881 extern double sqrt(double number);
4883 extern double cos(struct __ecereNameSpace__ecere__com__Instance * number);
4885 extern double tan(struct __ecereNameSpace__ecere__com__Instance * number);
4887 extern struct __ecereNameSpace__ecere__com__Instance * atan2(double y, double x);
4889 extern struct __ecereNameSpace__ecere__com__Instance * asin(double number);
4891 extern struct __ecereNameSpace__ecere__com__Instance * acos(double number);
4893 extern struct __ecereNameSpace__ecere__com__Instance * atan(double number);
4895 extern double pow(double number, double number2);
4897 extern double fmod(double x, double y);
4899 extern double fabs(double number);
4901 extern double log(double number);
4903 extern double log10(double number);
4905 extern double ceil(double number);
4907 extern double floor(double number);
4909 extern double exp(double number);
4911 extern void qsort(void * , unsigned int, unsigned int, int (* )(void * , void * ));
4913 extern int system(const char * );
4915 extern int atoi(const char * );
4917 extern float atof(const char * );
4919 extern int tolower(int);
4921 extern int toupper(int);
4923 extern unsigned int isdigit(int);
4925 extern char * getenv(const char * name);
4927 extern int rename(const char * oldpath, const char * newpath);
4929 extern char * strncat(char * , const char * , int n);
4931 extern int strcasecmp(const char * , const char * );
4933 extern int strncasecmp(const char * , const char * , int n);
4935 extern int strncmp(const char * , const char * , int n);
4937 extern int vsprintf(char * , const char * , __builtin_va_list);
4939 extern int puts(char * );
4941 extern int fputs(char * , void * stream);
4943 extern int isalnum(int c);
4945 extern int isalpha(int c);
4947 extern int islower(int c);
4949 extern int isupper(int c);
4951 extern int isprint(int c);
4953 static void __ecereNameSpace__ecere__com__LoadCOM(struct __ecereNameSpace__ecere__com__Instance * module)
4955 struct __ecereNameSpace__ecere__com__Class * applicationClass;
4956 struct __ecereNameSpace__ecere__com__Class * enumClass, * structClass, * boolClass;
4957 struct __ecereNameSpace__ecere__com__Class * moduleClass;
4958 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "class", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4960 baseClass->type = 1000;
4961 baseClass->memberOffset = 0;
4962 baseClass->offset = 0;
4963 baseClass->structSize = 0;
4964 baseClass->typeSize = 0;
4966 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);
4968 instanceClass->type = 1000;
4969 instanceClass->fixed = 0x1;
4970 instanceClass->memberOffset = 0;
4971 instanceClass->offset = 0;
4972 instanceClass->memberID = -3;
4973 instanceClass->startMemberID = -3;
4974 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_vTbl", "int (**)()", sizeof(int (**)()), 4, 1);
4975 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_class", "ecere::com::Class", sizeof(struct __ecereNameSpace__ecere__com__Class *), 4, 1);
4976 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_refCount", "int", sizeof(int (**)()), 4, 1);
4978 __ecereNameSpace__ecere__com__InitializeDataTypes1(module);
4979 enumClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "enum", (((void *)0)), 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), (((void *)0)), (((void *)0)), module, 4, 1);
4980 __ecereNameSpace__ecere__com__eClass_AddClassProperty(enumClass, "enumSize", "int", (((void *)0)), __ecereNameSpace__ecere__com__GetEnumSize)->constant = 0x1;
4981 enumClass->type = 1000;
4982 (__ecereNameSpace__ecere__com__eSystem_Delete(enumClass->dataTypeString), enumClass->dataTypeString = 0);
4983 enumClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
4984 structClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "struct", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4985 structClass->type = 1000;
4986 structClass->memberOffset = 0;
4987 structClass->offset = 0;
4988 structClass->structSize = 0;
4989 structClass->typeSize = 0;
4990 __ecereNameSpace__ecere__com__InitializeDataTypes(module);
4991 boolClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "bool", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4992 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "true", (unsigned int)0x1);
4993 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "false", (unsigned int)0x0);
4994 moduleClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Module", (((void *)0)), sizeof(struct __ecereNameSpace__ecere__com__Module), 0, (void *)__ecereNameSpace__ecere__com__Module_Constructor, (void *)__ecereNameSpace__ecere__com__Module_Destructor, module, 4, 1);
4995 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnLoad", "bool()", (((void *)0)), 1);
4996 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnUnload", "void()", (((void *)0)), 1);
4997 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Load", "Module(char * name, AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, 1);
4998 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Unload", "void(Module module)", __ecereNameSpace__ecere__com__eModule_Unload, 1);
4999 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "application", "Application", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
5000 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "classes", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5001 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "defines", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5002 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "functions", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5003 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "modules", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5004 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "prev", "Module", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
5005 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "next", "Module", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
5006 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "name", "char *", sizeof(char *), 4, 1);
5007 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "library", "void *", sizeof(void *), 4, 1);
5008 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "Unload", "void *", sizeof(void *), 4, 1);
5009 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "importType", "ImportType", sizeof(int), 4, 1);
5010 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "origImportType", "ImportType", sizeof(int), 4, 1);
5011 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "privateNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
5012 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "publicNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
5013 moduleClass->fixed = 0x1;
5014 moduleClass->count++;
5015 applicationClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Application", "Module", sizeof(struct __ecereNameSpace__ecere__com__Application), 0, (((void *)0)), (void *)__ecereNameSpace__ecere__com__Application_Destructor, module, 4, 1);
5016 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(applicationClass, "Main", "void()", (((void *)0)), 1);
5017 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argc", "int", sizeof(int), 4, 1);
5018 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argv", "char **", sizeof(char **), 4, 1);
5019 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "exitCode", "int", sizeof(int), 4, 1);
5020 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "isGUIApp", "bool", sizeof(unsigned int), 4, 1);
5021 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "allModules", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5022 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "parsedCommand", "char *", sizeof(char *), 4, 1);
5023 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "systemNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
5024 applicationClass->fixed = 0x1;
5025 applicationClass->count++;
5026 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sin", "double sin(Angle number)", sin, module, 4);
5027 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sinh", "double sinh(Angle number)", sinh, module, 4);
5028 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cosh", "double cosh(Angle number)", cosh, module, 4);
5029 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tanh", "double tanh(Angle number)", tanh, module, 4);
5030 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sqrt", "double sqrt(double number)", sqrt, module, 4);
5031 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cos", "double cos(Angle number)", cos, module, 4);
5032 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tan", "double tan(Angle number)", tan, module, 4);
5033 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan2", "Angle atan2(double y, double x)", atan2, module, 4);
5034 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("asin", "Angle asin(double number)", asin, module, 4);
5035 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("acos", "Angle acos(double number)", acos, module, 4);
5036 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan", "Angle atan(double number)", atan, module, 4);
5037 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("pow", "double pow(double number, double number2)", pow, module, 4);
5038 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fmod", "double fmod(double x, double y)", fmod, module, 4);
5039 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fabs", "double fabs(double number)", fabs, module, 4);
5040 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log", "double log(double number)", log, module, 4);
5041 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log10", "double log10(double number)", log10, module, 4);
5042 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ceil", "double ceil(double number)", ceil, module, 4);
5043 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("floor", "double floor(double number)", floor, module, 4);
5044 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("exp", "double exp(double number)", exp, module, 4);
5045 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("qsort", "void qsort(void *, uint, uint, int (*)(void *, void *))", qsort, module, 4);
5046 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtod", "double strtod(char*, char**)", strtod, module, 4);
5047 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtol", "int strtol(char*, char**, int base)", strtol, module, 4);
5048 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("system", "int system(const char*)", system, module, 4);
5049 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atoi", "int atoi(const char*)", atoi, module, 4);
5050 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atof", "float atof(const char*)", atof, module, 4);
5051 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tolower", "int tolower(int)", tolower, module, 4);
5052 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("toupper", "int toupper(int)", toupper, module, 4);
5053 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isdigit", "bool isdigit(int)", isdigit, module, 4);
5054 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memset", "void memset(void * area, byte value, uint count)", memset, module, 4);
5055 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("getenv", "char * getenv(const char * name)", getenv, module, 4);
5056 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("rename", "int rename(const char *oldpath, const char *newpath)", rename, module, 4);
5057 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlen", "int strlen(const char *)", strlen, module, 4);
5058 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcat", "char * strcat(char *, const char *)", strcat, module, 4);
5059 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncat", "char * strncat(char *, const char *, int n)", strncat, module, 4);
5060 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strchr", "char * strchr(char *, int)", strchr, module, 4);
5061 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strstr", "char * strstr(char *, const char *)", strstr, module, 4);
5062 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("fstrcmp", "(GetRuntimePlatform() == win32) ? strcmpi : strcmp", module, 4);
5063 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strcmpi", "strcasecmp", module, 4);
5064 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strnicmp", "strncasecmp", module, 4);
5065 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcasecmp", "int strcasecmp(const char *, const char *)", strcasecmp, module, 4);
5066 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncasecmp", "int strncasecmp(const char *, const char *, int n)", strncasecmp, module, 4);
5067 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcmp", "int strcmp(const char *, const char *)", strcmp, module, 4);
5068 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncmp", "int strncmp(const char *, const char *, int n)", strncmp, module, 4);
5069 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlwr", "char * strlwr(char *)", strlwr, module, 4);
5070 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strupr", "char * strupr(char *)", strupr, module, 4);
5071 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcpy", "char * strcpy(char *, const char *)", strcpy, module, 4);
5072 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncpy", "char * strncpy(char *, const char *, int n)", strncpy, module, 4);
5073 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memcpy", "void * memcpy(void *, const void *, uint size)", memcpy, module, 4);
5074 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memmove", "void * memmove(void *, const void *, uint size)", memmove, module, 4);
5075 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sprintf", "int sprintf(char *, char *, ...)", sprintf, module, 4);
5076 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("printf", "int printf(char *, ...)", printf, module, 4);
5077 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsprintf", "int vsprintf(char*, const char*, __builtin_va_list)", vsprintf, module, 4);
5078 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("puts", "int puts(char *)", puts, module, 4);
5079 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fputs", "int fputs(char *, void * stream)", fputs, module, 4);
5080 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalnum", "int isalnum(int c)", isalnum, module, 4);
5081 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isspace", "int isspace(int c)", isspace, module, 4);
5082 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalpha", "int isalpha(int c)", isalpha, module, 4);
5083 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("islower", "int islower(int c)", islower, module, 4);
5084 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isupper", "int isupper(int c)", isupper, module, 4);
5085 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isprint", "int isprint(int c)", isprint, module, 4);
5086 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoul", "unsigned long strtoul(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5089 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[])
5091 struct __ecereNameSpace__ecere__com__Instance * app;
5093 app = __ecereNameSpace__ecere__com___calloc(1, 428);
5094 __ecereNameSpace__ecere__com__Module_Constructor(app);
5095 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5096 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5097 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5098 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5099 Instance_COM_Initialize(argc, argv, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->parsedCommand, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->argc, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->argv);
5100 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->application = app;
5101 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->allModules.offset = 12 + (unsigned int)&(*((struct __ecereNameSpace__ecere__com__Module *)0)).prev;
5102 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->isGUIApp = guiApp;
5103 __ecereNameSpace__ecere__com__LoadCOM(app);
5104 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)app)->_class = __ecereNameSpace__ecere__com__eSystem_FindClass(app, "Application");
5108 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)
5110 void * __ecereTemp1;
5114 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5116 for(param = _class->templateParams.first; param; param = param->next)
5118 if(!strcmp(param->name, name))
5121 param = (__ecereTemp1 = __ecereNameSpace__ecere__com__eSystem_New0(36), ((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));
5122 if(defaultArg != (((void *)0)))
5124 param->defaultArg = *defaultArg;
5125 __ecereNameSpace__ecere__com__CopyTemplateArg(param, ¶m->defaultArg);
5127 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templateParams, param);
5130 return (((void *)0));
5133 void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base)
5137 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
5138 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5141 void * first = base->templateParams.first;
5142 int count = base->templateParams.count;
5144 base->templateParams.first = (((void *)0));
5145 base->templateParams.count = 0;
5146 __ecereNameSpace__ecere__com__FreeTemplateArgs(base);
5147 (__ecereNameSpace__ecere__com__eSystem_Delete(base->templateArgs), base->templateArgs = 0);
5148 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(base);
5149 base->templateParams.first = first;
5150 base->templateParams.count = count;
5152 for(param = base->templateParams.first; param; param = param->next)
5154 if(param->type == 1 && param->defaultArg.memberString)
5156 struct __ecereNameSpace__ecere__com__Class * memberClass = base;
5157 char * colon = strstr(param->defaultArg.memberString, "::");
5162 char className[1024];
5163 struct __ecereNameSpace__ecere__com__Class * sClass;
5165 memcpy(className, param->defaultArg.memberString, colon - param->defaultArg.memberString);
5166 className[colon - param->defaultArg.memberString] = '\0';
5167 memberName = colon + 2;
5168 for(sClass = base; sClass; sClass = sClass->base)
5170 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
5171 struct __ecereNameSpace__ecere__com__Class * nextClass;
5174 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
5175 id += nextClass->templateParams.count;
5176 if(sClass == base || base->templateArgs)
5178 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
5180 if(cParam->type == 0 && !strcmp(cParam->name, className))
5181 strcpy(className, (sClass == base) ? cParam->defaultArg.dataTypeString : base->templateArgs[id].dataTypeString);
5186 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(base->module, className);
5188 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)base->module + 12)))->application, className);
5191 memberName = param->defaultArg.memberString;
5194 switch(param->memberType)
5197 param->defaultArg.member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
5200 param->defaultArg.method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
5203 param->defaultArg.prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
5209 __ecereNameSpace__ecere__com__FixDerivativesBase(base, base);
5213 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base)
5215 struct __ecereNameSpace__ecere__sys__OldLink * derivative, * templateLink;
5217 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
5219 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
5221 if(_class->templateArgs)
5223 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5224 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5226 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5228 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
5230 struct __ecereNameSpace__ecere__com__Class * _class = templateLink->data;
5232 if(_class->templateArgs)
5234 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5235 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5237 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5241 static const char * __ecereNameSpace__ecere__com__platformNames[4] =
5243 "", "win32", "linux", "apple"
5246 static const int __ecereNameSpace__ecere__com__firstPlatform = 1;
5248 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Platform_char__PTR_;
5250 static const int __ecereNameSpace__ecere__com__lastPlatform = 3;
5252 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Platform;
5254 int __ecereVMethodID_class_OnGetString;
5256 char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this)
5258 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)));
5261 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(char * value)
5267 for(c = __ecereNameSpace__ecere__com__firstPlatform; c <= __ecereNameSpace__ecere__com__lastPlatform; c++)
5268 if(!strcasecmp(value, __ecereNameSpace__ecere__com__platformNames[c]))
5274 char * __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * tempString, void * fieldData, unsigned int * needClass)
5276 if((*(this)) >= __ecereNameSpace__ecere__com__firstPlatform && (*(this)) <= __ecereNameSpace__ecere__com__lastPlatform)
5279 strcpy(tempString, __ecereNameSpace__ecere__com__platformNames[*(int *)this]);
5280 return __ecereNameSpace__ecere__com__platformNames[*(int *)this];
5282 if(tempString && tempString[0])
5283 tempString[0] = '\0';
5284 return (((void *)0));
5287 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * string)
5289 (*(this)) = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(string);
5290 return (unsigned int)*(int *)this;
5293 extern int runtimePlatform;
5295 int __ecereNameSpace__ecere__com__GetRuntimePlatform()
5297 return runtimePlatform;
5300 struct __ecereNameSpace__ecere__com__ObjectInfo
5302 struct __ecereNameSpace__ecere__com__ObjectInfo * prev, * next;
5303 struct __ecereNameSpace__ecere__com__Instance * instance;
5305 struct __ecereNameSpace__ecere__com__Instance * instCode;
5306 unsigned int deleted;
5307 struct __ecereNameSpace__ecere__com__ObjectInfo * oClass;
5308 struct __ecereNameSpace__ecere__sys__OldList instances;
5309 struct __ecereNameSpace__ecere__com__Instance * classDefinition;
5310 unsigned int modified;
5311 } __attribute__ ((gcc_struct));
5313 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ObjectInfo;
5315 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner;
5317 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass;
5319 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging;
5321 struct __ecereNameSpace__ecere__com__DesignerBase
5323 struct __ecereNameSpace__ecere__com__Instance * classDesigner;
5325 unsigned int isDragging;
5326 } __attribute__ ((gcc_struct));
5328 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DesignerBase;
5330 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this)
5332 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);
5334 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner;
5337 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
5339 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);
5341 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner = value;
5342 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner);
5345 char * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass(struct __ecereNameSpace__ecere__com__Instance * this)
5347 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);
5349 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass;
5352 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass(struct __ecereNameSpace__ecere__com__Instance * this, char * value)
5354 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);
5356 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass = value;
5357 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass);
5360 unsigned int __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging(struct __ecereNameSpace__ecere__com__Instance * this)
5362 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);
5364 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging;
5367 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
5369 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);
5371 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging = value;
5372 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging);
5375 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase;
5377 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__activeDesigner;
5379 void __ecereNameSpace__ecere__com__SetActiveDesigner(struct __ecereNameSpace__ecere__com__Instance * designer)
5381 __ecereNameSpace__ecere__com__activeDesigner = designer;
5384 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__GetActiveDesigner()
5386 return __ecereNameSpace__ecere__com__activeDesigner;
5391 unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source)
5397 for(c = 0; source[c]; )
5399 unsigned char ch = source[c];
5400 unsigned int codePoint = 0;
5403 unsigned char mask = (unsigned char)0x7F;
5405 if(ch & (unsigned char)0x80)
5407 if(ch & (unsigned char)0x40)
5411 if(ch & (unsigned char)0x20)
5415 if(ch & (unsigned char)0x10)
5417 if(ch & (unsigned char)0x08)
5427 for(i = 0; i < numBytes && (ch = source[c]); i++, c++)
5430 codePoint |= ch & mask;
5431 mask = (unsigned char)0x3F;
5434 if(!(ch & (unsigned char)0x80) || (ch & (unsigned char)0x40))
5440 if(codePoint > 0x10FFFF || (codePoint >= 0xD800 && codePoint <= 0xDFFF) || (codePoint < 0x80 && numBytes > 1) || (codePoint < 0x800 && numBytes > 2) || (codePoint < 0x10000 && numBytes > 3))
5447 int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max)
5452 for(c = 0; source[c]; c++)
5454 unsigned int ch = ((unsigned char *)source)[c];
5460 dest[d++] = (char)ch;
5466 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5467 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5469 else if(ch < 0x10000)
5473 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5474 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5475 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5481 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5482 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5483 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5484 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5491 char * __ecereNameSpace__ecere__sys__UTF16toUTF8(unsigned short * source)
5498 unsigned int invert = 0x0;
5500 for(len = 0; source[len]; len++)
5502 dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len * 3 + 1));
5503 for(c = 0; (u16 = source[c]); c++)
5507 if(!c && (u16 == (unsigned short)0xFFFE || u16 == (unsigned short)0xFEFF))
5509 if(u16 == (unsigned short)0xFFFE)
5515 u16 = ((u16 & (unsigned short)0xFF00) >> (unsigned short)8) | ((u16 & (unsigned short)0x00FF) << (unsigned short)8);
5517 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5520 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5523 dest[d++] = (char)ch;
5527 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5528 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5530 else if(ch < 0x10000)
5532 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5533 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5534 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5538 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5539 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5540 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5541 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5545 dest = __ecereNameSpace__ecere__com__eSystem_Renew(dest, sizeof(char) * (d + 1));
5549 int __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer(unsigned short * source, unsigned char * dest, int max)
5555 for(c = 0; (u16 = source[c]); c++)
5559 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5562 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5567 dest[d++] = (char)ch;
5573 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5574 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5576 else if(ch < 0x10000)
5580 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5581 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5582 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5588 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5589 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5590 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5591 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5594 dest[d] = (unsigned char)0;
5598 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes)
5601 unsigned char b = ((unsigned char *)string)[0];
5603 unsigned char mask = (unsigned char)0x7F;
5607 if(b & (unsigned char)0x80)
5609 if(b & (unsigned char)0x40)
5613 if(b & (unsigned char)0x20)
5617 if(b & (unsigned char)0x10)
5619 if(b & (unsigned char)0x08)
5631 for(i = 0; i < nb; i++)
5634 ch |= (b = ((unsigned char *)string)[i]) & mask;
5635 mask = (unsigned char)0x3F;
5636 if(i > 1 && (!(b & (unsigned char)0x80) || (b & (unsigned char)0x40)))
5642 if(i < nb || ch > 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF) || (ch < 0x80 && nb > 1) || (ch < 0x800 && nb > 2) || (ch < 0x10000 && nb > 3))
5652 int __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer(char * source, unsigned short * dest, int max)
5659 for(c = 0; source[c]; )
5661 unsigned char ch = source[c];
5662 unsigned int codePoint = 0;
5665 unsigned char mask = (unsigned char)0x7F;
5667 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5671 if(ch & (unsigned char)0x20)
5675 if(ch & (unsigned char)0x10)
5682 for(i = 0; i < numBytes; i++)
5685 codePoint |= source[c++] & mask;
5686 mask = (unsigned char)0x3F;
5688 if(codePoint > 0xFFFF)
5690 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5691 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5702 dest[d++] = (unsigned short)codePoint;
5705 dest[d] = (unsigned short)0;
5711 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max)
5717 for(c = 0; c < count && (ch = source[c]); c++)
5723 dest[d++] = (char)ch;
5729 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5730 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5732 else if(ch < 0x10000)
5736 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5737 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5738 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5744 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5745 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5746 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5747 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5750 dest[d] = (unsigned char)0;
5754 unsigned short * __ecereNameSpace__ecere__sys__UTF8toUTF16(char * source, int * wordCount)
5758 int len = strlen(source);
5759 unsigned short * dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned short) * (len + 1));
5763 for(c = 0; source[c]; )
5765 unsigned char ch = source[c];
5766 unsigned int codePoint = 0;
5769 unsigned char mask = (unsigned char)0x7F;
5771 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5775 if(ch & (unsigned char)0x20)
5779 if(ch & (unsigned char)0x10)
5786 for(i = 0; i < numBytes; i++)
5789 codePoint |= source[c++] & mask;
5790 mask = (unsigned char)0x3F;
5792 if(codePoint > 0xFFFF)
5794 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5795 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5802 dest[d++] = (unsigned short)codePoint;
5805 dest[d] = (unsigned short)0;
5810 return (((void *)0));
5813 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_FindObject;
5815 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_RenameObject;
5817 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SelectObjectFromDesigner;
5819 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_CodeAddObject;
5821 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SheetAddObject;
5823 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddToolBoxClass;
5825 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddDefaultMethod;
5827 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_DeleteObject;
5829 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ObjectContainsCode;
5831 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ModifyCode;
5833 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_UpdateProperties;
5835 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_Reset;
5837 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_AddObject;
5839 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_SelectObject;
5841 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_ListToolBoxClasses;
5843 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PrepareTestObject;
5845 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateObject;
5847 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PostCreateObject;
5849 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DroppedObject;
5851 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DestroyObject;
5853 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_FixProperty;
5855 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew;
5857 void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
5859 struct __ecereNameSpace__ecere__com__Class * class;
5861 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4);
5862 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::unichar", "uint", 0, 0, 0, 0, module, 4, 1);
5863 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5864 __ecereClass___ecereNameSpace__ecere__com__unichar = class;
5865 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString, 1);
5866 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString, 1);
5867 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Property", 0, sizeof(struct __ecereNameSpace__ecere__com__Property), 0, 0, 0, module, 4, 1);
5868 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5869 __ecereClass___ecereNameSpace__ecere__com__Property = class;
5870 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Property", 4, 4, 1);
5871 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Property", 4, 4, 1);
5872 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5873 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
5874 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
5875 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
5876 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
5877 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
5878 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
5879 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
5880 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)()", 4, 4, 1);
5881 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)()", 4, 4, 1);
5882 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "IsSet", "bool( *)()", 4, 4, 1);
5883 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5884 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
5885 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
5886 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
5887 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "watcherOffset", "uint", 4, 4, 1);
5888 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "char *", 4, 4, 1);
5889 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "compiled", "bool", 4, 4, 1);
5890 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchable", "bool", 4, 4, 1);
5891 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
5893 class->fixed = (unsigned int)1;
5895 class->noExpansion = (unsigned int)1;
5896 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PushLoc", "void ecere::com::MemoryGuard_PushLoc(char * loc)", __ecereNameSpace__ecere__com__MemoryGuard_PushLoc, module, 4);
5897 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PopLoc", "void ecere::com::MemoryGuard_PopLoc(void)", __ecereNameSpace__ecere__com__MemoryGuard_PopLoc, module, 4);
5898 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BTNamedLink", 0, sizeof(struct __ecereNameSpace__ecere__com__BTNamedLink), 0, 0, 0, module, 4, 1);
5899 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5900 __ecereClass___ecereNameSpace__ecere__com__BTNamedLink = class;
5901 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5902 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::BTNamedLink", 4, 4, 1);
5903 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::BTNamedLink", 4, 4, 1);
5904 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::BTNamedLink", 4, 4, 1);
5905 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
5906 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5908 class->fixed = (unsigned int)1;
5909 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SelfWatcher", 0, sizeof(struct __ecereNameSpace__ecere__com__SelfWatcher), 0, 0, 0, module, 2, 1);
5910 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5911 __ecereClass___ecereNameSpace__ecere__com__SelfWatcher = class;
5913 class->fixed = (unsigned int)1;
5914 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::AccessMode", 0, 0, 0, 0, 0, module, 4, 1);
5915 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5916 __ecereClass___ecereNameSpace__ecere__com__AccessMode = class;
5917 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "defaultAccess", 0);
5918 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "publicAccess", 1);
5919 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "privateAccess", 2);
5920 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticAccess", 3);
5921 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "baseSystemAccess", 4);
5922 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SubModule", 0, sizeof(struct __ecereNameSpace__ecere__com__SubModule), 0, 0, 0, module, 4, 1);
5923 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5924 __ecereClass___ecereNameSpace__ecere__com__SubModule = class;
5925 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::SubModule", 4, 4, 1);
5926 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::SubModule", 4, 4, 1);
5927 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
5928 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "importMode", "ecere::com::AccessMode", 4, 4, 1);
5929 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::DataMemberType", 0, 0, 0, 0, 0, module, 4, 1);
5930 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5931 __ecereClass___ecereNameSpace__ecere__com__DataMemberType = class;
5932 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMember", 0);
5933 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionMember", 1);
5934 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMember", 2);
5935 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ClassType", 0, 0, 0, 0, 0, module, 4, 1);
5936 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5937 __ecereClass___ecereNameSpace__ecere__com__ClassType = class;
5938 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalClass", 0);
5939 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structClass", 1);
5940 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "bitClass", 2);
5941 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unitClass", 3);
5942 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "enumClass", 4);
5943 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noHeadClass", 5);
5944 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionClass", 6);
5945 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "systemClass", 1000);
5946 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Class", 0, sizeof(struct __ecereNameSpace__ecere__com__Class), 0, 0, 0, module, 4, 1);
5947 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5948 __ecereClass___ecereNameSpace__ecere__com__Class = class;
5949 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree, 1);
5950 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString, 1);
5951 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString, 1);
5952 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize, 1);
5953 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize, 1);
5954 __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);
5955 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Class", 4, 4, 1);
5956 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Class", 4, 4, 1);
5957 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5958 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
5959 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structSize", "int", 4, 4, 1);
5960 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_vTbl", "int( * *)()", 4, 4, 1);
5961 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vTblSize", "int", 4, 4, 1);
5962 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Constructor", "int( *)(ecere::com::Instance)", 4, 4, 1);
5963 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Destructor", "void( *)(ecere::com::Instance)", 4, 4, 1);
5964 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offsetClass", "int", 4, 4, 1);
5965 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "sizeClass", "int", 4, 4, 1);
5966 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "base", "ecere::com::Class", 4, 4, 1);
5967 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::BinaryTree", 16, 4, 1);
5968 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::BinaryTree", 16, 4, 1);
5969 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prop", "ecere::sys::BinaryTree", 16, 4, 1);
5970 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAndProperties", "ecere::sys::OldList", 20, 4, 1);
5971 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classProperties", "ecere::sys::BinaryTree", 16, 4, 1);
5972 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "derivatives", "ecere::sys::OldList", 20, 4, 1);
5973 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
5974 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "startMemberID", "int", 4, 4, 1);
5975 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::ClassType", 4, 4, 1);
5976 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
5977 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
5978 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
5979 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
5980 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeSize", "int", 4, 4, 1);
5981 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultAlignment", "int", 4, 4, 1);
5982 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Initialize", "void( *)()", 4, 4, 1);
5983 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
5984 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchers", "ecere::sys::OldList", 20, 4, 1);
5985 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "designerClass", "char *", 4, 4, 1);
5986 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "noExpansion", "bool", 4, 4, 1);
5987 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultProperty", "char *", 4, 4, 1);
5988 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "comRedefinition", "bool", 4, 4, 1);
5989 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
5990 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
5991 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "internalDecl", "bool", 4, 4, 1);
5992 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5993 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computeSize", "bool", 4, 4, 1);
5994 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
5995 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "destructionWatchOffset", "int", 4, 4, 1);
5996 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fixed", "bool", 4, 4, 1);
5997 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "delayedCPValues", "ecere::sys::OldList", 20, 4, 1);
5998 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "inheritanceAccess", "ecere::com::AccessMode", 4, 4, 1);
5999 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fullName", "char *", 4, 4, 1);
6000 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6001 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversions", "ecere::sys::OldList", 20, 4, 1);
6002 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateParams", "ecere::sys::OldList", 20, 4, 1);
6003 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateArgs", "ecere::com::ClassTemplateArgument *", 4, 4, 1);
6004 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateClass", "ecere::com::Class", 4, 4, 1);
6005 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templatized", "ecere::sys::OldList", 20, 4, 1);
6006 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParams", "int", 4, 4, 1);
6008 class->fixed = (unsigned int)1;
6010 class->noExpansion = (unsigned int)1;
6011 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateParameterType", 0, 0, 0, 0, 0, module, 4, 1);
6012 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6013 __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType = class;
6014 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "type", 0);
6015 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 1);
6016 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "expression", 2);
6017 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6018 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6019 __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType = class;
6020 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dataMember", 0);
6021 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "method", 1);
6022 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "prop", 2);
6023 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::ClassTemplateArgument", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument), 0, 0, 0, module, 4, 1);
6024 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6025 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument = class;
6027 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6030 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6032 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeString", "char *", 4, 4, 1);
6033 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6034 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6036 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expression", "ecere::com::DataValue", 8, 8, 1);
6038 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6040 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "memberString", "char *", 4, 4, 1);
6042 struct __ecereNameSpace__ecere__com__DataMember * dataMember2 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6044 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "member", "ecere::com::DataMember", 4, 4, 1);
6045 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "prop", "ecere::com::Property", 4, 4, 1);
6046 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "method", "ecere::com::Method", 4, 4, 1);
6047 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember1, dataMember2);
6049 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6051 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6053 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassTemplateParameter", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateParameter), 0, 0, 0, module, 4, 1);
6054 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6055 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter = class;
6056 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ClassTemplateParameter", 4, 4, 1);
6057 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ClassTemplateParameter", 4, 4, 1);
6058 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6059 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::TemplateParameterType", 4, 4, 1);
6061 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6063 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dataTypeString", "char *", 4, 4, 1);
6064 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "ecere::com::TemplateMemberType", 4, 4, 1);
6065 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6067 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArg", "ecere::com::ClassTemplateArgument", 8, 8, 1);
6068 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "param", "void *", 4, 4, 1);
6070 class->fixed = (unsigned int)1;
6071 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::MethodType", 0, 0, 0, 0, 0, module, 4, 1);
6072 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6073 __ecereClass___ecereNameSpace__ecere__com__MethodType = class;
6074 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMethod", 0);
6075 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "virtualMethod", 1);
6076 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Method", 0, sizeof(struct __ecereNameSpace__ecere__com__Method), 0, 0, 0, module, 4, 1);
6077 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6078 __ecereClass___ecereNameSpace__ecere__com__Method = class;
6079 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6080 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::Method", 4, 4, 1);
6081 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::Method", 4, 4, 1);
6082 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::Method", 4, 4, 1);
6083 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6084 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", 4, 4, 1);
6085 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6086 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::MethodType", 4, 4, 1);
6087 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6088 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6089 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6090 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6091 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6093 class->fixed = (unsigned int)1;
6094 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ImportType", 0, 0, 0, 0, 0, module, 4, 1);
6095 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6096 __ecereClass___ecereNameSpace__ecere__com__ImportType = class;
6097 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalImport", 0);
6098 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticImport", 1);
6099 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "remoteImport", 2);
6100 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preDeclImport", 3);
6101 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "comCheckImport", 4);
6102 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::NameSpace", 0, sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 0, 0, 0, module, 4, 1);
6103 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6104 __ecereClass___ecereNameSpace__ecere__com__NameSpace = class;
6105 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6106 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "btParent", "ecere::com::NameSpace *", 4, 4, 1);
6107 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::NameSpace *", 4, 4, 1);
6108 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::NameSpace *", 4, 4, 1);
6109 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6110 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::NameSpace *", 4, 4, 1);
6111 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpaces", "ecere::sys::BinaryTree", 16, 4, 1);
6112 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classes", "ecere::sys::BinaryTree", 16, 4, 1);
6113 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defines", "ecere::sys::BinaryTree", 16, 4, 1);
6114 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "functions", "ecere::sys::BinaryTree", 16, 4, 1);
6115 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::DataValue", 0, sizeof(struct __ecereNameSpace__ecere__com__DataValue), 0, 0, 0, module, 4, 1);
6116 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6117 __ecereClass___ecereNameSpace__ecere__com__DataValue = class;
6119 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6121 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "c", "char", 1, 1, 1);
6122 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "uc", "byte", 1, 1, 1);
6123 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "s", "short", 2, 2, 1);
6124 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "us", "uint16", 2, 2, 1);
6125 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i", "int", 4, 4, 1);
6126 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui", "uint", 4, 4, 1);
6127 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "p", "void *", 4, 4, 1);
6128 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "f", "float", 4, 4, 1);
6129 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "d", "double", 8, 8, 1);
6130 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i64", "int64", 8, 8, 1);
6131 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui64", "uint64", 8, 8, 1);
6132 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6134 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DataMember", 0, sizeof(struct __ecereNameSpace__ecere__com__DataMember), 0, 0, 0, module, 4, 1);
6135 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6136 __ecereClass___ecereNameSpace__ecere__com__DataMember = class;
6137 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DataMember", 4, 4, 1);
6138 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DataMember", 4, 4, 1);
6139 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6140 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6141 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6142 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6143 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6144 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6145 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6146 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6147 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6148 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6149 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6150 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::OldList", 20, 4, 1);
6151 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAlpha", "ecere::sys::BinaryTree", 16, 4, 1);
6152 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6153 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6155 class->fixed = (unsigned int)1;
6156 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BitMember", 0, sizeof(struct __ecereNameSpace__ecere__com__BitMember), 0, 0, 0, module, 4, 1);
6157 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6158 __ecereClass___ecereNameSpace__ecere__com__BitMember = class;
6159 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::BitMember", 4, 4, 1);
6160 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::BitMember", 4, 4, 1);
6161 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6162 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6163 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6164 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6165 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6166 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6167 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6168 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6169 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6170 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "int", 4, 4, 1);
6171 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
6172 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "mask", "uint64", 8, 8, 1);
6174 class->fixed = (unsigned int)1;
6175 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassProperty", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassProperty), 0, 0, 0, module, 4, 1);
6176 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6177 __ecereClass___ecereNameSpace__ecere__com__ClassProperty = class;
6178 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6179 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::ClassProperty", 4, 4, 1);
6180 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::ClassProperty", 4, 4, 1);
6181 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::ClassProperty", 4, 4, 1);
6182 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6183 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)(ecere::com::Class, int)", 4, 4, 1);
6184 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)(ecere::com::Class)", 4, 4, 1);
6185 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6186 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6187 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
6189 class->fixed = (unsigned int)1;
6190 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DefinedExpression", 0, sizeof(struct __ecereNameSpace__ecere__com__DefinedExpression), 0, 0, 0, module, 4, 1);
6191 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6192 __ecereClass___ecereNameSpace__ecere__com__DefinedExpression = class;
6193 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DefinedExpression", 4, 4, 1);
6194 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DefinedExpression", 4, 4, 1);
6195 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6196 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "value", "char *", 4, 4, 1);
6197 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
6199 class->fixed = (unsigned int)1;
6200 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::GlobalFunction", 0, sizeof(struct __ecereNameSpace__ecere__com__GlobalFunction), 0, 0, 0, module, 4, 1);
6201 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6202 __ecereClass___ecereNameSpace__ecere__com__GlobalFunction = class;
6203 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::GlobalFunction", 4, 4, 1);
6204 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::GlobalFunction", 4, 4, 1);
6205 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6206 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", 4, 4, 1);
6207 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
6208 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
6209 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6210 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6211 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6213 class->fixed = (unsigned int)1;
6214 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::EnumClassData", 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), 0, 0, 0, module, 4, 1);
6215 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6216 __ecereClass___ecereNameSpace__ecere__com__EnumClassData = class;
6217 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "values", "ecere::sys::OldList", 20, 4, 1);
6218 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "largest", "int", 4, 4, 1);
6220 class->fixed = (unsigned int)1;
6221 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Watcher", 0, sizeof(struct __ecereNameSpace__ecere__com__Watcher), 0, 0, 0, module, 2, 1);
6222 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6223 __ecereClass___ecereNameSpace__ecere__com__Watcher = class;
6225 class->fixed = (unsigned int)1;
6226 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemBlock", 0, sizeof(struct __ecereNameSpace__ecere__com__MemBlock), 0, 0, 0, module, 2, 1);
6227 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6228 __ecereClass___ecereNameSpace__ecere__com__MemBlock = class;
6229 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemPart", 0, sizeof(struct __ecereNameSpace__ecere__com__MemPart), 0, 0, 0, module, 2, 1);
6230 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6231 __ecereClass___ecereNameSpace__ecere__com__MemPart = class;
6232 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::BlockPool", 0, sizeof(struct __ecereNameSpace__ecere__com__BlockPool), 0, 0, 0, module, 2, 1);
6233 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6234 __ecereClass___ecereNameSpace__ecere__com__BlockPool = class;
6235 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "ecere::com::MemBlock Add()", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add, 1);
6236 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Expand", "bool Expand(unsigned int numBlocks)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand, 1);
6237 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::com::MemBlock block)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove, 1);
6238 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "ecere::com::MemBlock", 4, 4, 1);
6239 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "ecere::com::MemBlock", 4, 4, 1);
6240 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "free", "ecere::com::MemBlock", 4, 4, 1);
6241 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSize", "uint", 4, 4, 1);
6242 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSpace", "uint", 4, 4, 1);
6243 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParts", "int", 4, 4, 1);
6244 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numBlocks", "int", 4, 4, 1);
6245 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "totalSize", "uint", 4, 4, 1);
6246 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "usedSpace", "uint", 4, 4, 1);
6247 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::log2i", "uint ecere::com::log2i(uint number)", __ecereNameSpace__ecere__com__log2i, module, 4);
6248 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::pow2i", "uint ecere::com::pow2i(uint number)", __ecereNameSpace__ecere__com__pow2i, module, 4);
6249 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::memswap", "void ecere::com::memswap(byte * a, byte * b, uint size)", __ecereNameSpace__ecere__com__memswap, module, 4);
6250 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::CheckMemory", "void ecere::com::CheckMemory(void)", __ecereNameSpace__ecere__com__CheckMemory, module, 4);
6251 __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);
6252 __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);
6253 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoi64", "int64 ecere::com::_strtoi64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoi64, module, 4);
6254 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoui64", "uint64 ecere::com::_strtoui64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoui64, module, 4);
6255 __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);
6256 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::DefaultFunction", "bool ecere::com::DefaultFunction(void)", __ecereNameSpace__ecere__com__DefaultFunction, module, 2);
6257 __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);
6258 __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);
6259 __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);
6260 __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);
6261 __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);
6262 __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);
6263 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_GetProperty", "int ecere::com::eClass_GetProperty(ecere::com::Class _class, char * name)", __ecereNameSpace__ecere__com__eClass_GetProperty, module, 4);
6264 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_SetProperty", "void ecere::com::eClass_SetProperty(ecere::com::Class _class, char * name, int value)", __ecereNameSpace__ecere__com__eClass_SetProperty, module, 4);
6265 __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);
6266 __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);
6267 __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);
6268 __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);
6269 __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);
6270 __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);
6271 __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);
6272 __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);
6273 __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);
6274 __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);
6275 __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);
6276 __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);
6277 __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);
6278 __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);
6279 __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);
6280 __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);
6281 __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);
6282 __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);
6283 __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);
6284 __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);
6285 __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);
6286 __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);
6287 __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);
6288 __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);
6289 __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);
6290 __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);
6291 __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);
6292 __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);
6293 __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);
6294 __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);
6295 __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);
6296 __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);
6297 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New", "void * ecere::com::eSystem_New(uint size)", __ecereNameSpace__ecere__com__eSystem_New, module, 4);
6298 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New0", "void * ecere::com::eSystem_New0(uint size)", __ecereNameSpace__ecere__com__eSystem_New0, module, 4);
6299 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Delete", "void ecere::com::eSystem_Delete(void * memory)", __ecereNameSpace__ecere__com__eSystem_Delete, module, 4);
6300 __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);
6301 __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);
6302 __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);
6303 __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);
6304 __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);
6305 __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);
6306 __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);
6307 __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);
6308 __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);
6309 __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);
6310 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::LocateModule", "bool ecere::com::LocateModule(char * name, char * fileName)", __ecereNameSpace__ecere__com__LocateModule, module, 4);
6311 __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);
6312 __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);
6313 __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);
6314 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::Platform", 0, 0, 0, 0, 0, module, 4, 1);
6315 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6316 __ecereClass___ecereNameSpace__ecere__com__Platform = class;
6317 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString, 1);
6318 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString, 1);
6319 __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);
6320 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknown", 0);
6321 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "win32", 1);
6322 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "tux", 2);
6323 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "apple", 3);
6324 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetRuntimePlatform", "ecere::com::Platform ecere::com::GetRuntimePlatform(void)", __ecereNameSpace__ecere__com__GetRuntimePlatform, module, 4);
6325 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ObjectInfo", 0, sizeof(struct __ecereNameSpace__ecere__com__ObjectInfo), 0, 0, 0, module, 4, 1);
6326 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6327 __ecereClass___ecereNameSpace__ecere__com__ObjectInfo = class;
6328 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ObjectInfo", 4, 4, 1);
6329 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ObjectInfo", 4, 4, 1);
6330 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instance", "ecere::com::Instance", 4, 4, 1);
6331 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6332 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instCode", "Instantiation", 4, 4, 1);
6333 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "deleted", "bool", 4, 4, 1);
6334 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "oClass", "ecere::com::ObjectInfo", 4, 4, 1);
6335 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instances", "ecere::sys::OldList", 20, 4, 1);
6336 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDefinition", "ClassDefinition", 4, 4, 1);
6337 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "bool", 4, 4, 1);
6338 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);
6339 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6340 __ecereClass___ecereNameSpace__ecere__com__DesignerBase = class;
6341 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindObject", "bool FindObject(ecere::com::Instance * instance, char * string)", 0, 1);
6342 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RenameObject", "void RenameObject(ecere::com::ObjectInfo object, char * name)", 0, 1);
6343 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObjectFromDesigner", "void SelectObjectFromDesigner(ecere::com::ObjectInfo object)", 0, 1);
6344 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CodeAddObject", "void CodeAddObject(ecere::com::Instance instance, ecere::com::ObjectInfo * object)", 0, 1);
6345 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SheetAddObject", "void SheetAddObject(ecere::com::ObjectInfo object)", 0, 1);
6346 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddToolBoxClass", "void AddToolBoxClass(ecere::com::Class _class)", 0, 1);
6347 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddDefaultMethod", "void AddDefaultMethod(ecere::com::Instance instance, ecere::com::Instance classInstance)", 0, 1);
6348 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DeleteObject", "void DeleteObject(ecere::com::ObjectInfo object)", 0, 1);
6349 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ObjectContainsCode", "bool ObjectContainsCode(ecere::com::ObjectInfo object)", 0, 1);
6350 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ModifyCode", "void ModifyCode(void)", 0, 1);
6351 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "UpdateProperties", "void UpdateProperties(void)", 0, 1);
6352 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDesigner", "ecere::com::ClassDesignerBase", 4, 4, 1);
6353 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "objectClass", "char *", 4, 4, 1);
6354 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isDragging", "bool", 4, 4, 1);
6355 __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);
6356 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6357 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6358 __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);
6359 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6360 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6361 __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);
6362 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6363 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;
6364 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::ClassDesignerBase", "ecere::gui::Window", 0, 0, 0, 0, module, 4, 1);
6365 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6366 __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase = class;
6367 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Reset", "void Reset(void)", 0, 1);
6368 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddObject", "void AddObject(void)", 0, 1);
6369 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObject", "void SelectObject(ecere::com::ObjectInfo object, ecere::com::Instance control)", 0, 1);
6370 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ListToolBoxClasses", "void ListToolBoxClasses(ecere::com::DesignerBase designer)", 0, 1);
6371 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PrepareTestObject", "void ::PrepareTestObject(ecere::com::DesignerBase designer, ecere::com::Instance test)", 0, 1);
6372 __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);
6373 __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);
6374 __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);
6375 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DestroyObject", "void ::DestroyObject(ecere::com::Instance object)", 0, 1);
6376 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixProperty", "void ::FixProperty(ecere::com::Property prop, ecere::com::Instance object)", 0, 1);
6377 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateNew", "void ::CreateNew(EditBox editBox, Size clientSize, char * name, char * inherit)", 0, 1);
6378 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::SetActiveDesigner", "void ecere::com::SetActiveDesigner(ecere::com::DesignerBase designer)", __ecereNameSpace__ecere__com__SetActiveDesigner, module, 4);
6379 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetActiveDesigner", "ecere::com::DesignerBase ecere::com::GetActiveDesigner(void)", __ecereNameSpace__ecere__com__GetActiveDesigner, module, 4);
6380 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::LEAD_OFFSET", "0xD800 - (0x10000 >> 10)", module, 2);
6381 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::SURROGATE_OFFSET", "0x10000 - (0xD800 << 10) - 0xDC00", module, 2);
6382 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8Validate", "bool ecere::sys::UTF8Validate(char * source)", __ecereNameSpace__ecere__sys__UTF8Validate, module, 4);
6383 __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);
6384 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8", "char * ecere::sys::UTF16toUTF8(uint16 * source)", __ecereNameSpace__ecere__sys__UTF16toUTF8, module, 4);
6385 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8Buffer", "int ecere::sys::UTF16toUTF8Buffer(uint16 * source, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer, module, 4);
6386 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8GetChar", "ecere::com::unichar ecere::sys::UTF8GetChar(char * string, int * numBytes)", __ecereNameSpace__ecere__sys__UTF8GetChar, module, 4);
6387 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16Buffer", "int ecere::sys::UTF8toUTF16Buffer(char * source, uint16 * dest, int max)", __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer, module, 4);
6388 __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);
6389 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16", "uint16 * ecere::sys::UTF8toUTF16(char * source, int * wordCount)", __ecereNameSpace__ecere__sys__UTF8toUTF16, module, 4);
6392 void __ecereUnregisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6395 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6396 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6397 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;