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 vsnprintf(char *, size_t, const char *, ...);
291 int snprintf(char * str, size_t, const char * format, ...);
293 int fseek(FILE * stream, long offset, int whence);
295 long ftell(FILE * stream);
297 int feof(FILE * stream);
299 int ferror(FILE * stream);
301 int fileno(FILE * stream);
304 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
306 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
308 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
310 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
312 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
314 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
316 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
318 extern int __ecereVMethodID_class_OnGetDataFromString;
320 unsigned int Instance_LocateModule(char * name, char * fileName);
322 void Instance_COM_Initialize(int argc, char ** argv, char ** parsedCommand, int * argcPtr, char *** argvPtr);
324 void * Instance_Module_Load(char * name, void ** Load, void ** Unload);
326 void Instance_Module_Free(void * library);
328 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__unichar;
330 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max);
332 char * __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * tempString, void * fieldData, unsigned int * needClass)
334 __ecereNameSpace__ecere__sys__UTF32toUTF8Len(&(*(this)), 1, tempString, 5);
338 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes);
340 unsigned int __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string)
344 (*(this)) = __ecereNameSpace__ecere__sys__UTF8GetChar(string, &nb);
348 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
350 void __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(char * loc)
354 void __ecereNameSpace__ecere__com__MemoryGuard_PopLoc()
358 extern unsigned int __ecereDll_Load_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
360 extern unsigned int __ecereDll_Unload_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
362 struct __ecereNameSpace__ecere__com__BTNamedLink
365 struct __ecereNameSpace__ecere__com__BTNamedLink * parent, * left, * right;
368 } __attribute__ ((gcc_struct));
370 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BTNamedLink;
372 struct __ecereNameSpace__ecere__com__SelfWatcher
374 struct __ecereNameSpace__ecere__com__SelfWatcher * prev, * next;
375 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *);
376 struct __ecereNameSpace__ecere__com__Property * _property;
377 } __attribute__ ((gcc_struct));
379 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SelfWatcher;
381 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AccessMode;
383 struct __ecereNameSpace__ecere__com__SubModule
385 struct __ecereNameSpace__ecere__com__SubModule * prev, * next;
386 struct __ecereNameSpace__ecere__com__Instance * module;
388 } __attribute__ ((gcc_struct));
390 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SubModule;
392 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMemberType;
394 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassType;
396 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Class_char__PTR_;
398 char * __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this)
403 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
405 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(char * value)
407 struct __ecereNameSpace__ecere__com__Class * theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, value);
412 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)
417 struct __ecereNameSpace__ecere__com__NameSpace
420 struct __ecereNameSpace__ecere__com__NameSpace * btParent, * left, * right;
422 struct __ecereNameSpace__ecere__com__NameSpace * parent;
423 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
424 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
425 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
426 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
427 } __attribute__ ((gcc_struct));
429 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
431 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
433 struct __ecereNameSpace__ecere__com__Module
435 struct __ecereNameSpace__ecere__com__Instance * application;
436 struct __ecereNameSpace__ecere__sys__OldList classes;
437 struct __ecereNameSpace__ecere__sys__OldList defines;
438 struct __ecereNameSpace__ecere__sys__OldList functions;
439 struct __ecereNameSpace__ecere__sys__OldList modules;
440 struct __ecereNameSpace__ecere__com__Instance * prev;
441 struct __ecereNameSpace__ecere__com__Instance * next;
447 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
448 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
449 } __attribute__ ((gcc_struct));
451 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, char * string)
453 struct __ecereNameSpace__ecere__com__Class * theClass;
455 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
457 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application, string);
458 (*(this)) = (void *)theClass;
459 return theClass != (((void *)0));
462 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
464 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_char__PTR_;
466 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)
468 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_char__PTR_, this->fullName);
471 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this)
475 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
477 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
479 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)
481 struct __ecereNameSpace__ecere__com__Class * theClass;
484 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &string);
485 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
487 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application, string);
488 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
489 (*(this)) = (void *)theClass;
492 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType;
494 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType;
496 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
498 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev, * next;
503 char * dataTypeString;
505 } __attribute__ ((gcc_struct));
506 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
508 } __attribute__ ((gcc_struct));
510 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
512 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MethodType;
514 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ImportType;
516 struct __ecereNameSpace__ecere__com__BitMember
518 struct __ecereNameSpace__ecere__com__BitMember * prev, * next;
520 unsigned int isProperty;
523 struct __ecereNameSpace__ecere__com__Class * _class;
524 char * dataTypeString;
525 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
526 struct __ecereNameSpace__ecere__com__Instance * dataType;
531 } __attribute__ ((gcc_struct));
533 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
535 struct __ecereNameSpace__ecere__com__ClassProperty
538 struct __ecereNameSpace__ecere__com__ClassProperty * parent, * left, * right;
540 void (* Set)(struct __ecereNameSpace__ecere__com__Class *, int);
541 int (* Get)(struct __ecereNameSpace__ecere__com__Class *);
542 char * dataTypeString;
543 struct __ecereNameSpace__ecere__com__Instance * dataType;
544 unsigned int constant;
545 } __attribute__ ((gcc_struct));
547 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty;
549 struct __ecereNameSpace__ecere__com__DefinedExpression
551 struct __ecereNameSpace__ecere__com__DefinedExpression * prev, * next;
554 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
555 } __attribute__ ((gcc_struct));
557 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
559 struct __ecereNameSpace__ecere__com__GlobalFunction
561 struct __ecereNameSpace__ecere__com__GlobalFunction * prev, * next;
564 struct __ecereNameSpace__ecere__com__Instance * module;
565 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
566 char * dataTypeString;
567 struct __ecereNameSpace__ecere__com__Instance * dataType;
569 } __attribute__ ((gcc_struct));
571 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
573 struct __ecereNameSpace__ecere__com__EnumClassData
575 struct __ecereNameSpace__ecere__sys__OldList values;
577 } __attribute__ ((gcc_struct));
579 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
581 struct __ecereNameSpace__ecere__com__Watcher
583 struct __ecereNameSpace__ecere__com__Watcher * prev, * next;
584 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *);
585 struct __ecereNameSpace__ecere__com__Instance * object;
586 } __attribute__ ((gcc_struct));
588 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Watcher;
590 static unsigned int __ecereNameSpace__ecere__com__TOTAL_MEM = 0;
592 static unsigned int __ecereNameSpace__ecere__com__OUTSIDE_MEM = 0;
594 struct __ecereNameSpace__ecere__com__MemBlock
596 struct __ecereNameSpace__ecere__com__MemBlock * prev, * next;
597 struct __ecereNameSpace__ecere__com__MemPart * part;
599 } __attribute__ ((gcc_struct));
601 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemBlock;
603 struct __ecereNameSpace__ecere__com__MemPart
608 struct __ecereNameSpace__ecere__com__BlockPool * pool;
609 } __attribute__ ((gcc_struct));
611 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemPart;
613 static int __ecereNameSpace__ecere__com__power15[] =
615 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
618 struct __ecereNameSpace__ecere__com__BlockPool
620 struct __ecereNameSpace__ecere__com__MemBlock * first, * last;
621 struct __ecereNameSpace__ecere__com__MemBlock * free;
622 unsigned int blockSize;
623 unsigned int blockSpace;
626 unsigned int totalSize;
627 unsigned int usedSpace;
628 } __attribute__ ((gcc_struct));
630 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BlockPool;
632 unsigned int __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(struct __ecereNameSpace__ecere__com__BlockPool * this, unsigned int numBlocks)
634 unsigned char * memory = malloc(numBlocks * this->blockSpace);
636 __ecereNameSpace__ecere__com__TOTAL_MEM += numBlocks * this->blockSpace;
640 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)memory;
641 struct __ecereNameSpace__ecere__com__MemPart * part = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__MemPart));
643 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemPart);
645 for(c = 0; c < numBlocks - 1; c++)
648 block->prev = (((void *)0));
649 block->next = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)block + this->blockSpace);
652 part->blocksUsed = 0;
654 part->memory = memory;
655 part->size = numBlocks;
657 block->prev = (((void *)0));
658 block->next = (((void *)0));
659 this->totalSize += numBlocks;
666 struct __ecereNameSpace__ecere__com__MemBlock * __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(struct __ecereNameSpace__ecere__com__BlockPool * this)
669 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
672 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(this, (__simpleStruct0 = this->numBlocks / 2, (1 > __simpleStruct0) ? 1 : __simpleStruct0));
676 block->prev = this->last;
678 block->prev->next = block;
682 this->free = block->next;
683 block->next = (((void *)0));
684 block->part->blocksUsed++;
690 void __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove(struct __ecereNameSpace__ecere__com__BlockPool * this, struct __ecereNameSpace__ecere__com__MemBlock * block)
693 block->prev->next = block->next;
695 block->next->prev = block->prev;
696 if(this->first == block)
697 this->first = block->next;
698 if(this->last == block)
699 this->last = block->prev;
700 block->next = this->free;
702 block->part->blocksUsed--;
704 (*block->part->pool).usedSpace -= block->size;
705 if(!block->part->blocksUsed && this->numBlocks && this->totalSize > this->numBlocks + this->numBlocks / 2)
707 struct __ecereNameSpace__ecere__com__MemBlock * next = this->free, * prev = (((void *)0));
708 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
710 this->free = (((void *)0));
711 this->totalSize -= part->size;
714 if(next->part != part)
726 prev->next = (((void *)0));
727 __ecereNameSpace__ecere__com__TOTAL_MEM -= part->size * this->blockSpace;
728 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemPart);
735 static struct __ecereNameSpace__ecere__com__BlockPool * __ecereNameSpace__ecere__com__pools;
737 static unsigned int __ecereNameSpace__ecere__com__PosFibonacci(unsigned int number)
740 unsigned int last = 1, prev = 0;
741 unsigned int current = 1;
743 for(pos = 0; ; pos++)
748 if(current >= number)
754 static unsigned int __ecereNameSpace__ecere__com__NthFibonacci(unsigned int number)
757 unsigned int last = 1, prev = 0;
758 unsigned int current = 1;
760 for(pos = 0; pos <= number; pos++)
769 static unsigned int __ecereNameSpace__ecere__com__NextFibonacci(unsigned int number)
772 unsigned int last = 1, prev = 0;
773 unsigned int current = 1;
775 for(pos = 0; ; pos++)
780 if(current >= number)
785 static unsigned int __ecereNameSpace__ecere__com__log1_5i(unsigned int number)
790 for(pos = 0; pos < 31; pos++)
792 if(current >= number)
794 current = current * 3 / 2;
801 static unsigned int __ecereNameSpace__ecere__com__pow1_5(unsigned int number)
806 for(pos = 0; pos < number; pos++)
808 current = current * 3 / 2;
812 return (unsigned int)current;
815 static unsigned int __ecereNameSpace__ecere__com__pow1_5i(unsigned int number)
820 for(pos = 0; pos < 31; pos++)
822 if(current >= number)
823 return (unsigned int)current;
824 current = current * 3 / 2;
828 return (unsigned int)current;
831 unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number)
835 for(power = 0; power < 32; power++)
836 if((1L << power) >= number)
841 unsigned int __ecereNameSpace__ecere__com__pow2i(unsigned int number)
843 return 1 << __ecereNameSpace__ecere__com__log2i(number);
846 static unsigned int __ecereNameSpace__ecere__com__memoryInitialized = 0x0;
848 static void __ecereNameSpace__ecere__com__InitMemory()
852 __ecereNameSpace__ecere__com__memoryInitialized = 0x1;
853 __ecereNameSpace__ecere__com__pools = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__BlockPool) * 31);
854 for(c = 0; c < 31; c++)
858 __ecereNameSpace__ecere__com__pools[c].blockSize = __ecereNameSpace__ecere__com__pow1_5(c);
859 if(__ecereNameSpace__ecere__com__pools[c].blockSize % 4)
860 __ecereNameSpace__ecere__com__pools[c].blockSize += 4 - (__ecereNameSpace__ecere__com__pools[c].blockSize % 4);
861 __ecereNameSpace__ecere__com__pools[c].blockSpace = __ecereNameSpace__ecere__com__pools[c].blockSize;
862 __ecereNameSpace__ecere__com__pools[c].blockSpace += sizeof(struct __ecereNameSpace__ecere__com__MemBlock);
863 expansion = (__ecereNameSpace__ecere__com__pools[c].blockSize < 128) ? 1024 : (131072 / __ecereNameSpace__ecere__com__pools[c].blockSize);
865 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(&__ecereNameSpace__ecere__com__pools[c], ((1 > expansion) ? 1 : expansion));
869 static void * __ecereNameSpace__ecere__com___mymalloc(unsigned int size)
871 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
875 unsigned int p = __ecereNameSpace__ecere__com__log1_5i(size);
877 if(!__ecereNameSpace__ecere__com__memoryInitialized)
878 __ecereNameSpace__ecere__com__InitMemory();
881 block = __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(&__ecereNameSpace__ecere__com__pools[p]);
885 __ecereNameSpace__ecere__com__pools[p].usedSpace += size;
890 block = malloc(sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
893 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
894 __ecereNameSpace__ecere__com__OUTSIDE_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
895 block->part = (((void *)0));
899 return block ? ((struct __ecereNameSpace__ecere__com__MemBlock *)block + 1) : (((void *)0));
902 extern void memset(void * area, unsigned char value, unsigned int count);
904 static void * __ecereNameSpace__ecere__com___mycalloc(int n, unsigned int size)
906 void * pointer = __ecereNameSpace__ecere__com___mymalloc(size);
909 memset(pointer, (unsigned char)0, size);
913 static void __ecereNameSpace__ecere__com___myfree(void * pointer)
917 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock));
918 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
919 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
922 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove((&*pool), block);
925 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
926 __ecereNameSpace__ecere__com__OUTSIDE_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
932 extern void * memcpy(void * , const void * , unsigned int size);
934 static void * __ecereNameSpace__ecere__com___myrealloc(void * pointer, unsigned int size)
936 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
937 void * newPointer = (((void *)0));
938 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
939 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
945 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
946 unsigned int mod = ns % 4;
950 if(ns == (*pool).blockSize)
952 newPointer = pointer;
953 (*pool).usedSpace += size - block->size;
959 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
963 __ecereNameSpace__ecere__com__TOTAL_MEM += size - newBlock->size;
964 __ecereNameSpace__ecere__com__OUTSIDE_MEM += size - newBlock->size;
965 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
971 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
972 if(pointer && newPointer)
974 unsigned int __simpleStruct0;
976 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
977 __ecereNameSpace__ecere__com___myfree(pointer);
983 static void * __ecereNameSpace__ecere__com___mycrealloc(void * pointer, unsigned int size)
985 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
986 void * newPointer = (((void *)0));
987 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
988 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
994 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
995 unsigned int mod = ns % 4;
999 if(ns == (*pool).blockSize)
1001 int extra = size - block->size;
1003 newPointer = pointer;
1004 (*pool).usedSpace += extra;
1006 memset((unsigned char *)pointer + block->size, (unsigned char)0, extra);
1012 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
1016 int extra = size - newBlock->size;
1018 __ecereNameSpace__ecere__com__TOTAL_MEM += extra;
1019 __ecereNameSpace__ecere__com__OUTSIDE_MEM += extra;
1020 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1022 memset((unsigned char *)newPointer + newBlock->size, (unsigned char)0, extra);
1023 newBlock->size = size;
1029 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1034 unsigned int __simpleStruct0;
1036 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1037 if(size > block->size)
1038 memset((unsigned char *)newPointer + block->size, (unsigned char)0, size - block->size);
1039 __ecereNameSpace__ecere__com___myfree(pointer);
1042 memset((unsigned char *)newPointer, (unsigned char)0, size);
1048 static void * __ecereNameSpace__ecere__com___malloc(unsigned int size)
1052 pointer = __ecereNameSpace__ecere__com___mymalloc(size + 2 * 0);
1053 return (unsigned char *)pointer + 0;
1056 static void * __ecereNameSpace__ecere__com___calloc(int n, unsigned int size)
1060 pointer = __ecereNameSpace__ecere__com___mycalloc(n, size + 2 * 0);
1061 return (unsigned char *)pointer + 0;
1064 static void __ecereNameSpace__ecere__com___free(void * pointer);
1066 static void * __ecereNameSpace__ecere__com___realloc(void * pointer, unsigned int size)
1070 __ecereNameSpace__ecere__com___free(pointer);
1071 return (((void *)0));
1073 pointer = __ecereNameSpace__ecere__com___myrealloc(pointer, size);
1074 return (unsigned char *)pointer + 0;
1077 static void * __ecereNameSpace__ecere__com___crealloc(void * pointer, unsigned int size)
1080 return (((void *)0));
1081 pointer = __ecereNameSpace__ecere__com___mycrealloc(pointer, size);
1082 return (unsigned char *)pointer + 0;
1085 static void __ecereNameSpace__ecere__com___free(void * pointer)
1089 __ecereNameSpace__ecere__com___myfree(pointer);
1093 void __ecereNameSpace__ecere__com__memswap(unsigned char * a, unsigned char * b, unsigned int size)
1096 unsigned char buffer[1024];
1098 for(c = 0; c < size; )
1100 int s = sizeof buffer;
1104 memcpy(buffer, a + c, s);
1105 memcpy(a + c, b + c, s);
1106 memcpy(b + c, buffer, s);
1111 void __ecereNameSpace__ecere__com__CheckMemory()
1115 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule);
1117 extern char * strchr(char * , int);
1119 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
1121 struct __ecereNameSpace__ecere__sys__OldLink
1123 struct __ecereNameSpace__ecere__sys__OldLink * prev;
1124 struct __ecereNameSpace__ecere__sys__OldLink * next;
1126 } __attribute__ ((gcc_struct));
1128 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1130 extern void * memmove(void * , const void * , unsigned int size);
1132 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property);
1134 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1136 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1138 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1140 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1142 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key);
1144 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1146 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1148 static void __ecereNameSpace__ecere__com__FixDerivativesBase(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Class * mod)
1150 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
1151 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1153 __ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)));
1154 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
1156 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
1157 int type = _class->type;
1158 int size = _class->structSize - _class->offset;
1159 int oldSizeClass = _class->sizeClass;
1160 int sizeClass = _class->sizeClass - _class->offsetClass;
1161 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1162 char * dataTypeString = (((void *)0));
1163 struct __ecereNameSpace__ecere__com__Class * baseClass;
1164 unsigned int offsetBefore = _class->offset;
1165 int offsetClass, totalSizeClass;
1167 for(baseClass = base; baseClass->base; baseClass = baseClass->base)
1169 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1171 if(base->type == 1 && type == 0)
1176 if(base && (_class->type == 0 || _class->type == 5 || _class->type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1185 base = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, "enum");
1188 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1189 offsetClass = base ? (base->templateClass ? base->templateClass->sizeClass : base->sizeClass) : (type == 5 ? 0 : 0);
1190 totalSizeClass = offsetClass + sizeClass;
1191 if(type == 0 || type == 5)
1192 _class->offset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : ((type == 5) ? 0 : 12);
1195 _class->memberOffset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : 0;
1196 _class->typeSize = _class->structSize = _class->memberOffset + size;
1198 else if(type == 2 || type == 4 || type == 3)
1200 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1203 _class->typeSize = dataTypeClass->typeSize;
1204 _class->structSize = 0;
1206 else if(type == 0 || type == 5)
1208 _class->structSize = _class->offset + size;
1209 _class->typeSize = sizeof(void *);
1211 if(_class->type != 1000)
1212 _class->type = type;
1213 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1214 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1215 if(totalSizeClass != oldSizeClass)
1217 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1218 memmove((unsigned char *)_class->data + mod->offsetClass, (unsigned char *)_class->data, totalSizeClass - mod->sizeClass);
1219 if(base->type != 1000 && base->type != 4)
1220 memcpy((unsigned char *)_class->data, (unsigned char *)base->data, totalSizeClass - _class->sizeClass);
1222 memset((unsigned char *)_class->data, (unsigned char)0, totalSizeClass - _class->sizeClass);
1224 _class->offsetClass = offsetClass;
1225 _class->sizeClass = totalSizeClass;
1227 struct __ecereNameSpace__ecere__com__Method * method, * next;
1228 struct __ecereNameSpace__ecere__com__Class * b;
1229 unsigned int needUpdate = (mod != (base->templateClass ? base->templateClass : base) || _class->vTblSize != mod->vTblSize);
1231 if(mod->base && mod->base->base && mod->base->vTblSize > baseClass->vTblSize && needUpdate)
1233 _class->vTblSize += mod->base->vTblSize - baseClass->vTblSize;
1234 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
1235 memmove(_class->_vTbl + mod->base->vTblSize, _class->_vTbl + baseClass->vTblSize, (_class->vTblSize - mod->vTblSize) * sizeof(void *));
1236 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
1238 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
1239 if(method->type == 1)
1240 method->vid += mod->base->vTblSize - baseClass->vTblSize;
1243 for(b = mod->base; b && b != (((void *)0)); b = b->base)
1245 struct __ecereNameSpace__ecere__com__Method * vMethod;
1247 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)))
1249 if(vMethod->type == 1)
1251 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, vMethod->name);
1254 if(method->function)
1255 _class->_vTbl[vMethod->vid] = method->function;
1258 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1259 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1260 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1264 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1265 method->type = vMethod->type;
1266 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(vMethod->dataTypeString);
1267 method->_class = vMethod->_class;
1270 else if(needUpdate || _class->_vTbl[vMethod->vid] == b->_vTbl[vMethod->vid])
1271 _class->_vTbl[vMethod->vid] = _class->base->_vTbl[vMethod->vid];
1276 if(type == 0 || type == 5 || type == 1)
1278 struct __ecereNameSpace__ecere__com__Property * prop;
1279 struct __ecereNameSpace__ecere__com__DataMember * member;
1280 struct __ecereNameSpace__ecere__com__Class * c;
1282 for(c = mod->base; c; c = c->base)
1284 struct __ecereNameSpace__ecere__com__Property * _property;
1286 for(_property = c->membersAndProperties.first; _property; _property = _property->next)
1288 if(_property->isProperty)
1290 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
1295 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
1297 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
1299 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
1301 if(watcher->_property == prop)
1302 watcher->_property = _property;
1304 _property->selfWatchable = 0x1;
1305 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1306 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
1307 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
1308 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
1315 for(member = _class->membersAndProperties.first; member; member = member->next)
1317 int offsetDiff = _class->offset - offsetBefore;
1319 if(!member->isProperty && offsetDiff > 0)
1321 member->offset += offsetDiff;
1322 member->memberOffset += offsetDiff;
1324 member->id += mod->base->memberID;
1326 _class->memberID += mod->base->memberID;
1327 _class->startMemberID += mod->base->memberID;
1330 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, mod);
1332 struct __ecereNameSpace__ecere__com__Class * c;
1334 for(c = mod->base; c; c = c->base)
1336 struct __ecereNameSpace__ecere__com__ClassProperty * _property;
1338 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)))
1340 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
1346 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1348 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
1350 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
1351 char * templateParams = strchr(template->name, '<');
1353 template->base = base->base;
1354 template->_vTbl = base->_vTbl;
1355 template->data = base->data;
1356 template->offset = base->offset;
1357 template->offsetClass = base->offsetClass;
1358 template->sizeClass = base->sizeClass;
1359 template->structSize = base->structSize;
1360 template->vTblSize = base->vTblSize;
1361 __ecereNameSpace__ecere__com__FixDerivativesBase(template, mod);
1366 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
1368 struct __ecereNameSpace__ecere__com__Application
1373 unsigned int isGUIApp;
1374 struct __ecereNameSpace__ecere__sys__OldList allModules;
1375 char * parsedCommand;
1376 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1377 } __attribute__ ((gcc_struct));
1379 extern char * strncpy(char * , const char * , int n);
1381 extern int strcmp(const char * , const char * );
1383 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base);
1385 extern int printf(char * , ...);
1387 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace);
1389 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset);
1391 extern char * strcpy(char * , const char * );
1393 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template);
1395 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg);
1397 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b);
1399 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1401 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1403 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data);
1405 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1407 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)
1409 void * __ecereTemp1;
1411 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
1414 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
1416 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace;
1418 for(c = 0; name[c]; c++)
1420 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
1422 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
1423 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
1425 strncpy(spaceName, name + start, c - start);
1426 spaceName[c - start] = '\0';
1427 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
1430 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
1431 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1432 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1433 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1434 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1435 (*newSpace).name = spaceName;
1436 (*newSpace).parent = nameSpace;
1437 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
1440 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
1441 nameSpace = newSpace;
1453 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (((void *)0));
1454 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
1455 char * dataTypeString = (((void *)0));
1456 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1457 struct __ecereNameSpace__ecere__com__Class * base = (baseName && baseName[0]) ? __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName) : (((void *)0));
1458 unsigned int refine = 0x0;
1460 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1462 if(base->type == 1 && type == 0)
1467 if(base && (type == 0 || type == 5 || type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1471 if(!base || base->type == 1000)
1475 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"))
1477 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1478 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1482 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1483 base->internalDecl = 0x1;
1485 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1488 else if(type == 1 && (!baseName || !baseName[0]))
1490 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "struct");
1491 dataTypeString = name + start;
1496 dataTypeString = "struct __ecereNameSpace__ecere__com__Instance";
1498 dataTypeString = "void *";
1500 dataTypeString = (baseName && baseName[0]) ? baseName : "unsigned int";
1502 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1504 dataTypeString = name + start;
1505 if(base || (!baseName || !baseName[0]) || type == 2 || type == 3)
1507 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"))
1509 if(type == 0 && strcmp(name, "ecere::com::Instance") && strcmp(name, "enum") && strcmp(name, "struct"))
1510 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1512 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1527 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1530 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1532 offsetClass = base ? base->sizeClass : (type == 5 ? 0 : 0);
1533 totalSizeClass = offsetClass + sizeClass;
1534 if((_class = __ecereNameSpace__ecere__com__eSystem_FindClass(module, name)))
1536 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1537 if(!_class->internalDecl)
1540 printf("error: Redefinition of class %s\n", name);
1543 _class->comRedefinition = 0x1;
1546 return (((void *)0));
1548 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, name + start);
1549 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1551 struct __ecereNameSpace__ecere__sys__OldLink * t;
1553 for(t = _class->templatized.first; t; t = t->next)
1555 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1557 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1558 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1562 struct __ecereNameSpace__ecere__com__NameSpace * ns = _class->nameSpace;
1564 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))
1566 struct __ecereNameSpace__ecere__com__NameSpace * parent = (*ns).parent;
1568 __ecereNameSpace__ecere__com__NameSpace_Free(ns);
1569 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*parent).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)ns);
1577 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);
1579 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);
1581 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);
1583 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);
1585 _class = classLink->data;
1586 if(_class && _class->internalDecl)
1588 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1589 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1591 struct __ecereNameSpace__ecere__sys__OldLink * t;
1593 for(t = _class->templatized.first; t; t = t->next)
1595 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1597 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1598 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1602 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
1603 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1607 _class = __ecereNameSpace__ecere__com___calloc(1, sizeof(struct __ecereNameSpace__ecere__com__Class));
1608 _class->methods.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1609 _class->members.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1610 _class->prop.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1611 _class->classProperties.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1612 _class->name = __ecereNameSpace__ecere__sys__CopyString(name + start);
1613 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1618 __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)));
1620 struct __ecereNameSpace__ecere__sys__OldLink * t;
1622 for(t = _class->templatized.first; t; t = t->next)
1624 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1626 __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)));
1632 if(!base && baseName && strcmp(baseName, name))
1634 if(strchr(baseName, '<'))
1636 char templateClassName[1024];
1637 struct __ecereNameSpace__ecere__com__Class * templateBase;
1639 strcpy(templateClassName, baseName);
1640 *strchr(templateClassName, '<') = '\0';
1641 templateBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, templateClassName);
1644 templateBase = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, templateClassName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1645 templateBase->internalDecl = 0x1;
1647 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName);
1651 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1652 base->internalDecl = 0x1;
1656 _class->internalDecl = 0x0;
1659 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1660 if(base && base->type != 1000 && base->type != 4)
1661 memcpy(_class->data, base->data, offsetClass);
1663 memset(_class->data, (unsigned char)0, offsetClass);
1664 memset((unsigned char *)_class->data + offsetClass, (unsigned char)0, sizeClass);
1666 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1667 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1668 _class->defaultAlignment = base ? base->defaultAlignment : 0;
1671 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->classes, _class);
1675 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1676 struct __ecereNameSpace__ecere__sys__OldLink * deriv = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(&base->derivatives, _class);
1678 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1682 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes, _class);
1684 _class->nameSpace = nameSpace;
1686 struct __ecereNameSpace__ecere__sys__OldLink * t;
1688 for(t = _class->templatized.first; t; t = t->next)
1690 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1692 template->nameSpace = nameSpace;
1695 _class->module = module;
1696 _class->base = base;
1700 struct __ecereNameSpace__ecere__com__Class * sClass;
1702 for(sClass = base; sClass; sClass = sClass->base)
1704 if(sClass->templateClass)
1705 sClass = sClass->templateClass;
1706 numParams += sClass->templateParams.count;
1710 if(_class->templateArgs)
1712 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1714 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1715 _class->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
1716 _class->numParams = numParams;
1717 for(sClass = _class; sClass; sClass = sClass->base)
1719 struct __ecereNameSpace__ecere__com__Class * prevClass;
1720 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1723 if(sClass->templateClass)
1724 sClass = sClass->templateClass;
1725 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
1727 if(prevClass->templateClass)
1728 prevClass = prevClass->templateClass;
1729 id += prevClass->templateParams.count;
1731 if(base->templateArgs)
1733 for(param = sClass->templateParams.first; param; param = param->next)
1735 _class->templateArgs[id] = base->templateArgs[id];
1736 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &_class->templateArgs[id]);
1743 _class->memberID = _class->startMemberID = (base && (type == 0 || type == 5 || type == 1)) ? base->memberID : 0;
1744 if(type == 0 || type == 5)
1745 _class->offset = (base && base->structSize && base->type != 1000) ? base->structSize : ((type == 5) ? 0 : 12);
1748 _class->memberOffset = (base && base->structSize && base->type != 1000) ? base->structSize : 0;
1749 _class->typeSize = _class->structSize = _class->memberOffset + size;
1751 else if(type == 2 || type == 4 || type == 3)
1753 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1756 _class->typeSize = dataTypeClass->typeSize;
1757 _class->structSize = 0;
1759 else if(type == 0 || type == 5)
1761 _class->structSize = _class->offset + size;
1762 _class->typeSize = sizeof(void *);
1764 _class->offsetClass = offsetClass;
1765 _class->sizeClass = totalSizeClass;
1766 _class->Constructor = (void *)Constructor;
1767 _class->Destructor = Destructor;
1768 if(_class->type != 1000)
1769 _class->type = type;
1771 _class->computeSize = 0x1;
1773 _class->computeSize = 0x0;
1774 _class->inheritanceAccess = inheritanceAccess;
1778 _class->base = base = enumBase;
1780 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1782 if(base && base->type != 4)
1785 data->largest = ((struct __ecereNameSpace__ecere__com__EnumClassData *)base->data)->largest;
1788 if(base && base->vTblSize)
1790 _class->vTblSize = base->vTblSize;
1791 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1792 _class->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(int (*)()) * _class->vTblSize);
1793 memcpy(_class->_vTbl, base->_vTbl, sizeof(int (*)()) * _class->vTblSize);
1797 struct __ecereNameSpace__ecere__sys__OldLink * link = (link = __ecereNameSpace__ecere__com__eSystem_New0(12), link->data = _class, link);
1799 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->base->derivatives, link);
1801 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
1805 return (((void *)0));
1808 static void __ecereNameSpace__ecere__com__DataMember_Free(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
1810 struct __ecereNameSpace__ecere__com__DataMember * member;
1811 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1813 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->name), parentMember->name = 0);
1814 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->dataTypeString), parentMember->dataTypeString = 0);
1815 while((member = parentMember->members.first))
1817 __ecereNameSpace__ecere__com__DataMember_Free(member);
1818 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&parentMember->members, member);
1820 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentMember->membersAlpha)))
1822 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentMember->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1826 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1828 struct __ecereNameSpace__ecere__sys__NamedLink
1830 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
1831 struct __ecereNameSpace__ecere__sys__NamedLink * next;
1834 } __attribute__ ((gcc_struct));
1836 static void __ecereNameSpace__ecere__com__FreeEnumValue(struct __ecereNameSpace__ecere__sys__NamedLink * value)
1838 (__ecereNameSpace__ecere__com__eSystem_Delete(value->name), value->name = 0);
1841 static void __ecereNameSpace__ecere__com__FreeTemplateArg(struct __ecereNameSpace__ecere__com__Class * template, struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, int id)
1846 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1849 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1856 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template)
1858 if(template->templateArgs)
1860 struct __ecereNameSpace__ecere__com__Class * _class;
1862 for(_class = template; _class; _class = _class->base)
1864 struct __ecereNameSpace__ecere__com__Class * prevClass;
1865 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1868 if(_class->templateClass)
1869 _class = _class->templateClass;
1870 for(prevClass = _class->base; prevClass; prevClass = prevClass->base)
1872 if(prevClass->templateClass)
1873 prevClass = prevClass->templateClass;
1874 id += prevClass->templateParams.count;
1876 if(id < template->numParams)
1878 for(param = _class->templateParams.first; param; param = param->next)
1883 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1886 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1898 static void __ecereNameSpace__ecere__com__FreeTemplate(struct __ecereNameSpace__ecere__com__Class * template)
1900 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
1902 if(template->nameSpace)
1904 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
1906 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1908 __ecereNameSpace__ecere__com__FreeTemplateArgs(template);
1909 (__ecereNameSpace__ecere__com__eSystem_Delete(template->fullName), template->fullName = 0);
1910 (__ecereNameSpace__ecere__com__eSystem_Delete(template->name), template->name = 0);
1911 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs), template->templateArgs = 0);
1912 while((deriv = template->derivatives.first))
1914 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
1915 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&template->derivatives, deriv);
1917 __ecereNameSpace__ecere__com___free(template);
1920 static void __ecereNameSpace__ecere__com__FreeTemplates(struct __ecereNameSpace__ecere__com__Class * _class)
1922 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
1924 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
1926 __ecereNameSpace__ecere__com__FreeTemplates(deriv->data);
1928 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1929 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1930 while((template = _class->templatized.first))
1932 __ecereNameSpace__ecere__com__FreeTemplates(template->data);
1933 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
1934 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
1938 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
1940 void __ecereNameSpace__ecere__com__eClass_Unregister(struct __ecereNameSpace__ecere__com__Class * _class)
1942 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1943 struct __ecereNameSpace__ecere__com__DataMember * member;
1944 struct __ecereNameSpace__ecere__com__Method * method;
1945 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
1946 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
1947 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1949 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1950 __ecereNameSpace__ecere__com__FreeTemplates(_class);
1951 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1952 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1953 while((template = _class->templatized.first))
1955 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
1956 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
1958 while((member = _class->membersAndProperties.first))
1960 if(!member->isProperty && (member->type == 1 || member->type == 2))
1961 __ecereNameSpace__ecere__com__DataMember_Free(member);
1962 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
1963 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
1964 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, member);
1966 while((member = _class->conversions.first))
1968 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
1969 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
1970 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->conversions, member);
1972 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->prop)))
1974 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1976 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->members)))
1978 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1980 while((classProp = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->classProperties)))
1982 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->name), classProp->name = 0);
1983 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->dataTypeString), classProp->dataTypeString = 0);
1984 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)classProp);
1986 while((method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods)))
1988 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1989 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1990 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1992 if(_class->type == 4)
1994 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1996 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&data->values, (void *)__ecereNameSpace__ecere__com__FreeEnumValue);
1998 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->delayedCPValues, (((void *)0)));
1999 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->selfWatchers, (((void *)0)));
2002 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
2004 for(deriv = base->derivatives.first; deriv; deriv = deriv->next)
2006 if(deriv->data == _class)
2010 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
2012 while((deriv = _class->derivatives.first))
2014 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2015 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->derivatives, deriv);
2017 if(_class->nameSpace)
2019 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
2021 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2023 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->name), _class->name = 0);
2024 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
2025 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2026 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->data), _class->data = 0);
2027 while((param = _class->templateParams.first))
2032 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.dataTypeString), param->defaultArg.dataTypeString = 0);
2035 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.memberString), param->defaultArg.memberString = 0);
2040 if(param->type != 1)
2041 (__ecereNameSpace__ecere__com__eSystem_Delete(param->dataTypeString), param->dataTypeString = 0);
2042 (__ecereNameSpace__ecere__com__eSystem_Delete(param->name), param->name = 0);
2043 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templateParams, param);
2045 __ecereNameSpace__ecere__com___free(_class);
2048 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, unsigned int key);
2050 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__ScanNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2052 struct __ecereNameSpace__ecere__sys__BinaryTree * tree = (struct __ecereNameSpace__ecere__sys__BinaryTree *)((unsigned char *)nameSpace + (unsigned int)listOffset);
2053 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find((&*tree), (unsigned int)name);
2054 struct __ecereNameSpace__ecere__com__NameSpace * child;
2058 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)))
2060 link = __ecereNameSpace__ecere__com__ScanNameSpace(child, name, listOffset);
2068 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2074 for(c = 0; (ch = name[c]); c++)
2080 if(level == 0 && (ch == '.' || (ch == ':' && name[c + 1] == ':')))
2082 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
2083 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
2085 memcpy(spaceName, name + start, c - start);
2086 spaceName[c - start] = '\0';
2087 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&nameSpace->nameSpaces, spaceName);
2088 __ecereNameSpace__ecere__com___free(spaceName);
2090 return (((void *)0));
2091 nameSpace = newSpace;
2092 if(level == 0 && ch == ':')
2099 return __ecereNameSpace__ecere__com__ScanNameSpace(nameSpace, name + start, listOffset);
2101 return (((void *)0));
2104 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchModule(struct __ecereNameSpace__ecere__com__Instance * module, char * name, void * listOffset, unsigned int searchPrivate)
2106 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2107 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2111 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace, name, listOffset);
2115 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace, name, listOffset);
2118 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules.first; subModule; subModule = subModule->next)
2120 if(searchPrivate || subModule->importMode == 1)
2122 link = __ecereNameSpace__ecere__com__SearchModule(subModule->module, name, listOffset, 0x0);
2127 return (((void *)0));
2130 extern int isspace(int c);
2132 long long __ecereNameSpace__ecere__com___strtoi64(char * string, char ** endString, int base)
2134 long long value = 0;
2139 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2151 if(ch == (char)0 && string[c + 1] == 'x')
2164 for(; (ch = string[c]); c++)
2168 else if(ch >= '1' && ch <= '9')
2170 else if(ch >= 'a' && ch <= 'z')
2172 else if(ch >= 'A' && ch <= 'Z')
2176 *endString = string + c;
2186 *endString = string + c;
2190 return sign * value;
2193 uint64 __ecereNameSpace__ecere__com___strtoui64(char * string, char ** endString, int base)
2200 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2212 if(ch == (char)0 && string[c + 1] == 'x')
2225 for(; (ch = string[c]); c++)
2229 else if(ch >= '1' && ch <= '9')
2231 else if(ch >= 'a' && ch <= 'z')
2233 else if(ch >= 'A' && ch <= 'Z')
2237 *endString = string + c;
2247 *endString = string + c;
2251 return sign * value;
2254 extern char * strcat(char * , const char * );
2256 extern int strlen(const char * );
2258 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
2260 void * __ecereTemp1;
2264 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2266 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);
2269 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2273 char noTemplateName[1024];
2274 char * templateParams = strchr(name, '<');
2278 strncpy(noTemplateName, name, templateParams - name);
2279 noTemplateName[templateParams - name] = '\0';
2282 strcpy(noTemplateName, name);
2283 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);
2285 link = __ecereNameSpace__ecere__com__SearchModule(module, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2288 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
2289 struct __ecereNameSpace__ecere__com__Class * templatedClass = (((void *)0));
2290 char className[1024];
2292 strcpy(className, _class->fullName);
2293 strcat(className, templateParams);
2294 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);
2297 link = __ecereNameSpace__ecere__com__SearchModule(module, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2300 if(_class && templateParams)
2302 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct1 =
2306 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct0 =
2311 templatedClass = __ecereNameSpace__ecere__com__eSystem_New0(368);
2312 *templatedClass = *_class;
2313 templatedClass->templateClass = _class;
2314 templatedClass->fullName = __ecereNameSpace__ecere__sys__CopyString(className);
2315 templatedClass->name = __ecereNameSpace__ecere__sys__CopyString(templatedClass->fullName + strlen(_class->fullName) - strlen(_class->name));
2316 __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)));
2317 templatedClass->templateArgs = (((void *)0));
2318 templatedClass->numParams = 0;
2319 templatedClass->derivatives = __simpleStruct0;
2320 templatedClass->templatized = __simpleStruct1;
2321 __ecereNameSpace__ecere__com__ComputeClassParameters(templatedClass, templateParams, module);
2322 __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)));
2324 return templatedClass;
2328 return (((void *)0));
2331 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg)
2336 arg->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(arg->dataTypeString);
2341 arg->memberString = __ecereNameSpace__ecere__sys__CopyString(arg->memberString);
2346 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
2348 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
2350 extern double strtod(char * , char * * );
2352 extern int sprintf(char * , char * , ...);
2354 extern char * strstr(char * , const char * );
2356 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);
2358 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2360 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2362 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule)
2365 char * nextParamStart = templateParams ? (templateParams + 1) : (((void *)0));
2366 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam = (((void *)0));
2367 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0)), * sClass;
2370 struct __ecereNameSpace__ecere__com__Class * _class = templatedClass->templateClass ? templatedClass->templateClass : templatedClass;
2372 for(sClass = _class; sClass; sClass = sClass->base)
2374 if(sClass->templateClass)
2375 sClass = sClass->templateClass;
2376 numParams += sClass->templateParams.count;
2378 if(templatedClass->templateArgs)
2379 __ecereNameSpace__ecere__com__FreeTemplateArgs(templatedClass);
2380 (__ecereNameSpace__ecere__com__eSystem_Delete(templatedClass->templateArgs), templatedClass->templateArgs = 0);
2381 templatedClass->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
2382 templatedClass->numParams = numParams;
2383 if(_class != templatedClass)
2386 if(templatedClass->base && templatedClass->base->templateArgs && _class == templatedClass)
2388 struct __ecereNameSpace__ecere__com__Class * sClass;
2390 memcpy(templatedClass->templateArgs, templatedClass->base->templateArgs, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams - templatedClass->templateParams.count));
2391 for(sClass = templatedClass->base; sClass; sClass = sClass->base)
2393 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2394 struct __ecereNameSpace__ecere__com__Class * prevClass;
2397 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
2399 if(prevClass->templateClass)
2400 prevClass = prevClass->templateClass;
2401 id += prevClass->templateParams.count;
2403 if(sClass->templateClass)
2404 sClass = sClass->templateClass;
2405 for(param = sClass->templateParams.first; param; param = param->next)
2406 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[id++]);
2409 while(nextParamStart)
2411 char * paramStart = nextParamStart;
2415 while(*paramStart == ' ')
2417 paramEnd = paramStart;
2418 while((ch = *paramEnd, ch && (level > 0 || (ch != '>' && ch != ','))))
2426 nextParamStart = (ch == ',') ? (paramEnd + 1) : (((void *)0));
2427 while(*paramEnd == ' ')
2429 if(paramEnd > paramStart)
2431 char * ptr, * equal = (((void *)0));
2433 for(ptr = paramStart; ptr <= paramEnd; ptr++)
2443 char * end = equal - 1;
2448 strncpy(ident, paramStart, end + 1 - paramStart);
2449 ident[end + 1 - paramStart] = (char)0;
2450 for(sClass = _class; sClass; sClass = sClass->base)
2452 if(sClass->templateClass)
2453 sClass = sClass->templateClass;
2454 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
2456 if(!strcmp(curParam->name, ident))
2461 struct __ecereNameSpace__ecere__com__Class * nextClass;
2462 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prevParam;
2465 for(prevParam = curParam->prev; prevParam; prevParam = prevParam->prev)
2467 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2469 if(nextClass->templateClass)
2470 nextClass = nextClass->templateClass;
2471 curParamID += nextClass->templateParams.count;
2482 curParam = curParam->next;
2487 for(sClass = lastClass ? lastClass->base : _class; sClass; sClass = sClass->base)
2489 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2492 if(sClass->templateClass)
2493 sClass = sClass->templateClass;
2494 for(param = sClass->templateParams.first; param; param = param->next, curParamID++)
2501 struct __ecereNameSpace__ecere__com__Class * nextClass;
2503 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2505 if(nextClass->templateClass)
2506 nextClass = nextClass->templateClass;
2507 curParamID += nextClass->templateParams.count;
2517 struct __ecereNameSpace__ecere__com__ClassTemplateArgument argument =
2526 while(*equal == ' ')
2528 memcpy(value, equal, paramEnd - equal);
2529 value[paramEnd - equal] = (char)0;
2533 memcpy(value, paramStart, paramEnd - paramStart);
2534 value[paramEnd - paramStart] = (char)0;
2536 __ecereNameSpace__ecere__sys__TrimRSpaces(value, value);
2537 switch(curParam->type)
2540 argument.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value);
2541 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, value);
2542 if(!argument.dataTypeClass)
2543 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->application, value);
2544 if(!argument.dataTypeClass)
2545 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, value);
2549 struct __ecereNameSpace__ecere__com__Class * expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, curParam->dataTypeString);
2552 expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->application, curParam->dataTypeString);
2555 expClass->_vTbl[__ecereVMethodID_class_OnGetDataFromString](expClass, &argument.expression, value);
2557 else if(value[0] == '\"')
2559 char * endQuote = value + strlen(value) - 1;
2561 if(*endQuote != '\"')
2564 argument.expression.p = __ecereNameSpace__ecere__sys__CopyString(value + 1);
2566 else if(value[0] == '\'')
2569 unsigned int ch = __ecereNameSpace__ecere__sys__UTF8GetChar(value + 1, &nb);
2571 argument.expression.ui = ch;
2573 else if(!strcmp(curParam->dataTypeString, "uint"))
2575 argument.expression.ui = strtoul(value, (((void *)0)), 0);
2577 else if(!strcmp(curParam->dataTypeString, "char"))
2579 argument.expression.c = (char)strtol(value, (((void *)0)), 0);
2581 else if(!strcmp(curParam->dataTypeString, "byte"))
2583 argument.expression.uc = (unsigned char)strtoul(value, (((void *)0)), 0);
2585 else if(!strcmp(curParam->dataTypeString, "short"))
2587 argument.expression.s = (short)strtol(value, (((void *)0)), 0);
2589 else if(!strcmp(curParam->dataTypeString, "uint16"))
2591 argument.expression.us = (unsigned short)strtoul(value, (((void *)0)), 0);
2593 else if(!strcmp(curParam->dataTypeString, "int64"))
2595 argument.expression.i64 = __ecereNameSpace__ecere__com___strtoi64(value, (((void *)0)), 0);
2597 else if(!strcmp(curParam->dataTypeString, "uint64"))
2599 argument.expression.ui64 = __ecereNameSpace__ecere__com___strtoui64(value, (((void *)0)), 0);
2601 else if(!strcmp(curParam->dataTypeString, "float"))
2603 argument.expression.f = (float)strtod(value, (((void *)0)));
2605 else if(!strcmp(curParam->dataTypeString, "double"))
2607 argument.expression.d = strtod(value, (((void *)0)));
2611 argument.expression.i = strtol(value, (((void *)0)), 0);
2616 argument.memberString = __ecereNameSpace__ecere__sys__CopyString(value);
2619 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, curParam, curParamID);
2620 templatedClass->templateArgs[curParamID] = argument;
2624 if(templatedClass == _class)
2626 struct __ecereNameSpace__ecere__com__Class * sClass = _class;
2628 struct __ecereNameSpace__ecere__com__Class * nextClass;
2629 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2631 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2633 if(nextClass->templateClass)
2634 nextClass = nextClass->templateClass;
2635 curParamID += nextClass->templateParams.count;
2637 for(param = sClass->templateParams.first; param; param = param->next)
2639 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2641 templatedClass->templateArgs[curParamID] = param->defaultArg;
2642 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2643 if(param->type == 0 && param->defaultArg.dataTypeString)
2645 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2646 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2647 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, param->defaultArg.dataTypeString);
2648 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2649 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2655 if(templatedClass->base && templatedClass->base->templateArgs && numParams - _class->templateParams.count)
2657 int c = numParams - _class->templateParams.count - 1;
2659 for(sClass = _class->base; sClass; sClass = sClass->base)
2661 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2663 if(sClass->templateClass)
2664 sClass = sClass->templateClass;
2665 for(param = sClass->templateParams.last; param; param = param->prev)
2667 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2668 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * baseArg = &templatedClass->base->templateArgs[c];
2670 if(!(*arg).dataTypeString)
2672 *arg = templatedClass->base->templateArgs[c];
2673 __ecereNameSpace__ecere__com__CopyTemplateArg(param, arg);
2674 if(param->type == 0)
2676 if((*arg).dataTypeClass && strchr((*arg).dataTypeString, '<') && (*arg).dataTypeClass->templateArgs)
2678 struct __ecereNameSpace__ecere__com__Class * expClass = (*arg).dataTypeClass;
2679 struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0));
2682 char templateString[1024];
2684 sprintf(templateString, "%s<", expClass->templateClass->fullName);
2685 for(cClass = expClass; cClass; cClass = cClass->base)
2688 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2690 for(param = cClass->templateParams.first; param; param = param->next)
2693 struct __ecereNameSpace__ecere__com__Class * sClass;
2694 struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg;
2696 for(sClass = expClass->base; sClass; sClass = sClass->base)
2697 id += sClass->templateParams.count;
2698 arg = expClass->templateArgs[id];
2700 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2701 int p = numParams - _class->templateParams.count;
2703 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2705 if(cParam->type == 0 && arg.dataTypeString && !strcmp(cParam->name, arg.dataTypeString))
2707 arg.dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2708 arg.dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2725 strcat(argument, arg.member->name);
2730 if(arg.dataTypeString)
2731 strcat(argument, arg.dataTypeString);
2738 strcat(templateString, ", ");
2739 if(lastParam != p - 1)
2741 strcat(templateString, param->name);
2742 strcat(templateString, " = ");
2744 strcat(templateString, argument);
2753 int len = strlen(templateString);
2755 if(templateString[len - 1] == '>')
2756 templateString[len++] = ' ';
2757 templateString[len++] = '>';
2758 templateString[len++] = '\0';
2760 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2761 (*arg).dataTypeString = __ecereNameSpace__ecere__sys__CopyString(templateString);
2762 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, templateString);
2763 if(!(*arg).dataTypeClass)
2764 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, templateString);
2768 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2769 int p = numParams - _class->templateParams.count;
2771 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2773 if(cParam->type == 0 && (*baseArg).dataTypeString && !strcmp(cParam->name, (*baseArg).dataTypeString))
2775 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2776 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2777 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2778 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2790 struct __ecereNameSpace__ecere__com__Class * sClass;
2792 for(sClass = _class; sClass; sClass = sClass->base)
2795 struct __ecereNameSpace__ecere__com__Class * nextClass;
2796 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2798 if(sClass->templateClass)
2799 sClass = sClass->templateClass;
2800 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2802 if(nextClass->templateClass)
2803 nextClass = nextClass->templateClass;
2804 curParamID += nextClass->templateParams.count;
2806 for(param = sClass->templateParams.first; param; param = param->next)
2808 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2810 templatedClass->templateArgs[curParamID] = param->defaultArg;
2811 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2812 if(param->type == 0 && param->defaultArg.dataTypeString)
2814 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2815 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2816 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, param->defaultArg.dataTypeString);
2817 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2818 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2826 int c = numParams - 1;
2828 for(sClass = _class; sClass; sClass = sClass->base)
2830 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2832 if(sClass->templateClass)
2833 sClass = sClass->templateClass;
2834 for(param = sClass->templateParams.last; param; param = param->prev)
2836 if(param->type == 0)
2838 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2839 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2840 struct __ecereNameSpace__ecere__com__Class * dClass;
2841 int p = numParams - 1;
2843 for(dClass = _class; dClass; dClass = dClass->base)
2845 if(dClass->templateClass)
2846 dClass = dClass->templateClass;
2847 for(cParam = dClass->templateParams.last; cParam; cParam = cParam->prev, p--)
2849 if(cParam->type == 0 && (*arg).dataTypeString && !strcmp(cParam->name, (*arg).dataTypeString))
2851 if(templatedClass->templateArgs[p].dataTypeString && c != p)
2853 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2854 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2855 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2856 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2867 struct __ecereNameSpace__ecere__com__Class * tClass;
2868 int c = numParams - 1;
2870 for(tClass = _class; tClass; tClass = tClass->base)
2872 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2874 if(tClass->templateClass)
2875 tClass = tClass->templateClass;
2876 for(param = tClass->templateParams.last; param; param = param->prev)
2878 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2880 if(param->type == 1 && (*arg).memberString)
2882 struct __ecereNameSpace__ecere__com__Class * memberClass = templatedClass;
2883 char * memberString = (*arg).memberString;
2884 char * colon = strstr(memberString, "::");
2885 char * memberName = memberString;
2888 memberName = colon + 2;
2891 memberString = param->defaultArg.memberString;
2892 colon = memberString ? strstr(memberString, "::") : (((void *)0));
2896 char className[1024];
2897 struct __ecereNameSpace__ecere__com__Class * sClass;
2899 memcpy(className, memberString, colon - memberString);
2900 className[colon - memberString] = '\0';
2901 for(sClass = _class; sClass; sClass = sClass->base)
2903 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2904 struct __ecereNameSpace__ecere__com__Class * nextClass;
2907 if(sClass->templateClass)
2908 sClass = sClass->templateClass;
2909 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2911 if(nextClass->templateClass)
2912 nextClass = nextClass->templateClass;
2913 id += nextClass->templateParams.count;
2915 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
2917 if(cParam->type == 0 && !strcmp(cParam->name, className) && templatedClass->templateArgs[id].dataTypeString)
2919 strcpy(className, templatedClass->templateArgs[id].dataTypeString);
2924 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, className);
2926 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, className);
2928 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, className);
2932 switch(param->memberType)
2935 (*arg).member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
2938 (*arg).method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
2941 (*arg).prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
2952 unsigned int __ecereNameSpace__ecere__com__DefaultFunction()
2957 unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
2959 if(!_class && !from)
2961 if(_class && from && (_class->templateClass || from->templateClass))
2963 if(__ecereNameSpace__ecere__com__eClass_IsDerived(_class->templateClass ? _class->templateClass : _class, from->templateClass ? from->templateClass : from))
2965 if(!from->templateClass)
2967 else if(!_class->templateClass && _class == from->templateClass)
2971 struct __ecereNameSpace__ecere__com__Class * sClass;
2973 for(sClass = from; sClass; sClass = sClass->base)
2975 if(sClass->templateParams.first)
2977 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2978 struct __ecereNameSpace__ecere__com__Class * nextClass;
2981 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2982 p += nextClass->templateParams.count;
2983 for(param = sClass->templateParams.first; param; param = param->next, p++)
2985 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &_class->templateArgs[p];
2986 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * fArg = &from->templateArgs[p];
2988 if(param->type == 0)
2990 if((*arg).dataTypeString != (*fArg).dataTypeString && (*arg).dataTypeString && (*fArg).dataTypeString && strcmp((*arg).dataTypeString, (*fArg).dataTypeString))
2993 else if(param->type == 1)
2995 if((*arg).member != (*fArg).member)
2998 else if(param->type == 2)
3000 if((*arg).expression.ui64 != (*fArg).expression.ui64)
3014 for(; _class && from; _class = _class->base)
3016 if(_class == from || _class->templateClass == from || (_class->type == 1000 && from->name && !strcmp(_class->name, from->name)))
3023 static void __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(struct __ecereNameSpace__ecere__com__Class * base, char * name, int vid, void * origFunction, char * type)
3025 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3027 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3029 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3030 struct __ecereNameSpace__ecere__com__Method * method, * next;
3031 void * function = origFunction;
3034 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3035 memmove(_class->_vTbl + vid + 1, _class->_vTbl + vid, (_class->vTblSize - vid - 1) * sizeof(void *));
3036 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3039 if(method->function)
3040 function = method->function;
3043 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
3044 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3045 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3049 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3051 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type);
3052 method->_class = base;
3055 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
3057 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
3058 if(method->type == 1)
3061 _class->_vTbl[vid] = function;
3063 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3065 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3067 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3069 template->_vTbl = _class->_vTbl;
3072 if(_class->derivatives.first || _class->templatized.first)
3073 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, vid, function, type);
3076 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3078 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
3080 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3082 template->_vTbl = base->_vTbl;
3083 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(template, name, vid, origFunction, type);
3088 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3092 struct __ecereNameSpace__ecere__com__Class * base;
3094 for(base = _class; base; base = base->base)
3096 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3100 if(method->type == 1)
3102 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3103 void * oldFunction = _class->_vTbl[method->vid];
3105 if(method->vid > _class->vTblSize)
3108 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3109 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3111 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3113 if(derivClass->_vTbl[method->vid] == oldFunction)
3114 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3117 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3119 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3121 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3123 for(deriv = template->derivatives.first; deriv; deriv = deriv->next)
3125 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3127 if(derivClass->_vTbl[method->vid] == oldFunction)
3128 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3139 base = (((void *)0));
3147 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);
3149 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3153 return (((void *)0));
3156 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3160 struct __ecereNameSpace__ecere__com__Class * base;
3162 for(base = _class; base; base = base->base)
3164 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3168 if(method->type == 1)
3169 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3171 base = (((void *)0));
3177 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);
3179 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3180 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3181 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3182 if(_class->derivatives.first || _class->templatized.first)
3183 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, method->vid, function ? function : (void *)__ecereNameSpace__ecere__com__DefaultFunction, type);
3187 return (((void *)0));
3190 static void __ecereNameSpace__ecere__com__FixDerivativeProperty(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Property * _property)
3192 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3194 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3196 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3197 struct __ecereNameSpace__ecere__com__Property * prop;
3198 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3200 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
3204 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
3206 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
3208 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
3210 if(watcher->_property == prop)
3211 watcher->_property = _property;
3213 _property->selfWatchable = 0x1;
3214 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
3215 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
3216 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
3217 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
3220 for(prop = _class->membersAndProperties.first; prop; prop = prop->next)
3223 _class->startMemberID++;
3224 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3228 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)
3230 void * __ecereTemp1;
3231 struct __ecereNameSpace__ecere__com__Property * _property = (((void *)0));
3235 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, (name ? name : dataType)))
3237 _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));
3239 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, _property);
3241 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->conversions, _property);
3242 __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)));
3243 if(!_property->conversion)
3245 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3252 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property)
3254 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3255 struct __ecereNameSpace__ecere__sys__NamedLink * value, * next;
3257 for(value = _class->delayedCPValues.first; value; value = next)
3260 if(!strcmp(value->name, _property->name))
3262 _property->Set(_class, (int)value->data);
3263 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->delayedCPValues, value);
3266 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3268 __ecereNameSpace__ecere__com__SetDelayedCPValues(deriv->data, _property);
3272 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt)
3274 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name))
3276 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);
3278 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)_property);
3279 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
3282 return (((void *)0));
3285 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3287 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (((void *)0));
3291 struct __ecereNameSpace__ecere__com__Class * origClass = _class;
3293 for(; _class; _class = _class->base)
3295 _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name);
3299 if(!_property && origClass->type == 4)
3301 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(origClass->module, "enum");
3303 _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(enumClass, name);
3309 int __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3311 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3313 if(_property && _property->Get && _property->Get != (void *)1)
3315 int result = _property->Get(_class);
3322 void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int value)
3324 void * __ecereTemp1;
3325 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3330 _property->Set(_class, value);
3334 __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)));
3338 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3342 for(; _class; _class = _class->base)
3344 struct __ecereNameSpace__ecere__com__Method * method;
3346 if(_class->templateClass)
3347 _class = _class->templateClass;
3348 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3349 if(method && (method->memberAccess == 1 || _class->module == module || !method->dataTypeString))
3351 if(!method->dataTypeString)
3353 if(_class->module != module)
3355 if(method->memberAccess == 1)
3356 module = _class->module;
3359 return (((void *)0));
3368 if(_class->inheritanceAccess == 2 && _class->module != module)
3372 return (((void *)0));
3375 static unsigned int __ecereNameSpace__ecere__com__ConstructInstance(void * instance, struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3377 if(_class->templateClass)
3378 _class = _class->templateClass;
3379 if(_class->base && from != _class->base)
3381 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class->base, from))
3384 if(_class->Initialize)
3386 void (* Initialize)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)_class->Initialize;
3388 _class->Initialize = (((void *)0));
3389 Initialize(_class->module);
3391 if(_class->Constructor)
3393 if(!_class->Constructor(instance))
3395 for(; _class; _class = _class->base)
3397 if(_class->templateClass)
3398 _class = _class->templateClass;
3399 if(_class->Destructor)
3400 _class->Destructor(instance);
3405 (_class->templateClass ? _class->templateClass : _class)->count++;
3409 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class)
3411 struct __ecereNameSpace__ecere__com__Instance * instance = (((void *)0));
3415 instance = __ecereNameSpace__ecere__com___calloc(1, _class->structSize);
3416 if(_class->type == 0)
3418 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3419 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3421 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, (((void *)0))))
3423 __ecereNameSpace__ecere__com___free(instance);
3424 instance = (((void *)0));
3430 void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance ** instancePtr, struct __ecereNameSpace__ecere__com__Class * _class)
3432 if(_class && instancePtr && *instancePtr)
3434 unsigned int wasApp = 0x0, wasGuiApp = 0x0;
3435 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eSystem_Renew(*instancePtr, sizeof(unsigned char) * (_class->structSize));
3436 struct __ecereNameSpace__ecere__com__Class * fromClass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3438 *instancePtr = instance;
3439 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);
3440 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")))
3442 struct __ecereNameSpace__ecere__com__Instance * module;
3443 struct __ecereNameSpace__ecere__com__Instance * app = (struct __ecereNameSpace__ecere__com__Instance *)instance;
3444 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3445 struct __ecereNameSpace__ecere__com__Class * _class;
3446 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
3448 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
3449 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = app;
3450 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)))
3452 struct __ecereNameSpace__ecere__sys__OldLink * t;
3454 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3455 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3457 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3459 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3462 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)))
3464 struct __ecereNameSpace__ecere__sys__OldLink * t;
3466 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3467 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3469 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3471 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3474 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)))
3475 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)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.defines); 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__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3478 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)))
3479 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3480 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)))
3481 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3482 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)))
3483 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3484 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)))
3485 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3486 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)))
3488 struct __ecereNameSpace__ecere__sys__OldLink * t;
3490 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3491 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3493 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3495 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3498 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)))
3499 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3500 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)))
3501 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3502 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)))
3503 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3504 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)))
3505 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace;
3506 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->classes.first; _class; _class = _class->next)
3508 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3510 _class->module = (struct __ecereNameSpace__ecere__com__Instance *)app;
3511 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3513 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3515 template->module = _class->module;
3518 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
3520 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes.first; _class; _class = _class->next)
3522 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3524 _class->module = module;
3525 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3527 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3529 template->module = _class->module;
3533 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->application = app;
3536 struct __ecereNameSpace__ecere__com__Class * base;
3538 for(base = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; base && base->type == 0 && base->count; base = base->base)
3539 (base->templateClass ? base->templateClass : base)->count--;
3541 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3542 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3543 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, fromClass))
3545 __ecereNameSpace__ecere__com___free(instance);
3546 *instancePtr = (((void *)0));
3551 void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance)
3555 struct __ecereNameSpace__ecere__com__Class * _class, * base;
3556 unsigned int ownVtbl;
3558 ownVtbl = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl != ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl;
3559 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3561 if(_class->templateClass)
3562 _class = _class->templateClass;
3563 if(_class->destructionWatchOffset)
3565 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
3566 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
3568 for(watcher = (*watchers).first; watcher; watcher = next)
3570 next = watcher->next;
3571 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*watchers), watcher);
3572 watcher->callback(watcher->object, instance);
3573 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
3576 base = _class->base;
3577 if(base && base->type == 1000)
3578 base = (((void *)0));
3579 if(_class->Destructor)
3580 _class->Destructor(instance);
3582 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3584 if(_class->templateClass)
3585 _class = _class->templateClass;
3586 base = _class->base;
3587 (_class->templateClass ? _class->templateClass : _class)->count--;
3588 if(_class->type == 0 && !_class->count && !_class->module)
3590 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
3595 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl), ((struct __ecereNameSpace__ecere__com__Instance * )(char * )instance)->_vTbl = 0);
3597 __ecereNameSpace__ecere__com___free(instance);
3601 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3605 for(; _class; _class = _class->base)
3607 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3609 if(_class->templateClass)
3610 _class = _class->templateClass;
3611 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name);
3614 struct __ecereNameSpace__ecere__com__Property * _property = (struct __ecereNameSpace__ecere__com__Property *)link->data;
3616 if(_property->memberAccess == 1 || _class->module == module || !_property->dataTypeString)
3618 if(!_property->dataTypeString)
3620 if(_class->module != module)
3622 if(_property->memberAccess == 1)
3623 module = _class->module;
3626 return (((void *)0));
3636 if(_class->inheritanceAccess == 2 && _class->module != module)
3640 return (((void *)0));
3643 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)
3645 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3646 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3648 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(alist, name);
3651 dataMember = link->data;
3652 if(dataMember->type == 0 && (dataMember->memberAccess == 1 || searchPrivate || !dataMember->dataTypeString))
3655 *offset += dataMember->offset;
3657 *id = dataMember->id;
3660 return (((void *)0));
3662 for(dataMember = list->first; dataMember; dataMember = dataMember->next)
3664 if(!dataMember->isProperty && (dataMember->memberAccess == 1 || searchPrivate) && !dataMember->name && (dataMember->type == 1 || dataMember->type == 2))
3666 struct __ecereNameSpace__ecere__com__DataMember * childMember;
3668 if(subMemberStackPos)
3669 subMemberStack[(*subMemberStackPos)++] = dataMember;
3670 childMember = __ecereNameSpace__ecere__com__FindDataMember(&dataMember->members, &dataMember->membersAlpha, name, offset, id, searchPrivate, subMemberStack, subMemberStackPos);
3674 *offset += dataMember->offset;
3676 *id += dataMember->id;
3679 if(subMemberStackPos)
3680 (*subMemberStackPos)--;
3683 return (((void *)0));
3686 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)
3688 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3690 if(subMemberStackPos)
3691 *subMemberStackPos = 0;
3694 for(; _class; _class = _class->base)
3696 if(_class->templateClass)
3697 _class = _class->templateClass;
3698 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3701 if(!dataMember->dataTypeString)
3703 if(_class->module != module)
3705 if(dataMember->memberAccess == 1)
3706 module = _class->module;
3709 return (((void *)0));
3712 dataMember = (((void *)0));
3716 dataMember->_class = _class->templateClass ? _class->templateClass : _class;
3720 if(_class->inheritanceAccess == 2 && _class->module != module)
3727 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)
3729 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3731 if(subMemberStackPos)
3732 *subMemberStackPos = 0;
3737 for(; _class; _class = _class->base)
3739 if(_class->templateClass)
3740 _class = _class->templateClass;
3741 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, offset, (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3744 if(!dataMember->dataTypeString)
3746 if(_class->module != module)
3748 if(dataMember->memberAccess == 1)
3749 module = _class->module;
3752 return (((void *)0));
3755 dataMember = (((void *)0));
3759 dataMember->_class = _class;
3763 if(_class->inheritanceAccess == 2 && _class->module != module)
3770 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)
3772 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3774 if(subMemberStackPos)
3775 *subMemberStackPos = 0;
3778 for(; _class; _class = _class->base)
3780 if(_class->templateClass)
3781 _class = _class->templateClass;
3782 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), id, _class->module == module, subMemberStack, subMemberStackPos);
3785 if(!dataMember->dataTypeString)
3787 if(_class->module != module)
3789 if(dataMember->memberAccess == 1)
3790 module = _class->module;
3793 return (((void *)0));
3796 dataMember = (((void *)0));
3800 dataMember->_class = _class;
3804 if(_class->inheritanceAccess == 2 && _class->module != module)
3811 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)
3815 *curMember = (*curMember)->next;
3816 if(subMemberStackPos && *subMemberStackPos > 0 && subMemberStack[*subMemberStackPos - 1]->type == 1)
3818 *curMember = subMemberStack[--(*subMemberStackPos)];
3819 *curMember = (*curMember)->next;
3821 if(subMemberStackPos && *subMemberStackPos > 0)
3823 while(*curMember && ((*curMember)->memberAccess == 2))
3824 *curMember = (*curMember)->next;
3827 while(*curMember && (*curMember)->name)
3829 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3832 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3833 if(dataMember && dataMember->memberAccess != 2)
3835 *curMember = dataMember;
3839 *curMember = (*curMember)->next;
3841 if(subMemberStackPos)
3843 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3845 subMemberStack[(*subMemberStackPos)++] = *curMember;
3846 *curMember = (*curMember)->members.first;
3847 while(*curMember && ((*curMember)->memberAccess == 2))
3848 *curMember = (*curMember)->next;
3856 if(subMemberStackPos && *subMemberStackPos)
3858 *curMember = subMemberStack[--(*subMemberStackPos)];
3859 *curMember = (*curMember)->next;
3863 struct __ecereNameSpace__ecere__com__Class * lastCurClass = *curClass;
3865 if(*curClass == _class)
3867 for(*curClass = _class; (*curClass)->base != lastCurClass && (*curClass)->base->type != 1000 && (*curClass)->inheritanceAccess != 2; *curClass = (*curClass)->base)
3869 *curMember = (*curClass)->membersAndProperties.first;
3871 if(subMemberStackPos && *subMemberStackPos > 0)
3873 while(*curMember && ((*curMember)->memberAccess == 2))
3874 *curMember = (*curMember)->next;
3877 while(*curMember && (*curMember)->name)
3879 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3882 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3883 if(dataMember && dataMember->memberAccess != 2)
3885 *curMember = dataMember;
3889 *curMember = (*curMember)->next;
3891 if(subMemberStackPos)
3893 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3895 subMemberStack[(*subMemberStackPos)++] = *curMember;
3896 *curMember = (*curMember)->members.first;
3897 while(*curMember && (*curMember)->memberAccess == 2)
3898 *curMember = (*curMember)->next;
3905 void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function)
3907 if(instance && name)
3909 struct __ecereNameSpace__ecere__com__Class * _class;
3911 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
3913 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3915 if(method && method->type == 1)
3917 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl == ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl)
3919 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(void *) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
3920 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);
3922 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3928 unsigned int __ecereNameSpace__ecere__com__eInstance_IsDerived(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Class * from)
3932 struct __ecereNameSpace__ecere__com__Class * _class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3934 for(; _class; _class = _class->base)
3943 void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance)
3946 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount++;
3949 void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance)
3953 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount--;
3954 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount <= 0)
3956 __ecereNameSpace__ecere__com__eInstance_Delete(instance);
3961 static void __ecereNameSpace__ecere__com__FixOffsets(struct __ecereNameSpace__ecere__com__Class * _class)
3963 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3965 _class->structSize += _class->base->structSize - _class->offset;
3966 _class->offset = _class->base->structSize;
3967 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3968 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
3971 void __ecereNameSpace__ecere__com__eClass_Resize(struct __ecereNameSpace__ecere__com__Class * _class, int newSize)
3973 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3975 _class->structSize = newSize;
3976 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3977 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
3980 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)
3982 void * __ecereTemp1;
3986 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
3988 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3992 int __simpleStruct0;
3994 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
3995 if(_class->memberOffset % alignment)
3996 _class->memberOffset += alignment - (_class->memberOffset % alignment);
3998 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));
3999 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4000 _class->memberOffset += size;
4001 __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)));
4005 return (((void *)0));
4008 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)
4010 void * __ecereTemp1;
4012 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&member->membersAlpha, name))
4014 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4018 int __simpleStruct0;
4020 member->structAlignment = (__simpleStruct0 = member->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4021 if(member->memberOffset % alignment)
4022 member->memberOffset += alignment - (member->memberOffset % alignment);
4024 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));
4025 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&member->members, dataMember);
4026 if(member->type == 1)
4028 if(size > member->memberOffset)
4029 member->memberOffset = size;
4032 member->memberOffset += size;
4033 __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)));
4036 return (((void *)0));
4039 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode)
4041 void * __ecereTemp1;
4043 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));
4046 static void __ecereNameSpace__ecere__com__SetMemberClass(struct __ecereNameSpace__ecere__com__DataMember * member, struct __ecereNameSpace__ecere__com__Class * _class)
4048 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4050 member->_class = _class;
4051 for(dataMember = member->members.first; dataMember; dataMember = dataMember->next)
4052 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4055 unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4057 void * __ecereTemp1;
4058 int __simpleStruct0, __simpleStruct1;
4060 if(dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&addTo->membersAlpha, dataMember->name))
4062 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&addTo->members, dataMember);
4063 if(dataMember->name)
4064 __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)));
4065 dataMember->_class = addTo->_class;
4066 dataMember->id = addTo->memberID;
4067 if(dataMember->type == 1)
4068 addTo->memberID += 1;
4070 addTo->memberID += dataMember->memberID;
4071 addTo->structAlignment = (__simpleStruct0 = addTo->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4072 dataMember->offset = (addTo->type == 1) ? 0 : addTo->memberOffset;
4073 if(addTo->type == 1)
4075 if(dataMember->memberOffset > addTo->memberOffset)
4076 addTo->memberOffset = dataMember->memberOffset;
4079 addTo->memberOffset += dataMember->memberOffset;
4083 unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4085 void * __ecereTemp1;
4086 int __simpleStruct0, __simpleStruct1;
4088 if(!_class || _class->comRedefinition || (dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, dataMember->name)))
4090 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4091 if(dataMember->name)
4092 __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)));
4093 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4094 dataMember->id = _class->memberID;
4095 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4096 if(dataMember->type == 1)
4097 _class->memberID += 1;
4099 _class->memberID += dataMember->memberID;
4100 dataMember->offset = _class->memberOffset;
4101 _class->memberOffset += dataMember->memberOffset;
4105 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)
4107 void * __ecereTemp1;
4109 if(_class && name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4113 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);
4115 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, bitMember);
4118 bitMember->pos = (bitPos == -1) ? _class->memberOffset : bitPos;
4119 bitMember->size = bitSize;
4120 _class->memberOffset = bitMember->pos + bitMember->size;
4121 for(c = 0; c < bitSize; c++)
4127 bitMember->mask = mask << bitMember->pos;
4129 __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)));
4132 return (((void *)0));
4135 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__Module_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int ensureCOM)
4137 void * __ecereTemp1;
4138 unsigned int (stdcall * Load)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4139 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4140 struct __ecereNameSpace__ecere__com__Instance * module;
4142 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)
4144 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4147 if(ensureCOM && (!strcmp(name, "ecereCOM") || !strcmp(name, "ecere")))
4149 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)
4151 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecere") || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM"))
4157 void * library = (((void *)0));
4159 if(ensureCOM && !strcmp(name, "ecereCOM"))
4161 Load = __ecereDll_Load_ecere;
4162 Unload = __ecereDll_Unload_ecere;
4166 library = Instance_Module_Load(name, &Load, &Unload);
4170 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4171 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4172 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library = library;
4173 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4174 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = Unload;
4175 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->origImportType = 0;
4178 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4179 module = (((void *)0));
4182 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules, module);
4184 if(ensureCOM && !strcmp(name, "ecere") && module)
4186 name = !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM") ? "ecere" : "ecereCOM";
4187 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))
4189 struct __ecereNameSpace__ecere__com__Instance * module;
4191 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)
4193 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4198 Load = __ecereDll_Load_ecere;
4199 Unload = __ecereDll_Unload_ecere;
4200 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4201 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4202 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library = (((void *)0));
4203 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4204 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = Unload;
4207 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4208 module = (((void *)0));
4210 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules, module);
4216 __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)));
4218 module->_refCount++;
4226 __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)));
4228 module->_refCount++;
4233 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4235 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x1);
4238 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4240 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x0);
4243 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))
4245 void * __ecereTemp1;
4246 struct __ecereNameSpace__ecere__com__Instance * module;
4248 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)
4250 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4257 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4258 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4259 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4260 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->origImportType = 1;
4261 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = (void *)Unload;
4264 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4265 module = (((void *)0));
4268 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 300)))->allModules, module);
4274 __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)));
4276 module->_refCount++;
4281 void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module)
4283 struct __ecereNameSpace__ecere__sys__OldLink * m;
4285 for(m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->modules.first; m; m = m->next)
4287 if(m->data == module)
4292 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->modules, m);
4293 (__ecereNameSpace__ecere__com__eInstance_DecRef(module), module = 0);
4297 void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value)
4299 void * __ecereTemp1;
4301 if(_class && _class->type == 4)
4303 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4304 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4306 for(item = data->values.first; item; item = item->next)
4307 if(!strcmp(item->name, string))
4311 __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)));
4312 if(value > data->largest)
4313 data->largest = value;
4318 int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
4320 void * __ecereTemp1;
4322 if(_class && _class->type == 4)
4324 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4325 int value = data->largest + 1;
4326 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4328 for(item = data->values.first; item; item = item->next)
4329 if(!strcmp(item->name, string))
4333 __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)));
4334 if(value > data->largest)
4335 data->largest = value;
4342 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace)
4344 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
4346 (__ecereNameSpace__ecere__com__eSystem_Delete(parentNameSpace->name), parentNameSpace->name = 0);
4347 while((nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentNameSpace->nameSpaces)))
4349 __ecereNameSpace__ecere__com__NameSpace_Free(nameSpace);
4350 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentNameSpace->nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace);
4354 static void __ecereNameSpace__ecere__com__Application_Destructor(struct __ecereNameSpace__ecere__com__Instance * app)
4356 if(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->parsedCommand)
4358 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->argv), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + 300)))->argv = 0);
4359 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->parsedCommand), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + 300)))->parsedCommand = 0);
4363 static unsigned int __ecereNameSpace__ecere__com__Module_Constructor(struct __ecereNameSpace__ecere__com__Instance * module)
4365 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4366 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4367 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4368 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4369 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4370 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4371 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4372 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4376 static void __ecereNameSpace__ecere__com__Module_Destructor(struct __ecereNameSpace__ecere__com__Instance * module)
4378 struct __ecereNameSpace__ecere__com__Class * _class;
4379 struct __ecereNameSpace__ecere__com__DefinedExpression * def;
4380 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
4381 struct __ecereNameSpace__ecere__com__Instance * m;
4382 struct __ecereNameSpace__ecere__com__SubModule * handle;
4384 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)
4386 struct __ecereNameSpace__ecere__com__SubModule * next;
4388 for(handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->modules.first; handle; handle = next)
4390 next = handle->next;
4391 if(handle->module == module)
4392 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->modules, handle);
4395 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload)
4397 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->origImportType == 1)
4399 unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload;
4405 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload;
4411 struct __ecereNameSpace__ecere__com__Instance * ourWorld = __ecereClass___ecereNameSpace__ecere__com__Class->module;
4412 void * ourHandle = (((void *)0));
4414 while((handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules.last))
4416 struct __ecereNameSpace__ecere__com__Instance * depModule = handle->module;
4418 if(depModule == ourWorld)
4420 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules, handle);
4425 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules, handle);
4426 (__ecereNameSpace__ecere__com__eInstance_DecRef(depModule), depModule = 0);
4431 (__ecereNameSpace__ecere__com__eSystem_Delete(ourHandle), ourHandle = 0);
4432 (__ecereNameSpace__ecere__com__eInstance_DecRef(ourWorld), ourWorld = 0);
4435 for(; (_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes.first); )
4437 if(_class->nameSpace)
4439 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
4440 struct __ecereNameSpace__ecere__sys__OldLink * t;
4442 for(t = _class->templatized.first; t; t = t->next)
4444 struct __ecereNameSpace__ecere__com__Class * template = t->data;
4445 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4447 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
4448 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
4449 template->nameSpace = (((void *)0));
4451 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
4452 _class->nameSpace = (((void *)0));
4454 _class->module = (((void *)0));
4455 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes, _class);
4456 if(!_class->count || _class->type != 0)
4457 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
4462 for(; (def = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines.first); )
4466 struct __ecereNameSpace__ecere__com__BTNamedLink * defLink;
4468 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)))
4469 if(defLink->data == def)
4471 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*def->nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)defLink);
4475 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
4476 (__ecereNameSpace__ecere__com__eSystem_Delete(def->value), def->value = 0);
4477 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines, def);
4479 for(; (function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions.first); )
4481 if(function->nameSpace)
4483 struct __ecereNameSpace__ecere__com__BTNamedLink * functionLink;
4485 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)))
4486 if(functionLink->data == function)
4488 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*function->nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)functionLink);
4492 (__ecereNameSpace__ecere__com__eSystem_Delete(function->name), function->name = 0);
4493 (__ecereNameSpace__ecere__com__eSystem_Delete(function->dataTypeString), function->dataTypeString = 0);
4494 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions, function);
4496 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name), ((struct __ecereNameSpace__ecere__com__Module * )(((char * )module + 12)))->name = 0);
4497 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace);
4498 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace);
4499 if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application)
4500 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->allModules, module);
4502 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace);
4503 Instance_Module_Free(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library);
4506 static int __ecereNameSpace__ecere__com__GetEnumSize(struct __ecereNameSpace__ecere__com__Class * _class)
4508 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4510 return data->largest + 1;
4513 char * strlwr(char * string)
4517 for(c = 0; string[c]; c++)
4518 if(string[c] >= 'A' && string[c] <= 'Z')
4519 string[c] += 'a' - 'A';
4523 char * strupr(char * string)
4527 for(c = 0; string[c]; c++)
4528 if(string[c] >= 'a' && string[c] <= 'z')
4529 string[c] -= 'a' - 'A';
4533 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4535 void * __ecereTemp1;
4536 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4539 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
4541 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace;
4544 for(c = 0; name[c]; c++)
4546 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4548 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4549 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4551 strncpy(spaceName, name + start, c - start);
4552 spaceName[c - start] = '\0';
4553 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4556 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4557 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4558 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4559 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4560 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4561 (*newSpace).name = spaceName;
4562 (*newSpace).parent = nameSpace;
4563 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4566 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4567 nameSpace = newSpace;
4576 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).defines, name + start))
4578 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);
4580 __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)));
4581 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines, def);
4584 return (((void *)0));
4587 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4589 void * __ecereTemp1;
4590 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4593 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
4595 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 300)))->systemNameSpace;
4598 for(c = 0; name[c]; c++)
4600 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4602 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4603 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4605 strncpy(spaceName, name + start, c - start);
4606 spaceName[c - start] = '\0';
4607 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4610 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4611 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4612 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4613 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4614 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4615 (*newSpace).name = spaceName;
4616 (*newSpace).parent = nameSpace;
4617 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4620 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4621 nameSpace = newSpace;
4630 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).functions, name + start))
4632 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);
4634 __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)));
4635 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions, function);
4638 return (((void *)0));
4641 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4645 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4647 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);
4650 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines, 0x1);
4654 return (((void *)0));
4657 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4661 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4663 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);
4666 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions, 0x1);
4670 return (((void *)0));
4673 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size)
4675 return __ecereNameSpace__ecere__com___realloc(memory, size);
4678 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size)
4680 return __ecereNameSpace__ecere__com___crealloc(memory, size);
4683 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size)
4685 return __ecereNameSpace__ecere__com___malloc(size);
4688 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size)
4690 return __ecereNameSpace__ecere__com___calloc(1, size);
4693 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory)
4696 __ecereNameSpace__ecere__com___free(memory);
4699 void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4701 if(instance && _property && _property->selfWatchable)
4703 struct __ecereNameSpace__ecere__com__Class * _class;
4705 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4707 struct __ecereNameSpace__ecere__com__SelfWatcher * selfWatcher, * next;
4709 for(selfWatcher = _class->selfWatchers.first; selfWatcher; selfWatcher = next)
4711 next = selfWatcher->next;
4712 if(selfWatcher->_property == _property)
4713 selfWatcher->callback(instance);
4719 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4721 if(instance && _property && _property->isWatchable)
4723 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4724 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
4726 for(watcher = (*watchers).first; watcher; watcher = next)
4728 next = watcher->next;
4729 watcher->callback(watcher->object, instance);
4734 void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property)
4736 if(!_property->isWatchable)
4738 struct __ecereNameSpace__ecere__com__Class * _class = _property->_class;
4740 if(!_class->computeSize)
4742 _property->watcherOffset = _class->structSize;
4743 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4744 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4746 _property->isWatchable = 0x1;
4750 void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(struct __ecereNameSpace__ecere__com__Class * _class)
4752 if(!_class->destructionWatchOffset)
4754 _class->destructionWatchOffset = _class->structSize;
4755 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4756 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4760 void __ecereNameSpace__ecere__com__eProperty_SelfWatch(struct __ecereNameSpace__ecere__com__Class * _class, char * name, void (* callback)(void *))
4762 void * __ecereTemp1;
4766 struct __ecereNameSpace__ecere__com__Property * _property = __ecereNameSpace__ecere__com__eClass_FindProperty(_class, name, _class->module);
4769 _property = __ecereNameSpace__ecere__com__eClass_AddProperty(_class, name, (((void *)0)), (((void *)0)), (((void *)0)), 4);
4770 __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)));
4771 _property->selfWatchable = 0x1;
4775 void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void *, void *))
4777 void * __ecereTemp1;
4779 if(_property->isWatchable)
4781 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4783 __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)));
4787 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 *))
4789 void * __ecereTemp1;
4790 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->destructionWatchOffset);
4792 __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)));
4795 void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object)
4797 if(instance && (!_property || _property->isWatchable))
4801 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4802 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4804 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4805 if(watcher->object == object)
4807 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4813 struct __ecereNameSpace__ecere__com__Class * _class, * base;
4815 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
4817 if(_class->destructionWatchOffset)
4819 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
4820 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4822 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4824 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4828 for(_property = (struct __ecereNameSpace__ecere__com__Property *)_class->membersAndProperties.first; _property; _property = _property->next)
4830 if(_property->isProperty && _property->isWatchable)
4832 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4833 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4835 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4836 if(watcher->object == object)
4838 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4843 base = _class->base;
4844 if(base && base->type == 1000)
4845 base = (((void *)0));
4851 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eClass_GetDesigner(struct __ecereNameSpace__ecere__com__Class * _class)
4853 for(; _class; _class = _class->base)
4855 if(_class->designerClass)
4856 return (struct __ecereNameSpace__ecere__com__Class *)__ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->designerClass);
4858 return (((void *)0));
4861 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eInstance_GetDesigner(struct __ecereNameSpace__ecere__com__Instance * instance)
4864 return __ecereNameSpace__ecere__com__eClass_GetDesigner(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class);
4865 return (((void *)0));
4868 unsigned int __ecereNameSpace__ecere__com__LocateModule(char * name, char * fileName)
4870 return Instance_LocateModule(name, fileName);
4873 extern void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module);
4875 extern void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module);
4877 extern double sin(struct __ecereNameSpace__ecere__com__Instance * number);
4879 extern double sinh(struct __ecereNameSpace__ecere__com__Instance * number);
4881 extern double cosh(struct __ecereNameSpace__ecere__com__Instance * number);
4883 extern double tanh(struct __ecereNameSpace__ecere__com__Instance * number);
4885 extern double sqrt(double number);
4887 extern double cos(struct __ecereNameSpace__ecere__com__Instance * number);
4889 extern double tan(struct __ecereNameSpace__ecere__com__Instance * number);
4891 extern struct __ecereNameSpace__ecere__com__Instance * atan2(double y, double x);
4893 extern struct __ecereNameSpace__ecere__com__Instance * asin(double number);
4895 extern struct __ecereNameSpace__ecere__com__Instance * acos(double number);
4897 extern struct __ecereNameSpace__ecere__com__Instance * atan(double number);
4899 extern double pow(double number, double number2);
4901 extern double fmod(double x, double y);
4903 extern double fabs(double number);
4905 extern double log(double number);
4907 extern double log10(double number);
4909 extern double ceil(double number);
4911 extern double floor(double number);
4913 extern double exp(double number);
4915 extern void qsort(void * , unsigned int, unsigned int, int (* )(void * , void * ));
4917 extern int system(const char * );
4919 extern int atoi(const char * );
4921 extern float atof(const char * );
4923 extern int tolower(int);
4925 extern int toupper(int);
4927 extern unsigned int isdigit(int);
4929 extern char * getenv(const char * name);
4931 extern int rename(const char * oldpath, const char * newpath);
4933 extern char * strncat(char * , const char * , int n);
4935 extern int strcasecmp(const char * , const char * );
4937 extern int strncasecmp(const char * , const char * , int n);
4939 extern int strncmp(const char * , const char * , int n);
4941 extern int vsprintf(char * , const char * , __builtin_va_list);
4943 extern int puts(char * );
4945 extern int fputs(char * , void * stream);
4947 extern int isalnum(int c);
4949 extern int isalpha(int c);
4951 extern int islower(int c);
4953 extern int isupper(int c);
4955 extern int isprint(int c);
4957 static void __ecereNameSpace__ecere__com__LoadCOM(struct __ecereNameSpace__ecere__com__Instance * module)
4959 struct __ecereNameSpace__ecere__com__Class * applicationClass;
4960 struct __ecereNameSpace__ecere__com__Class * enumClass, * structClass, * boolClass;
4961 struct __ecereNameSpace__ecere__com__Class * moduleClass;
4962 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "class", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4964 baseClass->type = 1000;
4965 baseClass->memberOffset = 0;
4966 baseClass->offset = 0;
4967 baseClass->structSize = 0;
4968 baseClass->typeSize = 0;
4970 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);
4972 instanceClass->type = 1000;
4973 instanceClass->fixed = 0x1;
4974 instanceClass->memberOffset = 0;
4975 instanceClass->offset = 0;
4976 instanceClass->memberID = -3;
4977 instanceClass->startMemberID = -3;
4978 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_vTbl", "int (**)()", sizeof(int (**)()), 4, 1);
4979 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_class", "ecere::com::Class", sizeof(struct __ecereNameSpace__ecere__com__Class *), 4, 1);
4980 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_refCount", "int", sizeof(int (**)()), 4, 1);
4982 __ecereNameSpace__ecere__com__InitializeDataTypes1(module);
4983 enumClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "enum", (((void *)0)), 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), (((void *)0)), (((void *)0)), module, 4, 1);
4984 __ecereNameSpace__ecere__com__eClass_AddClassProperty(enumClass, "enumSize", "int", (((void *)0)), __ecereNameSpace__ecere__com__GetEnumSize)->constant = 0x1;
4985 enumClass->type = 1000;
4986 (__ecereNameSpace__ecere__com__eSystem_Delete(enumClass->dataTypeString), enumClass->dataTypeString = 0);
4987 enumClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
4988 structClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "struct", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4989 structClass->type = 1000;
4990 structClass->memberOffset = 0;
4991 structClass->offset = 0;
4992 structClass->structSize = 0;
4993 structClass->typeSize = 0;
4994 __ecereNameSpace__ecere__com__InitializeDataTypes(module);
4995 boolClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "bool", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4996 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "true", (unsigned int)0x1);
4997 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "false", (unsigned int)0x0);
4998 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);
4999 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnLoad", "bool()", (((void *)0)), 1);
5000 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnUnload", "void()", (((void *)0)), 1);
5001 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Load", "Module(char * name, AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, 1);
5002 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Unload", "void(Module module)", __ecereNameSpace__ecere__com__eModule_Unload, 1);
5003 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "application", "Application", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
5004 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "classes", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5005 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "defines", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5006 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "functions", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5007 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "modules", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5008 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "prev", "Module", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
5009 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "next", "Module", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
5010 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "name", "char *", sizeof(char *), 4, 1);
5011 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "library", "void *", sizeof(void *), 4, 1);
5012 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "Unload", "void *", sizeof(void *), 4, 1);
5013 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "importType", "ImportType", sizeof(int), 4, 1);
5014 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "origImportType", "ImportType", sizeof(int), 4, 1);
5015 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "privateNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
5016 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "publicNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
5017 moduleClass->fixed = 0x1;
5018 moduleClass->count++;
5019 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);
5020 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(applicationClass, "Main", "void()", (((void *)0)), 1);
5021 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argc", "int", sizeof(int), 4, 1);
5022 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argv", "char **", sizeof(char **), 4, 1);
5023 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "exitCode", "int", sizeof(int), 4, 1);
5024 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "isGUIApp", "bool", sizeof(unsigned int), 4, 1);
5025 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "allModules", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
5026 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "parsedCommand", "char *", sizeof(char *), 4, 1);
5027 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "systemNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
5028 applicationClass->fixed = 0x1;
5029 applicationClass->count++;
5030 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sin", "double sin(Angle number)", sin, module, 4);
5031 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sinh", "double sinh(Angle number)", sinh, module, 4);
5032 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cosh", "double cosh(Angle number)", cosh, module, 4);
5033 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tanh", "double tanh(Angle number)", tanh, module, 4);
5034 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sqrt", "double sqrt(double number)", sqrt, module, 4);
5035 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cos", "double cos(Angle number)", cos, module, 4);
5036 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tan", "double tan(Angle number)", tan, module, 4);
5037 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan2", "Angle atan2(double y, double x)", atan2, module, 4);
5038 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("asin", "Angle asin(double number)", asin, module, 4);
5039 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("acos", "Angle acos(double number)", acos, module, 4);
5040 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan", "Angle atan(double number)", atan, module, 4);
5041 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("pow", "double pow(double number, double number2)", pow, module, 4);
5042 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fmod", "double fmod(double x, double y)", fmod, module, 4);
5043 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fabs", "double fabs(double number)", fabs, module, 4);
5044 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log", "double log(double number)", log, module, 4);
5045 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log10", "double log10(double number)", log10, module, 4);
5046 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ceil", "double ceil(double number)", ceil, module, 4);
5047 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("floor", "double floor(double number)", floor, module, 4);
5048 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("exp", "double exp(double number)", exp, module, 4);
5049 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("qsort", "void qsort(void *, uint, uint, int (*)(void *, void *))", qsort, module, 4);
5050 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtod", "double strtod(char*, char**)", strtod, module, 4);
5051 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtol", "int strtol(char*, char**, int base)", strtol, module, 4);
5052 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("system", "int system(const char*)", system, module, 4);
5053 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atoi", "int atoi(const char*)", atoi, module, 4);
5054 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atof", "float atof(const char*)", atof, module, 4);
5055 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tolower", "int tolower(int)", tolower, module, 4);
5056 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("toupper", "int toupper(int)", toupper, module, 4);
5057 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isdigit", "bool isdigit(int)", isdigit, module, 4);
5058 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memset", "void memset(void * area, byte value, uint count)", memset, module, 4);
5059 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("getenv", "char * getenv(const char * name)", getenv, module, 4);
5060 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("rename", "int rename(const char *oldpath, const char *newpath)", rename, module, 4);
5061 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlen", "int strlen(const char *)", strlen, module, 4);
5062 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcat", "char * strcat(char *, const char *)", strcat, module, 4);
5063 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncat", "char * strncat(char *, const char *, int n)", strncat, module, 4);
5064 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strchr", "char * strchr(char *, int)", strchr, module, 4);
5065 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strstr", "char * strstr(char *, const char *)", strstr, module, 4);
5066 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("fstrcmp", "(GetRuntimePlatform() == win32) ? strcmpi : strcmp", module, 4);
5067 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strcmpi", "strcasecmp", module, 4);
5068 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strnicmp", "strncasecmp", module, 4);
5069 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcasecmp", "int strcasecmp(const char *, const char *)", strcasecmp, module, 4);
5070 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncasecmp", "int strncasecmp(const char *, const char *, int n)", strncasecmp, module, 4);
5071 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcmp", "int strcmp(const char *, const char *)", strcmp, module, 4);
5072 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncmp", "int strncmp(const char *, const char *, int n)", strncmp, module, 4);
5073 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlwr", "char * strlwr(char *)", strlwr, module, 4);
5074 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strupr", "char * strupr(char *)", strupr, module, 4);
5075 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcpy", "char * strcpy(char *, const char *)", strcpy, module, 4);
5076 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncpy", "char * strncpy(char *, const char *, int n)", strncpy, module, 4);
5077 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memcpy", "void * memcpy(void *, const void *, uint size)", memcpy, module, 4);
5078 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memmove", "void * memmove(void *, const void *, uint size)", memmove, module, 4);
5079 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sprintf", "int sprintf(char *, char *, ...)", sprintf, module, 4);
5080 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("snprintf", "int sprintf(char *, int, char *, ...)", snprintf, module, 4);
5081 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("printf", "int printf(char *, ...)", printf, module, 4);
5082 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsprintf", "int vsprintf(char*, const char*, __builtin_va_list)", vsprintf, module, 4);
5083 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsnprintf", "int vsnprintf(char*, int, const char*, __builtin_va_list)", vsnprintf, module, 4);
5084 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("puts", "int puts(char *)", puts, module, 4);
5085 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fputs", "int fputs(char *, void * stream)", fputs, module, 4);
5086 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalnum", "int isalnum(int c)", isalnum, module, 4);
5087 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isspace", "int isspace(int c)", isspace, module, 4);
5088 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalpha", "int isalpha(int c)", isalpha, module, 4);
5089 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("islower", "int islower(int c)", islower, module, 4);
5090 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isupper", "int isupper(int c)", isupper, module, 4);
5091 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isprint", "int isprint(int c)", isprint, module, 4);
5092 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoul", "unsigned long strtoul(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5095 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[])
5097 struct __ecereNameSpace__ecere__com__Instance * app;
5099 app = __ecereNameSpace__ecere__com___calloc(1, 428);
5100 __ecereNameSpace__ecere__com__Module_Constructor(app);
5101 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5102 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5103 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5104 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->systemNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5105 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);
5106 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->application = app;
5107 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->allModules.offset = 12 + (unsigned int)&(*((struct __ecereNameSpace__ecere__com__Module *)0)).prev;
5108 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 300)))->isGUIApp = guiApp;
5109 __ecereNameSpace__ecere__com__LoadCOM(app);
5110 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)app)->_class = __ecereNameSpace__ecere__com__eSystem_FindClass(app, "Application");
5114 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)
5116 void * __ecereTemp1;
5120 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5122 for(param = _class->templateParams.first; param; param = param->next)
5124 if(!strcmp(param->name, name))
5127 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));
5128 if(defaultArg != (((void *)0)))
5130 param->defaultArg = *defaultArg;
5131 __ecereNameSpace__ecere__com__CopyTemplateArg(param, ¶m->defaultArg);
5133 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templateParams, param);
5136 return (((void *)0));
5139 void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base)
5143 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
5144 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5147 void * first = base->templateParams.first;
5148 int count = base->templateParams.count;
5150 base->templateParams.first = (((void *)0));
5151 base->templateParams.count = 0;
5152 __ecereNameSpace__ecere__com__FreeTemplateArgs(base);
5153 (__ecereNameSpace__ecere__com__eSystem_Delete(base->templateArgs), base->templateArgs = 0);
5154 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(base);
5155 base->templateParams.first = first;
5156 base->templateParams.count = count;
5158 for(param = base->templateParams.first; param; param = param->next)
5160 if(param->type == 1 && param->defaultArg.memberString)
5162 struct __ecereNameSpace__ecere__com__Class * memberClass = base;
5163 char * colon = strstr(param->defaultArg.memberString, "::");
5168 char className[1024];
5169 struct __ecereNameSpace__ecere__com__Class * sClass;
5171 memcpy(className, param->defaultArg.memberString, colon - param->defaultArg.memberString);
5172 className[colon - param->defaultArg.memberString] = '\0';
5173 memberName = colon + 2;
5174 for(sClass = base; sClass; sClass = sClass->base)
5176 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
5177 struct __ecereNameSpace__ecere__com__Class * nextClass;
5180 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
5181 id += nextClass->templateParams.count;
5182 if(sClass == base || base->templateArgs)
5184 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
5186 if(cParam->type == 0 && !strcmp(cParam->name, className))
5187 strcpy(className, (sClass == base) ? cParam->defaultArg.dataTypeString : base->templateArgs[id].dataTypeString);
5192 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(base->module, className);
5194 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)base->module + 12)))->application, className);
5197 memberName = param->defaultArg.memberString;
5200 switch(param->memberType)
5203 param->defaultArg.member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
5206 param->defaultArg.method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
5209 param->defaultArg.prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
5215 __ecereNameSpace__ecere__com__FixDerivativesBase(base, base);
5219 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base)
5221 struct __ecereNameSpace__ecere__sys__OldLink * derivative, * templateLink;
5223 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
5225 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
5227 if(_class->templateArgs)
5229 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5230 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5232 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5234 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
5236 struct __ecereNameSpace__ecere__com__Class * _class = templateLink->data;
5238 if(_class->templateArgs)
5240 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5241 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5243 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5247 static const char * __ecereNameSpace__ecere__com__platformNames[4] =
5249 "", "win32", "linux", "apple"
5252 static const int __ecereNameSpace__ecere__com__firstPlatform = 1;
5254 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Platform_char__PTR_;
5256 static const int __ecereNameSpace__ecere__com__lastPlatform = 3;
5258 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Platform;
5260 int __ecereVMethodID_class_OnGetString;
5262 char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this)
5264 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)));
5267 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(char * value)
5273 for(c = __ecereNameSpace__ecere__com__firstPlatform; c <= __ecereNameSpace__ecere__com__lastPlatform; c++)
5274 if(!strcasecmp(value, __ecereNameSpace__ecere__com__platformNames[c]))
5280 char * __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * tempString, void * fieldData, unsigned int * needClass)
5282 if((*(this)) >= __ecereNameSpace__ecere__com__firstPlatform && (*(this)) <= __ecereNameSpace__ecere__com__lastPlatform)
5285 strcpy(tempString, __ecereNameSpace__ecere__com__platformNames[*(int *)this]);
5286 return __ecereNameSpace__ecere__com__platformNames[*(int *)this];
5288 if(tempString && tempString[0])
5289 tempString[0] = '\0';
5290 return (((void *)0));
5293 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * string)
5295 (*(this)) = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(string);
5296 return (unsigned int)*(int *)this;
5299 extern int runtimePlatform;
5301 int __ecereNameSpace__ecere__com__GetRuntimePlatform()
5303 return runtimePlatform;
5306 struct __ecereNameSpace__ecere__com__ObjectInfo
5308 struct __ecereNameSpace__ecere__com__ObjectInfo * prev, * next;
5309 struct __ecereNameSpace__ecere__com__Instance * instance;
5311 struct __ecereNameSpace__ecere__com__Instance * instCode;
5312 unsigned int deleted;
5313 struct __ecereNameSpace__ecere__com__ObjectInfo * oClass;
5314 struct __ecereNameSpace__ecere__sys__OldList instances;
5315 struct __ecereNameSpace__ecere__com__Instance * classDefinition;
5316 unsigned int modified;
5317 } __attribute__ ((gcc_struct));
5319 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ObjectInfo;
5321 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner;
5323 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass;
5325 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging;
5327 struct __ecereNameSpace__ecere__com__DesignerBase
5329 struct __ecereNameSpace__ecere__com__Instance * classDesigner;
5331 unsigned int isDragging;
5332 } __attribute__ ((gcc_struct));
5334 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DesignerBase;
5336 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this)
5338 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);
5340 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner;
5343 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
5345 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);
5347 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner = value;
5348 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner);
5351 char * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass(struct __ecereNameSpace__ecere__com__Instance * this)
5353 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);
5355 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass;
5358 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass(struct __ecereNameSpace__ecere__com__Instance * this, char * value)
5360 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);
5362 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass = value;
5363 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass);
5366 unsigned int __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging(struct __ecereNameSpace__ecere__com__Instance * this)
5368 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);
5370 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging;
5373 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
5375 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);
5377 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging = value;
5378 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging);
5381 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase;
5383 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__activeDesigner;
5385 void __ecereNameSpace__ecere__com__SetActiveDesigner(struct __ecereNameSpace__ecere__com__Instance * designer)
5387 __ecereNameSpace__ecere__com__activeDesigner = designer;
5390 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__GetActiveDesigner()
5392 return __ecereNameSpace__ecere__com__activeDesigner;
5397 unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source)
5403 for(c = 0; source[c]; )
5405 unsigned char ch = source[c];
5406 unsigned int codePoint = 0;
5409 unsigned char mask = (unsigned char)0x7F;
5411 if(ch & (unsigned char)0x80)
5413 if(ch & (unsigned char)0x40)
5417 if(ch & (unsigned char)0x20)
5421 if(ch & (unsigned char)0x10)
5423 if(ch & (unsigned char)0x08)
5433 for(i = 0; i < numBytes && (ch = source[c]); i++, c++)
5436 codePoint |= ch & mask;
5437 mask = (unsigned char)0x3F;
5440 if(!(ch & (unsigned char)0x80) || (ch & (unsigned char)0x40))
5446 if(codePoint > 0x10FFFF || (codePoint >= 0xD800 && codePoint <= 0xDFFF) || (codePoint < 0x80 && numBytes > 1) || (codePoint < 0x800 && numBytes > 2) || (codePoint < 0x10000 && numBytes > 3))
5453 int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max)
5458 for(c = 0; source[c]; c++)
5460 unsigned int ch = ((unsigned char *)source)[c];
5466 dest[d++] = (char)ch;
5472 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5473 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5475 else if(ch < 0x10000)
5479 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5480 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5481 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5487 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5488 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5489 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5490 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5497 char * __ecereNameSpace__ecere__sys__UTF16toUTF8(unsigned short * source)
5504 unsigned int invert = 0x0;
5506 for(len = 0; source[len]; len++)
5508 dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len * 3 + 1));
5509 for(c = 0; (u16 = source[c]); c++)
5513 if(!c && (u16 == (unsigned short)0xFFFE || u16 == (unsigned short)0xFEFF))
5515 if(u16 == (unsigned short)0xFFFE)
5521 u16 = ((u16 & (unsigned short)0xFF00) >> (unsigned short)8) | ((u16 & (unsigned short)0x00FF) << (unsigned short)8);
5523 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5526 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5529 dest[d++] = (char)ch;
5533 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5534 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5536 else if(ch < 0x10000)
5538 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5539 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5540 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5544 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5545 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5546 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5547 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5551 dest = __ecereNameSpace__ecere__com__eSystem_Renew(dest, sizeof(char) * (d + 1));
5555 int __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer(unsigned short * source, unsigned char * dest, int max)
5561 for(c = 0; (u16 = source[c]); c++)
5565 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5568 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5573 dest[d++] = (char)ch;
5579 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5580 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5582 else if(ch < 0x10000)
5586 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5587 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5588 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5594 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5595 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5596 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5597 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5600 dest[d] = (unsigned char)0;
5604 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes)
5607 unsigned char b = ((unsigned char *)string)[0];
5609 unsigned char mask = (unsigned char)0x7F;
5613 if(b & (unsigned char)0x80)
5615 if(b & (unsigned char)0x40)
5619 if(b & (unsigned char)0x20)
5623 if(b & (unsigned char)0x10)
5625 if(b & (unsigned char)0x08)
5637 for(i = 0; i < nb; i++)
5640 ch |= (b = ((unsigned char *)string)[i]) & mask;
5641 mask = (unsigned char)0x3F;
5642 if(i > 1 && (!(b & (unsigned char)0x80) || (b & (unsigned char)0x40)))
5648 if(i < nb || ch > 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF) || (ch < 0x80 && nb > 1) || (ch < 0x800 && nb > 2) || (ch < 0x10000 && nb > 3))
5658 int __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer(char * source, unsigned short * dest, int max)
5665 for(c = 0; source[c]; )
5667 unsigned char ch = source[c];
5668 unsigned int codePoint = 0;
5671 unsigned char mask = (unsigned char)0x7F;
5673 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5677 if(ch & (unsigned char)0x20)
5681 if(ch & (unsigned char)0x10)
5688 for(i = 0; i < numBytes; i++)
5691 codePoint |= source[c++] & mask;
5692 mask = (unsigned char)0x3F;
5694 if(codePoint > 0xFFFF)
5696 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5697 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5708 dest[d++] = (unsigned short)codePoint;
5711 dest[d] = (unsigned short)0;
5717 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max)
5723 for(c = 0; c < count && (ch = source[c]); c++)
5729 dest[d++] = (char)ch;
5735 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5736 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5738 else if(ch < 0x10000)
5742 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5743 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5744 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5750 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5751 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5752 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5753 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5756 dest[d] = (unsigned char)0;
5760 unsigned short * __ecereNameSpace__ecere__sys__UTF8toUTF16(char * source, int * wordCount)
5764 int len = strlen(source);
5765 unsigned short * dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned short) * (len + 1));
5769 for(c = 0; source[c]; )
5771 unsigned char ch = source[c];
5772 unsigned int codePoint = 0;
5775 unsigned char mask = (unsigned char)0x7F;
5777 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5781 if(ch & (unsigned char)0x20)
5785 if(ch & (unsigned char)0x10)
5792 for(i = 0; i < numBytes; i++)
5795 codePoint |= source[c++] & mask;
5796 mask = (unsigned char)0x3F;
5798 if(codePoint > 0xFFFF)
5800 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5801 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5808 dest[d++] = (unsigned short)codePoint;
5811 dest[d] = (unsigned short)0;
5816 return (((void *)0));
5819 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_FindObject;
5821 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_RenameObject;
5823 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SelectObjectFromDesigner;
5825 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_CodeAddObject;
5827 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SheetAddObject;
5829 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddToolBoxClass;
5831 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddDefaultMethod;
5833 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_DeleteObject;
5835 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ObjectContainsCode;
5837 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ModifyCode;
5839 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_UpdateProperties;
5841 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_Reset;
5843 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_AddObject;
5845 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_SelectObject;
5847 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_ListToolBoxClasses;
5849 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PrepareTestObject;
5851 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateObject;
5853 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PostCreateObject;
5855 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DroppedObject;
5857 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DestroyObject;
5859 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_FixProperty;
5861 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew;
5863 void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
5865 struct __ecereNameSpace__ecere__com__Class * class;
5867 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4);
5868 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::unichar", "uint", 0, 0, 0, 0, module, 4, 1);
5869 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5870 __ecereClass___ecereNameSpace__ecere__com__unichar = class;
5871 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString, 1);
5872 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString, 1);
5873 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Property", 0, sizeof(struct __ecereNameSpace__ecere__com__Property), 0, 0, 0, module, 4, 1);
5874 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5875 __ecereClass___ecereNameSpace__ecere__com__Property = class;
5876 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Property", 4, 4, 1);
5877 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Property", 4, 4, 1);
5878 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5879 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
5880 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
5881 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
5882 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
5883 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
5884 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
5885 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
5886 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)()", 4, 4, 1);
5887 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)()", 4, 4, 1);
5888 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "IsSet", "bool( *)()", 4, 4, 1);
5889 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5890 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
5891 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
5892 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
5893 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "watcherOffset", "uint", 4, 4, 1);
5894 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "char *", 4, 4, 1);
5895 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "compiled", "bool", 4, 4, 1);
5896 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchable", "bool", 4, 4, 1);
5897 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
5899 class->fixed = (unsigned int)1;
5901 class->noExpansion = (unsigned int)1;
5902 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PushLoc", "void ecere::com::MemoryGuard_PushLoc(char * loc)", __ecereNameSpace__ecere__com__MemoryGuard_PushLoc, module, 4);
5903 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PopLoc", "void ecere::com::MemoryGuard_PopLoc(void)", __ecereNameSpace__ecere__com__MemoryGuard_PopLoc, module, 4);
5904 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BTNamedLink", 0, sizeof(struct __ecereNameSpace__ecere__com__BTNamedLink), 0, 0, 0, module, 4, 1);
5905 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5906 __ecereClass___ecereNameSpace__ecere__com__BTNamedLink = class;
5907 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5908 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::BTNamedLink", 4, 4, 1);
5909 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::BTNamedLink", 4, 4, 1);
5910 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::BTNamedLink", 4, 4, 1);
5911 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
5912 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5914 class->fixed = (unsigned int)1;
5915 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SelfWatcher", 0, sizeof(struct __ecereNameSpace__ecere__com__SelfWatcher), 0, 0, 0, module, 2, 1);
5916 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5917 __ecereClass___ecereNameSpace__ecere__com__SelfWatcher = class;
5919 class->fixed = (unsigned int)1;
5920 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::AccessMode", 0, 0, 0, 0, 0, module, 4, 1);
5921 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5922 __ecereClass___ecereNameSpace__ecere__com__AccessMode = class;
5923 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "defaultAccess", 0);
5924 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "publicAccess", 1);
5925 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "privateAccess", 2);
5926 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticAccess", 3);
5927 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "baseSystemAccess", 4);
5928 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SubModule", 0, sizeof(struct __ecereNameSpace__ecere__com__SubModule), 0, 0, 0, module, 4, 1);
5929 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5930 __ecereClass___ecereNameSpace__ecere__com__SubModule = class;
5931 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::SubModule", 4, 4, 1);
5932 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::SubModule", 4, 4, 1);
5933 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
5934 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "importMode", "ecere::com::AccessMode", 4, 4, 1);
5935 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::DataMemberType", 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__DataMemberType = class;
5938 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMember", 0);
5939 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionMember", 1);
5940 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMember", 2);
5941 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ClassType", 0, 0, 0, 0, 0, module, 4, 1);
5942 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5943 __ecereClass___ecereNameSpace__ecere__com__ClassType = class;
5944 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalClass", 0);
5945 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structClass", 1);
5946 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "bitClass", 2);
5947 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unitClass", 3);
5948 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "enumClass", 4);
5949 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noHeadClass", 5);
5950 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionClass", 6);
5951 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "systemClass", 1000);
5952 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Class", 0, sizeof(struct __ecereNameSpace__ecere__com__Class), 0, 0, 0, module, 4, 1);
5953 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5954 __ecereClass___ecereNameSpace__ecere__com__Class = class;
5955 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree, 1);
5956 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString, 1);
5957 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString, 1);
5958 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize, 1);
5959 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize, 1);
5960 __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);
5961 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Class", 4, 4, 1);
5962 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Class", 4, 4, 1);
5963 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5964 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
5965 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structSize", "int", 4, 4, 1);
5966 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_vTbl", "int( * *)()", 4, 4, 1);
5967 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vTblSize", "int", 4, 4, 1);
5968 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Constructor", "int( *)(ecere::com::Instance)", 4, 4, 1);
5969 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Destructor", "void( *)(ecere::com::Instance)", 4, 4, 1);
5970 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offsetClass", "int", 4, 4, 1);
5971 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "sizeClass", "int", 4, 4, 1);
5972 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "base", "ecere::com::Class", 4, 4, 1);
5973 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::BinaryTree", 16, 4, 1);
5974 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::BinaryTree", 16, 4, 1);
5975 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prop", "ecere::sys::BinaryTree", 16, 4, 1);
5976 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAndProperties", "ecere::sys::OldList", 20, 4, 1);
5977 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classProperties", "ecere::sys::BinaryTree", 16, 4, 1);
5978 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "derivatives", "ecere::sys::OldList", 20, 4, 1);
5979 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
5980 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "startMemberID", "int", 4, 4, 1);
5981 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::ClassType", 4, 4, 1);
5982 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
5983 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
5984 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
5985 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
5986 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeSize", "int", 4, 4, 1);
5987 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultAlignment", "int", 4, 4, 1);
5988 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Initialize", "void( *)()", 4, 4, 1);
5989 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
5990 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchers", "ecere::sys::OldList", 20, 4, 1);
5991 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "designerClass", "char *", 4, 4, 1);
5992 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "noExpansion", "bool", 4, 4, 1);
5993 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultProperty", "char *", 4, 4, 1);
5994 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "comRedefinition", "bool", 4, 4, 1);
5995 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
5996 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
5997 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "internalDecl", "bool", 4, 4, 1);
5998 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5999 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computeSize", "bool", 4, 4, 1);
6000 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6001 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "destructionWatchOffset", "int", 4, 4, 1);
6002 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fixed", "bool", 4, 4, 1);
6003 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "delayedCPValues", "ecere::sys::OldList", 20, 4, 1);
6004 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "inheritanceAccess", "ecere::com::AccessMode", 4, 4, 1);
6005 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fullName", "char *", 4, 4, 1);
6006 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6007 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversions", "ecere::sys::OldList", 20, 4, 1);
6008 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateParams", "ecere::sys::OldList", 20, 4, 1);
6009 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateArgs", "ecere::com::ClassTemplateArgument *", 4, 4, 1);
6010 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateClass", "ecere::com::Class", 4, 4, 1);
6011 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templatized", "ecere::sys::OldList", 20, 4, 1);
6012 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParams", "int", 4, 4, 1);
6014 class->fixed = (unsigned int)1;
6016 class->noExpansion = (unsigned int)1;
6017 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateParameterType", 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__TemplateParameterType = class;
6020 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "type", 0);
6021 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 1);
6022 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "expression", 2);
6023 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateMemberType", 0, 0, 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__TemplateMemberType = class;
6026 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dataMember", 0);
6027 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "method", 1);
6028 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "prop", 2);
6029 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::ClassTemplateArgument", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument), 0, 0, 0, module, 4, 1);
6030 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6031 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument = class;
6033 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6036 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6038 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeString", "char *", 4, 4, 1);
6039 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6040 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6042 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expression", "ecere::com::DataValue", 8, 8, 1);
6044 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6046 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "memberString", "char *", 4, 4, 1);
6048 struct __ecereNameSpace__ecere__com__DataMember * dataMember2 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6050 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "member", "ecere::com::DataMember", 4, 4, 1);
6051 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "prop", "ecere::com::Property", 4, 4, 1);
6052 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "method", "ecere::com::Method", 4, 4, 1);
6053 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember1, dataMember2);
6055 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6057 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6059 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassTemplateParameter", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateParameter), 0, 0, 0, module, 4, 1);
6060 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6061 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter = class;
6062 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ClassTemplateParameter", 4, 4, 1);
6063 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ClassTemplateParameter", 4, 4, 1);
6064 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6065 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::TemplateParameterType", 4, 4, 1);
6067 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6069 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dataTypeString", "char *", 4, 4, 1);
6070 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "ecere::com::TemplateMemberType", 4, 4, 1);
6071 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6073 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArg", "ecere::com::ClassTemplateArgument", 8, 8, 1);
6074 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "param", "void *", 4, 4, 1);
6076 class->fixed = (unsigned int)1;
6077 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::MethodType", 0, 0, 0, 0, 0, module, 4, 1);
6078 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6079 __ecereClass___ecereNameSpace__ecere__com__MethodType = class;
6080 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMethod", 0);
6081 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "virtualMethod", 1);
6082 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Method", 0, sizeof(struct __ecereNameSpace__ecere__com__Method), 0, 0, 0, module, 4, 1);
6083 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6084 __ecereClass___ecereNameSpace__ecere__com__Method = class;
6085 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6086 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::Method", 4, 4, 1);
6087 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::Method", 4, 4, 1);
6088 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::Method", 4, 4, 1);
6089 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6090 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", 4, 4, 1);
6091 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6092 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::MethodType", 4, 4, 1);
6093 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6094 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6095 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6096 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6097 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6099 class->fixed = (unsigned int)1;
6100 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ImportType", 0, 0, 0, 0, 0, module, 4, 1);
6101 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6102 __ecereClass___ecereNameSpace__ecere__com__ImportType = class;
6103 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalImport", 0);
6104 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticImport", 1);
6105 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "remoteImport", 2);
6106 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preDeclImport", 3);
6107 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "comCheckImport", 4);
6108 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::NameSpace", 0, sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 0, 0, 0, module, 4, 1);
6109 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6110 __ecereClass___ecereNameSpace__ecere__com__NameSpace = class;
6111 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6112 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "btParent", "ecere::com::NameSpace *", 4, 4, 1);
6113 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::NameSpace *", 4, 4, 1);
6114 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::NameSpace *", 4, 4, 1);
6115 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6116 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::NameSpace *", 4, 4, 1);
6117 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpaces", "ecere::sys::BinaryTree", 16, 4, 1);
6118 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classes", "ecere::sys::BinaryTree", 16, 4, 1);
6119 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defines", "ecere::sys::BinaryTree", 16, 4, 1);
6120 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "functions", "ecere::sys::BinaryTree", 16, 4, 1);
6121 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::DataValue", 0, sizeof(struct __ecereNameSpace__ecere__com__DataValue), 0, 0, 0, module, 4, 1);
6122 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6123 __ecereClass___ecereNameSpace__ecere__com__DataValue = class;
6125 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6127 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "c", "char", 1, 1, 1);
6128 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "uc", "byte", 1, 1, 1);
6129 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "s", "short", 2, 2, 1);
6130 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "us", "uint16", 2, 2, 1);
6131 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i", "int", 4, 4, 1);
6132 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui", "uint", 4, 4, 1);
6133 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "p", "void *", 4, 4, 1);
6134 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "f", "float", 4, 4, 1);
6135 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "d", "double", 8, 8, 1);
6136 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i64", "int64", 8, 8, 1);
6137 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui64", "uint64", 8, 8, 1);
6138 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6140 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DataMember", 0, sizeof(struct __ecereNameSpace__ecere__com__DataMember), 0, 0, 0, module, 4, 1);
6141 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6142 __ecereClass___ecereNameSpace__ecere__com__DataMember = class;
6143 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DataMember", 4, 4, 1);
6144 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DataMember", 4, 4, 1);
6145 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6146 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6147 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6148 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6149 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6150 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6151 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6152 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6153 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6154 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6155 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6156 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::OldList", 20, 4, 1);
6157 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAlpha", "ecere::sys::BinaryTree", 16, 4, 1);
6158 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6159 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6161 class->fixed = (unsigned int)1;
6162 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BitMember", 0, sizeof(struct __ecereNameSpace__ecere__com__BitMember), 0, 0, 0, module, 4, 1);
6163 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6164 __ecereClass___ecereNameSpace__ecere__com__BitMember = class;
6165 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::BitMember", 4, 4, 1);
6166 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::BitMember", 4, 4, 1);
6167 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6168 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6169 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6170 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6171 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6172 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6173 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6174 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6175 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6176 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "int", 4, 4, 1);
6177 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
6178 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "mask", "uint64", 8, 8, 1);
6180 class->fixed = (unsigned int)1;
6181 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassProperty", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassProperty), 0, 0, 0, module, 4, 1);
6182 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6183 __ecereClass___ecereNameSpace__ecere__com__ClassProperty = class;
6184 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6185 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::ClassProperty", 4, 4, 1);
6186 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::ClassProperty", 4, 4, 1);
6187 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::ClassProperty", 4, 4, 1);
6188 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6189 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)(ecere::com::Class, int)", 4, 4, 1);
6190 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)(ecere::com::Class)", 4, 4, 1);
6191 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6192 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6193 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
6195 class->fixed = (unsigned int)1;
6196 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DefinedExpression", 0, sizeof(struct __ecereNameSpace__ecere__com__DefinedExpression), 0, 0, 0, module, 4, 1);
6197 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6198 __ecereClass___ecereNameSpace__ecere__com__DefinedExpression = class;
6199 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DefinedExpression", 4, 4, 1);
6200 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DefinedExpression", 4, 4, 1);
6201 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6202 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "value", "char *", 4, 4, 1);
6203 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
6205 class->fixed = (unsigned int)1;
6206 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::GlobalFunction", 0, sizeof(struct __ecereNameSpace__ecere__com__GlobalFunction), 0, 0, 0, module, 4, 1);
6207 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6208 __ecereClass___ecereNameSpace__ecere__com__GlobalFunction = class;
6209 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::GlobalFunction", 4, 4, 1);
6210 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::GlobalFunction", 4, 4, 1);
6211 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6212 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", 4, 4, 1);
6213 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
6214 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
6215 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6216 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6217 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6219 class->fixed = (unsigned int)1;
6220 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::EnumClassData", 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), 0, 0, 0, module, 4, 1);
6221 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6222 __ecereClass___ecereNameSpace__ecere__com__EnumClassData = class;
6223 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "values", "ecere::sys::OldList", 20, 4, 1);
6224 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "largest", "int", 4, 4, 1);
6226 class->fixed = (unsigned int)1;
6227 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Watcher", 0, sizeof(struct __ecereNameSpace__ecere__com__Watcher), 0, 0, 0, module, 2, 1);
6228 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6229 __ecereClass___ecereNameSpace__ecere__com__Watcher = class;
6231 class->fixed = (unsigned int)1;
6232 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemBlock", 0, sizeof(struct __ecereNameSpace__ecere__com__MemBlock), 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__MemBlock = class;
6235 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemPart", 0, sizeof(struct __ecereNameSpace__ecere__com__MemPart), 0, 0, 0, module, 2, 1);
6236 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6237 __ecereClass___ecereNameSpace__ecere__com__MemPart = class;
6238 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::BlockPool", 0, sizeof(struct __ecereNameSpace__ecere__com__BlockPool), 0, 0, 0, module, 2, 1);
6239 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6240 __ecereClass___ecereNameSpace__ecere__com__BlockPool = class;
6241 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "ecere::com::MemBlock Add()", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add, 1);
6242 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Expand", "bool Expand(unsigned int numBlocks)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand, 1);
6243 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::com::MemBlock block)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove, 1);
6244 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "ecere::com::MemBlock", 4, 4, 1);
6245 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "ecere::com::MemBlock", 4, 4, 1);
6246 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "free", "ecere::com::MemBlock", 4, 4, 1);
6247 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSize", "uint", 4, 4, 1);
6248 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSpace", "uint", 4, 4, 1);
6249 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParts", "int", 4, 4, 1);
6250 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numBlocks", "int", 4, 4, 1);
6251 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "totalSize", "uint", 4, 4, 1);
6252 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "usedSpace", "uint", 4, 4, 1);
6253 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::log2i", "uint ecere::com::log2i(uint number)", __ecereNameSpace__ecere__com__log2i, module, 4);
6254 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::pow2i", "uint ecere::com::pow2i(uint number)", __ecereNameSpace__ecere__com__pow2i, module, 4);
6255 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::memswap", "void ecere::com::memswap(byte * a, byte * b, uint size)", __ecereNameSpace__ecere__com__memswap, module, 4);
6256 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::CheckMemory", "void ecere::com::CheckMemory(void)", __ecereNameSpace__ecere__com__CheckMemory, module, 4);
6257 __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);
6258 __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);
6259 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoi64", "int64 ecere::com::_strtoi64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoi64, module, 4);
6260 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoui64", "uint64 ecere::com::_strtoui64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoui64, module, 4);
6261 __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);
6262 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::DefaultFunction", "bool ecere::com::DefaultFunction(void)", __ecereNameSpace__ecere__com__DefaultFunction, module, 2);
6263 __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);
6264 __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);
6265 __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);
6266 __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);
6267 __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);
6268 __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);
6269 __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);
6270 __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);
6271 __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);
6272 __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);
6273 __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);
6274 __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);
6275 __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);
6276 __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);
6277 __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);
6278 __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);
6279 __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);
6280 __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);
6281 __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);
6282 __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);
6283 __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);
6284 __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);
6285 __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);
6286 __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);
6287 __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);
6288 __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);
6289 __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);
6290 __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);
6291 __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);
6292 __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);
6293 __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);
6294 __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);
6295 __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);
6296 __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);
6297 __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);
6298 __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);
6299 __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);
6300 __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);
6301 __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);
6302 __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);
6303 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New", "void * ecere::com::eSystem_New(uint size)", __ecereNameSpace__ecere__com__eSystem_New, module, 4);
6304 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New0", "void * ecere::com::eSystem_New0(uint size)", __ecereNameSpace__ecere__com__eSystem_New0, module, 4);
6305 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Delete", "void ecere::com::eSystem_Delete(void * memory)", __ecereNameSpace__ecere__com__eSystem_Delete, module, 4);
6306 __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);
6307 __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);
6308 __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);
6309 __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);
6310 __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);
6311 __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);
6312 __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);
6313 __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);
6314 __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);
6315 __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);
6316 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::LocateModule", "bool ecere::com::LocateModule(char * name, char * fileName)", __ecereNameSpace__ecere__com__LocateModule, module, 4);
6317 __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);
6318 __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);
6319 __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);
6320 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::Platform", 0, 0, 0, 0, 0, module, 4, 1);
6321 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6322 __ecereClass___ecereNameSpace__ecere__com__Platform = class;
6323 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString, 1);
6324 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString, 1);
6325 __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);
6326 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknown", 0);
6327 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "win32", 1);
6328 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "tux", 2);
6329 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "apple", 3);
6330 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetRuntimePlatform", "ecere::com::Platform ecere::com::GetRuntimePlatform(void)", __ecereNameSpace__ecere__com__GetRuntimePlatform, module, 4);
6331 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ObjectInfo", 0, sizeof(struct __ecereNameSpace__ecere__com__ObjectInfo), 0, 0, 0, module, 4, 1);
6332 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6333 __ecereClass___ecereNameSpace__ecere__com__ObjectInfo = class;
6334 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ObjectInfo", 4, 4, 1);
6335 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ObjectInfo", 4, 4, 1);
6336 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instance", "ecere::com::Instance", 4, 4, 1);
6337 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6338 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instCode", "Instantiation", 4, 4, 1);
6339 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "deleted", "bool", 4, 4, 1);
6340 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "oClass", "ecere::com::ObjectInfo", 4, 4, 1);
6341 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instances", "ecere::sys::OldList", 20, 4, 1);
6342 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDefinition", "ClassDefinition", 4, 4, 1);
6343 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "bool", 4, 4, 1);
6344 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);
6345 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6346 __ecereClass___ecereNameSpace__ecere__com__DesignerBase = class;
6347 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindObject", "bool FindObject(ecere::com::Instance * instance, char * string)", 0, 1);
6348 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RenameObject", "void RenameObject(ecere::com::ObjectInfo object, char * name)", 0, 1);
6349 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObjectFromDesigner", "void SelectObjectFromDesigner(ecere::com::ObjectInfo object)", 0, 1);
6350 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CodeAddObject", "void CodeAddObject(ecere::com::Instance instance, ecere::com::ObjectInfo * object)", 0, 1);
6351 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SheetAddObject", "void SheetAddObject(ecere::com::ObjectInfo object)", 0, 1);
6352 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddToolBoxClass", "void AddToolBoxClass(ecere::com::Class _class)", 0, 1);
6353 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddDefaultMethod", "void AddDefaultMethod(ecere::com::Instance instance, ecere::com::Instance classInstance)", 0, 1);
6354 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DeleteObject", "void DeleteObject(ecere::com::ObjectInfo object)", 0, 1);
6355 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ObjectContainsCode", "bool ObjectContainsCode(ecere::com::ObjectInfo object)", 0, 1);
6356 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ModifyCode", "void ModifyCode(void)", 0, 1);
6357 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "UpdateProperties", "void UpdateProperties(void)", 0, 1);
6358 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDesigner", "ecere::com::ClassDesignerBase", 4, 4, 1);
6359 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "objectClass", "char *", 4, 4, 1);
6360 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isDragging", "bool", 4, 4, 1);
6361 __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);
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_classDesigner = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6364 __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);
6365 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6366 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6367 __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);
6368 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6369 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;
6370 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::ClassDesignerBase", "ecere::gui::Window", 0, 0, 0, 0, module, 4, 1);
6371 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6372 __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase = class;
6373 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Reset", "void Reset(void)", 0, 1);
6374 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddObject", "void AddObject(void)", 0, 1);
6375 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObject", "void SelectObject(ecere::com::ObjectInfo object, ecere::com::Instance control)", 0, 1);
6376 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ListToolBoxClasses", "void ListToolBoxClasses(ecere::com::DesignerBase designer)", 0, 1);
6377 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PrepareTestObject", "void ::PrepareTestObject(ecere::com::DesignerBase designer, ecere::com::Instance test)", 0, 1);
6378 __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);
6379 __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);
6380 __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);
6381 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DestroyObject", "void ::DestroyObject(ecere::com::Instance object)", 0, 1);
6382 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixProperty", "void ::FixProperty(ecere::com::Property prop, ecere::com::Instance object)", 0, 1);
6383 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateNew", "void ::CreateNew(EditBox editBox, Size clientSize, char * name, char * inherit)", 0, 1);
6384 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::SetActiveDesigner", "void ecere::com::SetActiveDesigner(ecere::com::DesignerBase designer)", __ecereNameSpace__ecere__com__SetActiveDesigner, module, 4);
6385 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetActiveDesigner", "ecere::com::DesignerBase ecere::com::GetActiveDesigner(void)", __ecereNameSpace__ecere__com__GetActiveDesigner, module, 4);
6386 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::LEAD_OFFSET", "0xD800 - (0x10000 >> 10)", module, 2);
6387 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::SURROGATE_OFFSET", "0x10000 - (0xD800 << 10) - 0xDC00", module, 2);
6388 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8Validate", "bool ecere::sys::UTF8Validate(char * source)", __ecereNameSpace__ecere__sys__UTF8Validate, module, 4);
6389 __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);
6390 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8", "char * ecere::sys::UTF16toUTF8(uint16 * source)", __ecereNameSpace__ecere__sys__UTF16toUTF8, module, 4);
6391 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8Buffer", "int ecere::sys::UTF16toUTF8Buffer(uint16 * source, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer, module, 4);
6392 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8GetChar", "ecere::com::unichar ecere::sys::UTF8GetChar(char * string, int * numBytes)", __ecereNameSpace__ecere__sys__UTF8GetChar, module, 4);
6393 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16Buffer", "int ecere::sys::UTF8toUTF16Buffer(char * source, uint16 * dest, int max)", __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer, module, 4);
6394 __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);
6395 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16", "uint16 * ecere::sys::UTF8toUTF16(char * source, int * wordCount)", __ecereNameSpace__ecere__sys__UTF8toUTF16, module, 4);
6398 void __ecereUnregisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6401 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6402 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6403 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;