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);
47 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
49 struct __ecereNameSpace__ecere__sys__OldList
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;
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;
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;
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;
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;
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;
196 struct __ecereNameSpace__ecere__com__DataValue
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;
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;
239 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
241 typedef unsigned int size_t;
243 void exit(int status);
245 void * calloc(size_t nmemb, size_t size);
247 void free(void * ptr);
249 void * malloc(size_t size);
251 void * realloc(void * ptr, size_t size);
253 long int strtol(const char * nptr, char ** endptr, int base);
255 long long int strtoll(const char * nptr, char ** endptr, int base);
257 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
259 typedef __builtin_va_list __gnuc_va_list;
261 typedef __gnuc_va_list va_list;
265 FILE * bsl_stdin(void);
267 FILE * bsl_stdout(void);
269 FILE * bsl_stderr(void);
271 char * fgets(char * s, int size, FILE * stream);
273 FILE * fopen(const char * path, const char * mode);
275 int fclose(FILE * fp);
277 int fflush(FILE * stream);
279 int fgetc(FILE * stream);
281 int fprintf(FILE * stream, const char * format, ...);
283 int fputc(int c, FILE * stream);
285 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
287 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
289 int fseek(FILE * stream, long offset, int whence);
291 long ftell(FILE * stream);
293 int feof(FILE * stream);
295 int ferror(FILE * stream);
297 int fileno(FILE * stream);
300 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
302 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
304 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
306 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
308 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
310 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
312 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
314 extern int __ecereVMethodID_class_OnGetDataFromString;
316 unsigned int Instance_LocateModule(char * name, char * fileName);
318 void Instance_COM_Initialize(int argc, char ** argv, char ** parsedCommand, int * argcPtr, char *** argvPtr);
320 void * Instance_Module_Load(char * name, void ** Load, void ** Unload);
322 void Instance_Module_Free(void * library);
324 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__unichar;
326 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max);
328 char * __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * tempString, void * fieldData, unsigned int * needClass)
330 __ecereNameSpace__ecere__sys__UTF32toUTF8Len(&(*(this)), 1, tempString, 5);
334 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes);
336 unsigned int __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string)
340 (*(this)) = __ecereNameSpace__ecere__sys__UTF8GetChar(string, &nb);
344 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
346 void __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(char * loc)
350 void __ecereNameSpace__ecere__com__MemoryGuard_PopLoc()
354 extern unsigned int stdcall __ecereDll_Load_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
356 extern void stdcall __ecereDll_Unload_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
358 struct __ecereNameSpace__ecere__com__BTNamedLink
361 struct __ecereNameSpace__ecere__com__BTNamedLink * parent, * left, * right;
366 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BTNamedLink;
368 struct __ecereNameSpace__ecere__com__SelfWatcher
370 struct __ecereNameSpace__ecere__com__SelfWatcher * prev, * next;
371 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *);
372 struct __ecereNameSpace__ecere__com__Property * _property;
375 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SelfWatcher;
377 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AccessMode;
379 struct __ecereNameSpace__ecere__com__SubModule
381 struct __ecereNameSpace__ecere__com__SubModule * prev, * next;
382 struct __ecereNameSpace__ecere__com__Instance * module;
386 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SubModule;
388 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMemberType;
390 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassType;
392 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Class_char__PTR_;
394 char * __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this)
399 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
401 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(char * value)
403 struct __ecereNameSpace__ecere__com__Class * theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, value);
408 char * __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this, char * tempString, void * fieldData, unsigned int * needClass)
413 struct __ecereNameSpace__ecere__com__NameSpace
416 struct __ecereNameSpace__ecere__com__NameSpace * btParent, * left, * right;
418 struct __ecereNameSpace__ecere__com__NameSpace * parent;
419 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
420 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
421 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
422 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
425 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
427 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
429 struct __ecereNameSpace__ecere__com__Module
431 struct __ecereNameSpace__ecere__com__Instance * application;
432 struct __ecereNameSpace__ecere__sys__OldList classes;
433 struct __ecereNameSpace__ecere__sys__OldList defines;
434 struct __ecereNameSpace__ecere__sys__OldList functions;
435 struct __ecereNameSpace__ecere__sys__OldList modules;
436 struct __ecereNameSpace__ecere__com__Instance * prev;
437 struct __ecereNameSpace__ecere__com__Instance * next;
442 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
443 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
446 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, char * string)
448 struct __ecereNameSpace__ecere__com__Class * theClass;
450 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
452 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application, string);
453 (*(this)) = (void *)theClass;
454 return theClass != (((void *)0));
457 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
459 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_char__PTR_;
461 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)
463 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_char__PTR_, this->fullName);
466 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this)
470 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
472 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
474 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)
476 struct __ecereNameSpace__ecere__com__Class * theClass;
479 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &string);
480 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
482 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application, string);
483 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
484 (*(this)) = (void *)theClass;
487 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType;
489 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType;
491 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
493 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev, * next;
498 char * dataTypeString;
501 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
505 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
507 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MethodType;
509 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ImportType;
511 struct __ecereNameSpace__ecere__com__BitMember
513 struct __ecereNameSpace__ecere__com__BitMember * prev, * next;
515 unsigned int isProperty;
518 struct __ecereNameSpace__ecere__com__Class * _class;
519 char * dataTypeString;
520 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
521 struct __ecereNameSpace__ecere__com__Instance * dataType;
528 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
530 struct __ecereNameSpace__ecere__com__ClassProperty
533 struct __ecereNameSpace__ecere__com__ClassProperty * parent, * left, * right;
535 void (* Set)(struct __ecereNameSpace__ecere__com__Class *, int);
536 int (* Get)(struct __ecereNameSpace__ecere__com__Class *);
537 char * dataTypeString;
538 struct __ecereNameSpace__ecere__com__Instance * dataType;
539 unsigned int constant;
542 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty;
544 struct __ecereNameSpace__ecere__com__DefinedExpression
546 struct __ecereNameSpace__ecere__com__DefinedExpression * prev, * next;
549 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
552 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
554 struct __ecereNameSpace__ecere__com__GlobalFunction
556 struct __ecereNameSpace__ecere__com__GlobalFunction * prev, * next;
559 struct __ecereNameSpace__ecere__com__Instance * module;
560 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
561 char * dataTypeString;
562 struct __ecereNameSpace__ecere__com__Instance * dataType;
566 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
568 struct __ecereNameSpace__ecere__com__EnumClassData
570 struct __ecereNameSpace__ecere__sys__OldList values;
574 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
576 struct __ecereNameSpace__ecere__com__Watcher
578 struct __ecereNameSpace__ecere__com__Watcher * prev, * next;
579 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *);
580 struct __ecereNameSpace__ecere__com__Instance * object;
583 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Watcher;
585 static unsigned int __ecereNameSpace__ecere__com__TOTAL_MEM = 0;
587 static unsigned int __ecereNameSpace__ecere__com__OUTSIDE_MEM = 0;
589 struct __ecereNameSpace__ecere__com__MemBlock
591 struct __ecereNameSpace__ecere__com__MemBlock * prev, * next;
592 struct __ecereNameSpace__ecere__com__MemPart * part;
596 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemBlock;
598 struct __ecereNameSpace__ecere__com__MemPart
603 struct __ecereNameSpace__ecere__com__BlockPool * pool;
606 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemPart;
608 static int __ecereNameSpace__ecere__com__power15[] =
610 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
613 struct __ecereNameSpace__ecere__com__BlockPool
615 struct __ecereNameSpace__ecere__com__MemBlock * first, * last;
616 struct __ecereNameSpace__ecere__com__MemBlock * free;
617 unsigned int blockSize;
618 unsigned int blockSpace;
621 unsigned int totalSize;
622 unsigned int usedSpace;
625 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BlockPool;
627 unsigned int __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(struct __ecereNameSpace__ecere__com__BlockPool * this, unsigned int numBlocks)
629 unsigned char * memory = malloc(numBlocks * this->blockSpace);
631 __ecereNameSpace__ecere__com__TOTAL_MEM += numBlocks * this->blockSpace;
635 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)memory;
636 struct __ecereNameSpace__ecere__com__MemPart * part = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__MemPart));
638 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemPart);
640 for(c = 0; c < numBlocks - 1; c++)
643 block->prev = (((void *)0));
644 block->next = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)block + this->blockSpace);
647 part->blocksUsed = 0;
649 part->memory = memory;
650 part->size = numBlocks;
652 block->prev = (((void *)0));
653 block->next = (((void *)0));
654 this->totalSize += numBlocks;
661 struct __ecereNameSpace__ecere__com__MemBlock * __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(struct __ecereNameSpace__ecere__com__BlockPool * this)
664 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
667 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(this, (__simpleStruct0 = this->numBlocks / 2, (1 > __simpleStruct0) ? 1 : __simpleStruct0));
671 block->prev = this->last;
673 block->prev->next = block;
677 this->free = block->next;
678 block->next = (((void *)0));
679 block->part->blocksUsed++;
685 void __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove(struct __ecereNameSpace__ecere__com__BlockPool * this, struct __ecereNameSpace__ecere__com__MemBlock * block)
688 block->prev->next = block->next;
690 block->next->prev = block->prev;
691 if(this->first == block)
692 this->first = block->next;
693 if(this->last == block)
694 this->last = block->prev;
695 block->next = this->free;
697 block->part->blocksUsed--;
699 (*block->part->pool).usedSpace -= block->size;
700 if(!block->part->blocksUsed && this->numBlocks && this->totalSize > this->numBlocks + this->numBlocks / 2)
702 struct __ecereNameSpace__ecere__com__MemBlock * next = this->free, * prev = (((void *)0));
703 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
705 this->free = (((void *)0));
706 this->totalSize -= part->size;
709 if(next->part != part)
721 prev->next = (((void *)0));
722 __ecereNameSpace__ecere__com__TOTAL_MEM -= part->size * this->blockSpace;
723 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemPart);
730 static struct __ecereNameSpace__ecere__com__BlockPool * __ecereNameSpace__ecere__com__pools;
732 static unsigned int __ecereNameSpace__ecere__com__PosFibonacci(unsigned int number)
735 unsigned int last = 1, prev = 0;
736 unsigned int current = 1;
738 for(pos = 0; ; pos++)
743 if(current >= number)
749 static unsigned int __ecereNameSpace__ecere__com__NthFibonacci(unsigned int number)
752 unsigned int last = 1, prev = 0;
753 unsigned int current = 1;
755 for(pos = 0; pos <= number; pos++)
764 static unsigned int __ecereNameSpace__ecere__com__NextFibonacci(unsigned int number)
767 unsigned int last = 1, prev = 0;
768 unsigned int current = 1;
770 for(pos = 0; ; pos++)
775 if(current >= number)
780 static unsigned int __ecereNameSpace__ecere__com__log1_5i(unsigned int number)
785 for(pos = 0; pos < 31; pos++)
787 if(current >= number)
789 current = current * 3 / 2;
796 static unsigned int __ecereNameSpace__ecere__com__pow1_5(unsigned int number)
801 for(pos = 0; pos < number; pos++)
803 current = current * 3 / 2;
807 return (unsigned int)current;
810 static unsigned int __ecereNameSpace__ecere__com__pow1_5i(unsigned int number)
815 for(pos = 0; pos < 31; pos++)
817 if(current >= number)
818 return (unsigned int)current;
819 current = current * 3 / 2;
823 return (unsigned int)current;
826 unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number)
830 for(power = 0; power < 32; power++)
831 if((1L << power) >= number)
836 unsigned int __ecereNameSpace__ecere__com__pow2i(unsigned int number)
838 return 1 << __ecereNameSpace__ecere__com__log2i(number);
841 static unsigned int __ecereNameSpace__ecere__com__memoryInitialized = 0x0;
843 static void __ecereNameSpace__ecere__com__InitMemory()
847 __ecereNameSpace__ecere__com__memoryInitialized = 0x1;
848 __ecereNameSpace__ecere__com__pools = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__BlockPool) * 31);
849 for(c = 0; c < 31; c++)
853 __ecereNameSpace__ecere__com__pools[c].blockSize = __ecereNameSpace__ecere__com__pow1_5(c);
854 if(__ecereNameSpace__ecere__com__pools[c].blockSize % 4)
855 __ecereNameSpace__ecere__com__pools[c].blockSize += 4 - (__ecereNameSpace__ecere__com__pools[c].blockSize % 4);
856 __ecereNameSpace__ecere__com__pools[c].blockSpace = __ecereNameSpace__ecere__com__pools[c].blockSize;
857 __ecereNameSpace__ecere__com__pools[c].blockSpace += sizeof(struct __ecereNameSpace__ecere__com__MemBlock);
858 expansion = (__ecereNameSpace__ecere__com__pools[c].blockSize < 128) ? 1024 : (131072 / __ecereNameSpace__ecere__com__pools[c].blockSize);
860 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(&__ecereNameSpace__ecere__com__pools[c], ((1 > expansion) ? 1 : expansion));
864 static void * __ecereNameSpace__ecere__com___mymalloc(unsigned int size)
866 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
870 unsigned int p = __ecereNameSpace__ecere__com__log1_5i(size);
872 if(!__ecereNameSpace__ecere__com__memoryInitialized)
873 __ecereNameSpace__ecere__com__InitMemory();
876 block = __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(&__ecereNameSpace__ecere__com__pools[p]);
880 __ecereNameSpace__ecere__com__pools[p].usedSpace += size;
885 block = malloc(sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
888 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
889 __ecereNameSpace__ecere__com__OUTSIDE_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
890 block->part = (((void *)0));
894 return block ? ((struct __ecereNameSpace__ecere__com__MemBlock *)block + 1) : (((void *)0));
897 extern void memset(void * area, unsigned char value, unsigned int count);
899 static void * __ecereNameSpace__ecere__com___mycalloc(int n, unsigned int size)
901 void * pointer = __ecereNameSpace__ecere__com___mymalloc(size);
904 memset(pointer, (unsigned char)0, size);
908 static void __ecereNameSpace__ecere__com___myfree(void * pointer)
912 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock));
913 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
914 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
917 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove((&*pool), block);
920 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
921 __ecereNameSpace__ecere__com__OUTSIDE_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
927 extern void * memcpy(void * , const void * , unsigned int size);
929 static void * __ecereNameSpace__ecere__com___myrealloc(void * pointer, unsigned int size)
931 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
932 void * newPointer = (((void *)0));
933 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
934 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
940 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
941 unsigned int mod = ns % 4;
945 if(ns == (*pool).blockSize)
947 newPointer = pointer;
948 (*pool).usedSpace += size - block->size;
954 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
958 __ecereNameSpace__ecere__com__TOTAL_MEM += size - newBlock->size;
959 __ecereNameSpace__ecere__com__OUTSIDE_MEM += size - newBlock->size;
960 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
966 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
967 if(pointer && newPointer)
969 unsigned int __simpleStruct0;
971 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
972 __ecereNameSpace__ecere__com___myfree(pointer);
978 static void * __ecereNameSpace__ecere__com___mycrealloc(void * pointer, unsigned int size)
980 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
981 void * newPointer = (((void *)0));
982 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
983 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
989 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
990 unsigned int mod = ns % 4;
994 if(ns == (*pool).blockSize)
996 int extra = size - block->size;
998 newPointer = pointer;
999 (*pool).usedSpace += extra;
1001 memset((unsigned char *)pointer + block->size, (unsigned char)0, extra);
1007 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
1011 int extra = size - newBlock->size;
1013 __ecereNameSpace__ecere__com__TOTAL_MEM += extra;
1014 __ecereNameSpace__ecere__com__OUTSIDE_MEM += extra;
1015 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1017 memset((unsigned char *)newPointer + newBlock->size, (unsigned char)0, extra);
1018 newBlock->size = size;
1024 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1029 unsigned int __simpleStruct0;
1031 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1032 if(size > block->size)
1033 memset((unsigned char *)newPointer + block->size, (unsigned char)0, size - block->size);
1034 __ecereNameSpace__ecere__com___myfree(pointer);
1037 memset((unsigned char *)newPointer, (unsigned char)0, size);
1043 static void * __ecereNameSpace__ecere__com___malloc(unsigned int size)
1047 pointer = __ecereNameSpace__ecere__com___mymalloc(size + 2 * 0);
1048 return (unsigned char *)pointer + 0;
1051 static void * __ecereNameSpace__ecere__com___calloc(int n, unsigned int size)
1055 pointer = __ecereNameSpace__ecere__com___mycalloc(n, size + 2 * 0);
1056 return (unsigned char *)pointer + 0;
1059 static void __ecereNameSpace__ecere__com___free(void * pointer);
1061 static void * __ecereNameSpace__ecere__com___realloc(void * pointer, unsigned int size)
1065 __ecereNameSpace__ecere__com___free(pointer);
1066 return (((void *)0));
1068 pointer = __ecereNameSpace__ecere__com___myrealloc(pointer, size);
1069 return (unsigned char *)pointer + 0;
1072 static void * __ecereNameSpace__ecere__com___crealloc(void * pointer, unsigned int size)
1075 return (((void *)0));
1076 pointer = __ecereNameSpace__ecere__com___mycrealloc(pointer, size);
1077 return (unsigned char *)pointer + 0;
1080 static void __ecereNameSpace__ecere__com___free(void * pointer)
1084 __ecereNameSpace__ecere__com___myfree(pointer);
1088 void __ecereNameSpace__ecere__com__memswap(unsigned char * a, unsigned char * b, unsigned int size)
1091 unsigned char buffer[1024];
1093 for(c = 0; c < size; )
1095 int s = sizeof buffer;
1099 memcpy(buffer, a + c, s);
1100 memcpy(a + c, b + c, s);
1101 memcpy(b + c, buffer, s);
1106 void __ecereNameSpace__ecere__com__CheckMemory()
1110 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule);
1112 extern char * strchr(char * , int);
1114 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
1116 struct __ecereNameSpace__ecere__sys__OldLink
1118 struct __ecereNameSpace__ecere__sys__OldLink * prev;
1119 struct __ecereNameSpace__ecere__sys__OldLink * next;
1123 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1125 extern void * memmove(void * , const void * , unsigned int size);
1127 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property);
1129 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1131 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1133 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1135 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1137 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key);
1139 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1141 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1143 static void __ecereNameSpace__ecere__com__FixDerivativesBase(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Class * mod)
1145 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
1146 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1148 __ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)));
1149 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
1151 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
1152 int type = _class->type;
1153 int size = _class->structSize - _class->offset;
1154 int oldSizeClass = _class->sizeClass;
1155 int sizeClass = _class->sizeClass - _class->offsetClass;
1156 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1157 char * dataTypeString = (((void *)0));
1158 struct __ecereNameSpace__ecere__com__Class * baseClass;
1159 unsigned int offsetBefore = _class->offset;
1160 int offsetClass, totalSizeClass;
1162 for(baseClass = base; baseClass->base; baseClass = baseClass->base)
1164 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1171 base = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, "enum");
1174 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1175 offsetClass = base ? (base->templateClass ? base->templateClass->sizeClass : base->sizeClass) : (type == 5 ? 0 : 0);
1176 totalSizeClass = offsetClass + sizeClass;
1177 if(type == 0 || type == 5)
1178 _class->offset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : ((type == 5) ? 0 : 12);
1181 _class->memberOffset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : 0;
1182 _class->typeSize = _class->structSize = _class->memberOffset + size;
1184 else if(type == 2 || type == 4 || type == 3)
1186 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1189 _class->typeSize = dataTypeClass->typeSize;
1190 _class->structSize = 0;
1192 else if(type == 0 || type == 5)
1194 _class->structSize = _class->offset + size;
1195 _class->typeSize = sizeof(void *);
1197 if(_class->type != 1000)
1198 _class->type = type;
1199 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1200 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1201 if(totalSizeClass != oldSizeClass)
1203 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1204 memmove((unsigned char *)_class->data + mod->offsetClass, (unsigned char *)_class->data, totalSizeClass - mod->sizeClass);
1205 if(base->type != 1000 && base->type != 4)
1206 memcpy((unsigned char *)_class->data, (unsigned char *)base->data, totalSizeClass - _class->sizeClass);
1208 memset((unsigned char *)_class->data, (unsigned char)0, totalSizeClass - _class->sizeClass);
1210 _class->offsetClass = offsetClass;
1211 _class->sizeClass = totalSizeClass;
1212 if(mod->base && mod->base->base && mod->base->vTblSize > baseClass->vTblSize && (mod != (base->templateClass ? base->templateClass : base) || _class->vTblSize != mod->vTblSize))
1214 struct __ecereNameSpace__ecere__com__Method * method, * next;
1215 struct __ecereNameSpace__ecere__com__Class * b;
1217 _class->vTblSize += mod->base->vTblSize - baseClass->vTblSize;
1218 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
1219 memmove(_class->_vTbl + mod->base->vTblSize, _class->_vTbl + baseClass->vTblSize, (_class->vTblSize - mod->vTblSize) * sizeof(void *));
1220 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
1222 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
1223 if(method->type == 1)
1224 method->vid += mod->base->vTblSize - baseClass->vTblSize;
1226 for(b = mod->base; b && b != (((void *)0)); b = b->base)
1228 struct __ecereNameSpace__ecere__com__Method * vMethod;
1230 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)))
1232 if(vMethod->type == 1)
1234 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, vMethod->name);
1237 if(method->function)
1238 _class->_vTbl[vMethod->vid] = method->function;
1241 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1242 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1243 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1247 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1248 method->type = vMethod->type;
1249 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(vMethod->dataTypeString);
1250 method->_class = vMethod->_class;
1254 _class->_vTbl[vMethod->vid] = _class->base->_vTbl[vMethod->vid];
1259 if(type == 0 || type == 5 || type == 1)
1261 struct __ecereNameSpace__ecere__com__Property * prop;
1262 struct __ecereNameSpace__ecere__com__DataMember * member;
1263 struct __ecereNameSpace__ecere__com__Class * c;
1265 for(c = mod->base; c; c = c->base)
1267 struct __ecereNameSpace__ecere__com__Property * _property;
1269 for(_property = c->membersAndProperties.first; _property; _property = _property->next)
1271 if(_property->isProperty)
1273 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
1278 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
1280 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
1282 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
1284 if(watcher->_property == prop)
1285 watcher->_property = _property;
1287 _property->selfWatchable = 0x1;
1288 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1289 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
1290 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
1291 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
1298 for(member = _class->membersAndProperties.first; member; member = member->next)
1300 int offsetDiff = _class->offset - offsetBefore;
1302 if(!member->isProperty && offsetDiff > 0)
1304 member->offset += offsetDiff;
1305 member->memberOffset += offsetDiff;
1307 member->id += mod->base->memberID;
1309 _class->memberID += mod->base->memberID;
1310 _class->startMemberID += mod->base->memberID;
1313 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, mod);
1315 struct __ecereNameSpace__ecere__com__Class * c;
1317 for(c = mod->base; c; c = c->base)
1319 struct __ecereNameSpace__ecere__com__ClassProperty * _property;
1321 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)))
1323 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
1329 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1331 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
1333 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
1334 char * templateParams = strchr(template->name, '<');
1336 template->base = base->base;
1337 template->_vTbl = base->_vTbl;
1338 template->data = base->data;
1339 template->offset = base->offset;
1340 template->offsetClass = base->offsetClass;
1341 template->sizeClass = base->sizeClass;
1342 template->structSize = base->structSize;
1343 template->vTblSize = base->vTblSize;
1344 __ecereNameSpace__ecere__com__FixDerivativesBase(template, mod);
1349 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
1351 struct __ecereNameSpace__ecere__com__Application
1356 unsigned int isGUIApp;
1357 struct __ecereNameSpace__ecere__sys__OldList allModules;
1358 char * parsedCommand;
1359 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1362 extern char * strncpy(char * , const char * , int n);
1364 extern int strcmp(const char * , const char * );
1366 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base);
1368 extern int printf(char * , ...);
1370 extern char * __ecereNameSpace__ecere__GetTranslatedString(struct __ecereNameSpace__ecere__com__Instance * module, char * string, char * stringAndContext);
1372 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace);
1374 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset);
1376 extern char * strcpy(char * , const char * );
1378 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template);
1380 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg);
1382 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b);
1384 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1386 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1388 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data);
1390 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1392 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)
1394 void * __ecereTemp1;
1396 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
1399 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
1401 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace;
1403 for(c = 0; name[c]; c++)
1405 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
1407 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
1408 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
1410 strncpy(spaceName, name + start, c - start);
1411 spaceName[c - start] = '\0';
1412 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
1415 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
1416 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1417 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1418 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1419 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1420 (*newSpace).name = spaceName;
1421 (*newSpace).parent = nameSpace;
1422 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
1425 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
1426 nameSpace = newSpace;
1438 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (((void *)0));
1439 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
1440 char * dataTypeString = (((void *)0));
1441 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1442 struct __ecereNameSpace__ecere__com__Class * base = (baseName && baseName[0]) ? __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName) : (((void *)0));
1443 unsigned int refine = 0x0;
1445 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1447 if(base->type == 1 && type == 0)
1452 if(base && (type == 0 || type == 5 || type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1456 if(!base || base->type == 1000)
1460 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"))
1462 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1463 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1467 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1468 base->internalDecl = 0x1;
1470 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1473 else if(type == 1 && (!baseName || !baseName[0]))
1475 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "struct");
1476 dataTypeString = name + start;
1481 dataTypeString = "struct __ecereNameSpace__ecere__com__Instance";
1483 dataTypeString = "void *";
1485 dataTypeString = (baseName && baseName[0]) ? baseName : "unsigned int";
1487 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1489 dataTypeString = name + start;
1490 if(base || (!baseName || !baseName[0]) || type == 2 || type == 3)
1492 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"))
1494 if(type == 0 && strcmp(name, "ecere::com::Instance") && strcmp(name, "enum") && strcmp(name, "struct"))
1495 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1497 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1512 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1515 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1517 offsetClass = base ? base->sizeClass : (type == 5 ? 0 : 0);
1518 totalSizeClass = offsetClass + sizeClass;
1519 if((_class = __ecereNameSpace__ecere__com__eSystem_FindClass(module, name)))
1521 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1522 if(!_class->internalDecl)
1525 printf(__ecereNameSpace__ecere__GetTranslatedString(__thisModule, "error: Redefinition of class %s\n", (((void *)0))), name);
1528 _class->comRedefinition = 0x1;
1531 return (((void *)0));
1533 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, name + start);
1534 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1536 struct __ecereNameSpace__ecere__sys__OldLink * t;
1538 for(t = _class->templatized.first; t; t = t->next)
1540 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1542 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1543 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1547 struct __ecereNameSpace__ecere__com__NameSpace * ns = _class->nameSpace;
1549 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))
1551 struct __ecereNameSpace__ecere__com__NameSpace * parent = (*ns).parent;
1553 __ecereNameSpace__ecere__com__NameSpace_Free(ns);
1554 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*parent).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)ns);
1562 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);
1564 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);
1566 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);
1568 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);
1570 _class = classLink->data;
1571 if(_class && _class->internalDecl)
1573 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1574 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1576 struct __ecereNameSpace__ecere__sys__OldLink * t;
1578 for(t = _class->templatized.first; t; t = t->next)
1580 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1582 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1583 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1587 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
1588 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1592 _class = __ecereNameSpace__ecere__com___calloc(1, sizeof(struct __ecereNameSpace__ecere__com__Class));
1593 _class->methods.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1594 _class->members.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1595 _class->prop.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1596 _class->classProperties.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1597 _class->name = __ecereNameSpace__ecere__sys__CopyString(name + start);
1598 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1603 __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)));
1605 struct __ecereNameSpace__ecere__sys__OldLink * t;
1607 for(t = _class->templatized.first; t; t = t->next)
1609 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1611 __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)));
1617 if(!base && baseName && strcmp(baseName, name))
1619 if(strchr(baseName, '<'))
1621 char templateClassName[1024];
1622 struct __ecereNameSpace__ecere__com__Class * templateBase;
1624 strcpy(templateClassName, baseName);
1625 *strchr(templateClassName, '<') = '\0';
1626 templateBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, templateClassName);
1629 templateBase = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, templateClassName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1630 templateBase->internalDecl = 0x1;
1632 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName);
1636 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1637 base->internalDecl = 0x1;
1641 _class->internalDecl = 0x0;
1644 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1645 if(base && base->type != 1000 && base->type != 4)
1646 memcpy(_class->data, base->data, offsetClass);
1648 memset(_class->data, (unsigned char)0, offsetClass);
1649 memset((unsigned char *)_class->data + offsetClass, (unsigned char)0, sizeClass);
1651 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1652 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1653 _class->defaultAlignment = base ? base->defaultAlignment : 0;
1656 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->classes, _class);
1660 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1661 struct __ecereNameSpace__ecere__sys__OldLink * deriv = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(&base->derivatives, _class);
1663 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1667 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes, _class);
1669 _class->nameSpace = nameSpace;
1671 struct __ecereNameSpace__ecere__sys__OldLink * t;
1673 for(t = _class->templatized.first; t; t = t->next)
1675 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1677 template->nameSpace = nameSpace;
1680 _class->module = module;
1681 _class->base = base;
1685 struct __ecereNameSpace__ecere__com__Class * sClass;
1687 for(sClass = base; sClass; sClass = sClass->base)
1689 if(sClass->templateClass)
1690 sClass = sClass->templateClass;
1691 numParams += sClass->templateParams.count;
1695 if(_class->templateArgs)
1697 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1699 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1700 _class->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
1701 _class->numParams = numParams;
1702 for(sClass = _class; sClass; sClass = sClass->base)
1704 struct __ecereNameSpace__ecere__com__Class * prevClass;
1705 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1708 if(sClass->templateClass)
1709 sClass = sClass->templateClass;
1710 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
1712 if(prevClass->templateClass)
1713 prevClass = prevClass->templateClass;
1714 id += prevClass->templateParams.count;
1716 if(base->templateArgs)
1718 for(param = sClass->templateParams.first; param; param = param->next)
1720 _class->templateArgs[id] = base->templateArgs[id];
1721 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &_class->templateArgs[id]);
1728 _class->memberID = _class->startMemberID = (base && (type == 0 || type == 5 || type == 1)) ? base->memberID : 0;
1729 if(type == 0 || type == 5)
1730 _class->offset = (base && base->structSize && base->type != 1000) ? base->structSize : ((type == 5) ? 0 : 12);
1733 _class->memberOffset = (base && base->structSize && base->type != 1000) ? base->structSize : 0;
1734 _class->typeSize = _class->structSize = _class->memberOffset + size;
1736 else if(type == 2 || type == 4 || type == 3)
1738 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1741 _class->typeSize = dataTypeClass->typeSize;
1742 _class->structSize = 0;
1744 else if(type == 0 || type == 5)
1746 _class->structSize = _class->offset + size;
1747 _class->typeSize = sizeof(void *);
1749 _class->offsetClass = offsetClass;
1750 _class->sizeClass = totalSizeClass;
1751 _class->Constructor = (void *)Constructor;
1752 _class->Destructor = Destructor;
1753 if(_class->type != 1000)
1754 _class->type = type;
1756 _class->computeSize = 0x1;
1758 _class->computeSize = 0x0;
1759 _class->inheritanceAccess = inheritanceAccess;
1763 _class->base = base = enumBase;
1765 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1767 if(base && base->type != 4)
1770 data->largest = ((struct __ecereNameSpace__ecere__com__EnumClassData *)base->data)->largest;
1773 if(base && base->vTblSize)
1775 _class->vTblSize = base->vTblSize;
1776 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1777 _class->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(int (*)()) * _class->vTblSize);
1778 memcpy(_class->_vTbl, base->_vTbl, sizeof(int (*)()) * _class->vTblSize);
1782 struct __ecereNameSpace__ecere__sys__OldLink * link = (link = __ecereNameSpace__ecere__com__eSystem_New0(12), link->data = _class, link);
1784 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->base->derivatives, link);
1786 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
1790 return (((void *)0));
1793 static void __ecereNameSpace__ecere__com__DataMember_Free(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
1795 struct __ecereNameSpace__ecere__com__DataMember * member;
1796 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1798 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->name), parentMember->name = 0);
1799 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->dataTypeString), parentMember->dataTypeString = 0);
1800 while((member = parentMember->members.first))
1802 __ecereNameSpace__ecere__com__DataMember_Free(member);
1803 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&parentMember->members, member);
1805 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentMember->membersAlpha)))
1807 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentMember->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1811 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1813 struct __ecereNameSpace__ecere__sys__NamedLink
1815 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
1816 struct __ecereNameSpace__ecere__sys__NamedLink * next;
1821 static void __ecereNameSpace__ecere__com__FreeEnumValue(struct __ecereNameSpace__ecere__sys__NamedLink * value)
1823 (__ecereNameSpace__ecere__com__eSystem_Delete(value->name), value->name = 0);
1826 static void __ecereNameSpace__ecere__com__FreeTemplateArg(struct __ecereNameSpace__ecere__com__Class * template, struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, int id)
1831 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1834 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1841 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template)
1843 if(template->templateArgs)
1845 struct __ecereNameSpace__ecere__com__Class * _class;
1847 for(_class = template; _class; _class = _class->base)
1849 struct __ecereNameSpace__ecere__com__Class * prevClass;
1850 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1853 if(_class->templateClass)
1854 _class = _class->templateClass;
1855 for(prevClass = _class->base; prevClass; prevClass = prevClass->base)
1857 if(prevClass->templateClass)
1858 prevClass = prevClass->templateClass;
1859 id += prevClass->templateParams.count;
1861 if(id < template->numParams)
1863 for(param = _class->templateParams.first; param; param = param->next)
1868 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1871 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1883 static void __ecereNameSpace__ecere__com__FreeTemplate(struct __ecereNameSpace__ecere__com__Class * template)
1885 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
1887 if(template->nameSpace)
1889 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
1891 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1893 __ecereNameSpace__ecere__com__FreeTemplateArgs(template);
1894 (__ecereNameSpace__ecere__com__eSystem_Delete(template->fullName), template->fullName = 0);
1895 (__ecereNameSpace__ecere__com__eSystem_Delete(template->name), template->name = 0);
1896 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs), template->templateArgs = 0);
1897 while((deriv = template->derivatives.first))
1899 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
1900 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&template->derivatives, deriv);
1902 __ecereNameSpace__ecere__com___free(template);
1905 static void __ecereNameSpace__ecere__com__FreeTemplates(struct __ecereNameSpace__ecere__com__Class * _class)
1907 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
1909 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
1911 __ecereNameSpace__ecere__com__FreeTemplates(deriv->data);
1913 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1914 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1915 while((template = _class->templatized.first))
1917 __ecereNameSpace__ecere__com__FreeTemplates(template->data);
1918 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
1919 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
1923 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
1925 void __ecereNameSpace__ecere__com__eClass_Unregister(struct __ecereNameSpace__ecere__com__Class * _class)
1927 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1928 struct __ecereNameSpace__ecere__com__DataMember * member;
1929 struct __ecereNameSpace__ecere__com__Method * method;
1930 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
1931 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
1932 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1934 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1935 __ecereNameSpace__ecere__com__FreeTemplates(_class);
1936 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1937 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1938 while((template = _class->templatized.first))
1940 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
1941 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
1943 while((member = _class->membersAndProperties.first))
1945 if(!member->isProperty && (member->type == 1 || member->type == 2))
1946 __ecereNameSpace__ecere__com__DataMember_Free(member);
1947 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
1948 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
1949 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, member);
1951 while((member = _class->conversions.first))
1953 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
1954 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
1955 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->conversions, member);
1957 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->prop)))
1959 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1961 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->members)))
1963 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1965 while((classProp = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->classProperties)))
1967 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->name), classProp->name = 0);
1968 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->dataTypeString), classProp->dataTypeString = 0);
1969 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)classProp);
1971 while((method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods)))
1973 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1974 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1975 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1977 if(_class->type == 4)
1979 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1981 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&data->values, (void *)__ecereNameSpace__ecere__com__FreeEnumValue);
1983 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->delayedCPValues, (((void *)0)));
1984 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->selfWatchers, (((void *)0)));
1987 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1989 for(deriv = base->derivatives.first; deriv; deriv = deriv->next)
1991 if(deriv->data == _class)
1995 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1997 while((deriv = _class->derivatives.first))
1999 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2000 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->derivatives, deriv);
2002 if(_class->nameSpace)
2004 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
2006 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2008 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->name), _class->name = 0);
2009 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
2010 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2011 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->data), _class->data = 0);
2012 while((param = _class->templateParams.first))
2017 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.dataTypeString), param->defaultArg.dataTypeString = 0);
2020 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.memberString), param->defaultArg.memberString = 0);
2025 if(param->type != 1)
2026 (__ecereNameSpace__ecere__com__eSystem_Delete(param->dataTypeString), param->dataTypeString = 0);
2027 (__ecereNameSpace__ecere__com__eSystem_Delete(param->name), param->name = 0);
2028 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templateParams, param);
2030 __ecereNameSpace__ecere__com___free(_class);
2033 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, unsigned int key);
2035 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__ScanNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2037 struct __ecereNameSpace__ecere__sys__BinaryTree * tree = (struct __ecereNameSpace__ecere__sys__BinaryTree *)((unsigned char *)nameSpace + (unsigned int)listOffset);
2038 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find((&*tree), (unsigned int)name);
2039 struct __ecereNameSpace__ecere__com__NameSpace * child;
2043 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)))
2045 link = __ecereNameSpace__ecere__com__ScanNameSpace(child, name, listOffset);
2053 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2059 for(c = 0; (ch = name[c]); c++)
2065 if(level == 0 && (ch == '.' || (ch == ':' && name[c + 1] == ':')))
2067 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
2068 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
2070 memcpy(spaceName, name + start, c - start);
2071 spaceName[c - start] = '\0';
2072 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&nameSpace->nameSpaces, spaceName);
2073 __ecereNameSpace__ecere__com___free(spaceName);
2075 return (((void *)0));
2076 nameSpace = newSpace;
2077 if(level == 0 && ch == ':')
2084 return __ecereNameSpace__ecere__com__ScanNameSpace(nameSpace, name + start, listOffset);
2086 return (((void *)0));
2089 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchModule(struct __ecereNameSpace__ecere__com__Instance * module, char * name, void * listOffset, unsigned int searchPrivate)
2091 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2092 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2096 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace, name, listOffset);
2100 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace, name, listOffset);
2103 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules.first; subModule; subModule = subModule->next)
2105 if(searchPrivate || subModule->importMode == 1)
2107 link = __ecereNameSpace__ecere__com__SearchModule(subModule->module, name, listOffset, 0x0);
2112 return (((void *)0));
2115 extern int isspace(int c);
2117 long long __ecereNameSpace__ecere__com___strtoi64(char * string, char ** endString, int base)
2119 long long value = 0;
2124 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2136 if(ch == (char)0 && string[c + 1] == 'x')
2149 for(; (ch = string[c]); c++)
2153 else if(ch >= '1' && ch <= '9')
2155 else if(ch >= 'a' && ch <= 'z')
2157 else if(ch >= 'A' && ch <= 'Z')
2161 *endString = string + c;
2171 *endString = string + c;
2175 return sign * value;
2178 uint64 __ecereNameSpace__ecere__com___strtoui64(char * string, char ** endString, int base)
2185 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2197 if(ch == (char)0 && string[c + 1] == 'x')
2210 for(; (ch = string[c]); c++)
2214 else if(ch >= '1' && ch <= '9')
2216 else if(ch >= 'a' && ch <= 'z')
2218 else if(ch >= 'A' && ch <= 'Z')
2222 *endString = string + c;
2232 *endString = string + c;
2236 return sign * value;
2239 extern char * strcat(char * , const char * );
2241 extern int strlen(const char * );
2243 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
2245 void * __ecereTemp1;
2249 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2251 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2254 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2258 char noTemplateName[1024];
2259 char * templateParams = strchr(name, '<');
2263 strncpy(noTemplateName, name, templateParams - name);
2264 noTemplateName[templateParams - name] = '\0';
2267 strcpy(noTemplateName, name);
2268 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2270 link = __ecereNameSpace__ecere__com__SearchModule(module, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2273 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
2274 struct __ecereNameSpace__ecere__com__Class * templatedClass = (((void *)0));
2275 char className[1024];
2277 strcpy(className, _class->fullName);
2278 strcat(className, templateParams);
2279 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2282 link = __ecereNameSpace__ecere__com__SearchModule(module, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2285 if(_class && templateParams)
2287 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct1 =
2291 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct0 =
2296 templatedClass = __ecereNameSpace__ecere__com__eSystem_New0(368);
2297 *templatedClass = *_class;
2298 templatedClass->templateClass = _class;
2299 templatedClass->fullName = __ecereNameSpace__ecere__sys__CopyString(className);
2300 templatedClass->name = __ecereNameSpace__ecere__sys__CopyString(templatedClass->fullName + strlen(_class->fullName) - strlen(_class->name));
2301 __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)));
2302 templatedClass->templateArgs = (((void *)0));
2303 templatedClass->numParams = 0;
2304 templatedClass->derivatives = __simpleStruct0;
2305 templatedClass->templatized = __simpleStruct1;
2306 __ecereNameSpace__ecere__com__ComputeClassParameters(templatedClass, templateParams, module);
2307 __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)));
2309 return templatedClass;
2313 return (((void *)0));
2316 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg)
2321 arg->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(arg->dataTypeString);
2326 arg->memberString = __ecereNameSpace__ecere__sys__CopyString(arg->memberString);
2331 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
2333 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
2335 extern double strtod(char * , char * * );
2337 extern int sprintf(char * , char * , ...);
2339 extern char * strstr(char * , const char * );
2341 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);
2343 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2345 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2347 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule)
2350 char * nextParamStart = templateParams ? (templateParams + 1) : (((void *)0));
2351 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam = (((void *)0));
2352 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0)), * sClass;
2355 struct __ecereNameSpace__ecere__com__Class * _class = templatedClass->templateClass ? templatedClass->templateClass : templatedClass;
2357 for(sClass = _class; sClass; sClass = sClass->base)
2359 if(sClass->templateClass)
2360 sClass = sClass->templateClass;
2361 numParams += sClass->templateParams.count;
2363 if(templatedClass->templateArgs)
2364 __ecereNameSpace__ecere__com__FreeTemplateArgs(templatedClass);
2365 (__ecereNameSpace__ecere__com__eSystem_Delete(templatedClass->templateArgs), templatedClass->templateArgs = 0);
2366 templatedClass->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
2367 templatedClass->numParams = numParams;
2368 if(_class != templatedClass)
2371 if(templatedClass->base && templatedClass->base->templateArgs && _class == templatedClass)
2373 struct __ecereNameSpace__ecere__com__Class * sClass;
2375 memcpy(templatedClass->templateArgs, templatedClass->base->templateArgs, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams - templatedClass->templateParams.count));
2376 for(sClass = templatedClass->base; sClass; sClass = sClass->base)
2378 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2379 struct __ecereNameSpace__ecere__com__Class * prevClass;
2382 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
2384 if(prevClass->templateClass)
2385 prevClass = prevClass->templateClass;
2386 id += prevClass->templateParams.count;
2388 if(sClass->templateClass)
2389 sClass = sClass->templateClass;
2390 for(param = sClass->templateParams.first; param; param = param->next)
2391 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[id++]);
2394 while(nextParamStart)
2396 char * paramStart = nextParamStart;
2400 while(*paramStart == ' ')
2402 paramEnd = paramStart;
2403 while((ch = *paramEnd, ch && (level > 0 || (ch != '>' && ch != ','))))
2411 nextParamStart = (ch == ',') ? (paramEnd + 1) : (((void *)0));
2412 while(*paramEnd == ' ')
2414 if(paramEnd > paramStart)
2416 char * ptr, * equal = (((void *)0));
2418 for(ptr = paramStart; ptr <= paramEnd; ptr++)
2428 char * end = equal - 1;
2433 strncpy(ident, paramStart, end + 1 - paramStart);
2434 ident[end + 1 - paramStart] = (char)0;
2435 for(sClass = _class; sClass; sClass = sClass->base)
2437 if(sClass->templateClass)
2438 sClass = sClass->templateClass;
2439 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
2441 if(!strcmp(curParam->name, ident))
2446 struct __ecereNameSpace__ecere__com__Class * nextClass;
2447 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prevParam;
2450 for(prevParam = curParam->prev; prevParam; prevParam = prevParam->prev)
2452 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2454 if(nextClass->templateClass)
2455 nextClass = nextClass->templateClass;
2456 curParamID += nextClass->templateParams.count;
2467 curParam = curParam->next;
2472 for(sClass = lastClass ? lastClass->base : _class; sClass; sClass = sClass->base)
2474 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2477 if(sClass->templateClass)
2478 sClass = sClass->templateClass;
2479 for(param = sClass->templateParams.first; param; param = param->next, curParamID++)
2486 struct __ecereNameSpace__ecere__com__Class * nextClass;
2488 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2490 if(nextClass->templateClass)
2491 nextClass = nextClass->templateClass;
2492 curParamID += nextClass->templateParams.count;
2502 struct __ecereNameSpace__ecere__com__ClassTemplateArgument argument =
2511 while(*equal == ' ')
2513 memcpy(value, equal, paramEnd - equal);
2514 value[paramEnd - equal] = (char)0;
2518 memcpy(value, paramStart, paramEnd - paramStart);
2519 value[paramEnd - paramStart] = (char)0;
2521 __ecereNameSpace__ecere__sys__TrimRSpaces(value, value);
2522 switch(curParam->type)
2525 argument.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value);
2526 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, value);
2527 if(!argument.dataTypeClass)
2528 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->application, value);
2529 if(!argument.dataTypeClass)
2530 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, value);
2534 struct __ecereNameSpace__ecere__com__Class * expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, curParam->dataTypeString);
2537 expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->application, curParam->dataTypeString);
2540 expClass->_vTbl[__ecereVMethodID_class_OnGetDataFromString](expClass, &argument.expression, value);
2542 else if(value[0] == '\"')
2544 char * endQuote = value + strlen(value) - 1;
2546 if(*endQuote != '\"')
2549 argument.expression.p = __ecereNameSpace__ecere__sys__CopyString(value + 1);
2551 else if(value[0] == '\'')
2554 unsigned int ch = __ecereNameSpace__ecere__sys__UTF8GetChar(value + 1, &nb);
2556 argument.expression.ui = ch;
2558 else if(!strcmp(curParam->dataTypeString, "uint"))
2560 argument.expression.ui = strtoul(value, (((void *)0)), 0);
2562 else if(!strcmp(curParam->dataTypeString, "char"))
2564 argument.expression.c = (char)strtol(value, (((void *)0)), 0);
2566 else if(!strcmp(curParam->dataTypeString, "byte"))
2568 argument.expression.uc = (unsigned char)strtoul(value, (((void *)0)), 0);
2570 else if(!strcmp(curParam->dataTypeString, "short"))
2572 argument.expression.s = (short)strtol(value, (((void *)0)), 0);
2574 else if(!strcmp(curParam->dataTypeString, "uint16"))
2576 argument.expression.us = (unsigned short)strtoul(value, (((void *)0)), 0);
2578 else if(!strcmp(curParam->dataTypeString, "int64"))
2580 argument.expression.i64 = __ecereNameSpace__ecere__com___strtoi64(value, (((void *)0)), 0);
2582 else if(!strcmp(curParam->dataTypeString, "uint64"))
2584 argument.expression.ui64 = __ecereNameSpace__ecere__com___strtoui64(value, (((void *)0)), 0);
2586 else if(!strcmp(curParam->dataTypeString, "float"))
2588 argument.expression.f = (float)strtod(value, (((void *)0)));
2590 else if(!strcmp(curParam->dataTypeString, "double"))
2592 argument.expression.d = strtod(value, (((void *)0)));
2596 argument.expression.i = strtol(value, (((void *)0)), 0);
2601 argument.memberString = __ecereNameSpace__ecere__sys__CopyString(value);
2604 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, curParam, curParamID);
2605 templatedClass->templateArgs[curParamID] = argument;
2609 if(templatedClass == _class)
2611 struct __ecereNameSpace__ecere__com__Class * sClass = _class;
2613 struct __ecereNameSpace__ecere__com__Class * nextClass;
2614 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2616 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2618 if(nextClass->templateClass)
2619 nextClass = nextClass->templateClass;
2620 curParamID += nextClass->templateParams.count;
2622 for(param = sClass->templateParams.first; param; param = param->next)
2624 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2626 templatedClass->templateArgs[curParamID] = param->defaultArg;
2627 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2628 if(param->type == 0 && param->defaultArg.dataTypeString)
2630 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2631 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2632 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, param->defaultArg.dataTypeString);
2633 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2634 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2640 if(templatedClass->base && templatedClass->base->templateArgs && numParams - _class->templateParams.count)
2642 int c = numParams - _class->templateParams.count - 1;
2644 for(sClass = _class->base; sClass; sClass = sClass->base)
2646 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2648 if(sClass->templateClass)
2649 sClass = sClass->templateClass;
2650 for(param = sClass->templateParams.last; param; param = param->prev)
2652 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2653 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * baseArg = &templatedClass->base->templateArgs[c];
2655 if(!(*arg).dataTypeString)
2657 *arg = templatedClass->base->templateArgs[c];
2658 __ecereNameSpace__ecere__com__CopyTemplateArg(param, arg);
2659 if(param->type == 0)
2661 if((*arg).dataTypeClass && strchr((*arg).dataTypeString, '<') && (*arg).dataTypeClass->templateArgs)
2663 struct __ecereNameSpace__ecere__com__Class * expClass = (*arg).dataTypeClass;
2664 struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0));
2667 char templateString[1024];
2669 sprintf(templateString, "%s<", expClass->templateClass->fullName);
2670 for(cClass = expClass; cClass; cClass = cClass->base)
2673 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2675 for(param = cClass->templateParams.first; param; param = param->next)
2678 struct __ecereNameSpace__ecere__com__Class * sClass;
2679 struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg;
2681 for(sClass = expClass->base; sClass; sClass = sClass->base)
2682 id += sClass->templateParams.count;
2683 arg = expClass->templateArgs[id];
2685 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2686 int p = numParams - _class->templateParams.count;
2688 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2690 if(cParam->type == 0 && arg.dataTypeString && !strcmp(cParam->name, arg.dataTypeString))
2692 arg.dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2693 arg.dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2710 strcat(argument, arg.member->name);
2715 if(arg.dataTypeString)
2716 strcat(argument, arg.dataTypeString);
2723 strcat(templateString, ", ");
2724 if(lastParam != p - 1)
2726 strcat(templateString, param->name);
2727 strcat(templateString, " = ");
2729 strcat(templateString, argument);
2738 int len = strlen(templateString);
2740 if(templateString[len - 1] == '>')
2741 templateString[len++] = ' ';
2742 templateString[len++] = '>';
2743 templateString[len++] = '\0';
2745 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2746 (*arg).dataTypeString = __ecereNameSpace__ecere__sys__CopyString(templateString);
2747 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, templateString);
2748 if(!(*arg).dataTypeClass)
2749 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, templateString);
2753 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2754 int p = numParams - _class->templateParams.count;
2756 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2758 if(cParam->type == 0 && (*baseArg).dataTypeString && !strcmp(cParam->name, (*baseArg).dataTypeString))
2760 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2761 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2762 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2763 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2775 struct __ecereNameSpace__ecere__com__Class * sClass;
2777 for(sClass = _class; sClass; sClass = sClass->base)
2780 struct __ecereNameSpace__ecere__com__Class * nextClass;
2781 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2783 if(sClass->templateClass)
2784 sClass = sClass->templateClass;
2785 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2787 if(nextClass->templateClass)
2788 nextClass = nextClass->templateClass;
2789 curParamID += nextClass->templateParams.count;
2791 for(param = sClass->templateParams.first; param; param = param->next)
2793 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2795 templatedClass->templateArgs[curParamID] = param->defaultArg;
2796 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2797 if(param->type == 0 && param->defaultArg.dataTypeString)
2799 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2800 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2801 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, param->defaultArg.dataTypeString);
2802 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2803 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2811 int c = numParams - 1;
2813 for(sClass = _class; sClass; sClass = sClass->base)
2815 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2817 if(sClass->templateClass)
2818 sClass = sClass->templateClass;
2819 for(param = sClass->templateParams.last; param; param = param->prev)
2821 if(param->type == 0)
2823 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2824 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2825 struct __ecereNameSpace__ecere__com__Class * dClass;
2826 int p = numParams - 1;
2828 for(dClass = _class; dClass; dClass = dClass->base)
2830 if(dClass->templateClass)
2831 dClass = dClass->templateClass;
2832 for(cParam = dClass->templateParams.last; cParam; cParam = cParam->prev, p--)
2834 if(cParam->type == 0 && (*arg).dataTypeString && !strcmp(cParam->name, (*arg).dataTypeString))
2836 if(templatedClass->templateArgs[p].dataTypeString && c != p)
2838 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2839 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2840 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2841 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2852 struct __ecereNameSpace__ecere__com__Class * tClass;
2853 int c = numParams - 1;
2855 for(tClass = _class; tClass; tClass = tClass->base)
2857 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2859 if(tClass->templateClass)
2860 tClass = tClass->templateClass;
2861 for(param = tClass->templateParams.last; param; param = param->prev)
2863 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2865 if(param->type == 1 && (*arg).memberString)
2867 struct __ecereNameSpace__ecere__com__Class * memberClass = templatedClass;
2868 char * memberString = (*arg).memberString;
2869 char * colon = strstr(memberString, "::");
2870 char * memberName = memberString;
2873 memberName = colon + 2;
2876 memberString = param->defaultArg.memberString;
2877 colon = memberString ? strstr(memberString, "::") : (((void *)0));
2881 char className[1024];
2882 struct __ecereNameSpace__ecere__com__Class * sClass;
2884 memcpy(className, memberString, colon - memberString);
2885 className[colon - memberString] = '\0';
2886 for(sClass = _class; sClass; sClass = sClass->base)
2888 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2889 struct __ecereNameSpace__ecere__com__Class * nextClass;
2892 if(sClass->templateClass)
2893 sClass = sClass->templateClass;
2894 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2896 if(nextClass->templateClass)
2897 nextClass = nextClass->templateClass;
2898 id += nextClass->templateParams.count;
2900 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
2902 if(cParam->type == 0 && !strcmp(cParam->name, className) && templatedClass->templateArgs[id].dataTypeString)
2904 strcpy(className, templatedClass->templateArgs[id].dataTypeString);
2909 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, className);
2911 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, className);
2913 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, className);
2917 switch(param->memberType)
2920 (*arg).member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
2923 (*arg).method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
2926 (*arg).prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
2937 unsigned int __ecereNameSpace__ecere__com__DefaultFunction()
2942 unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
2944 if(!_class && !from)
2946 if(_class && from && (_class->templateClass || from->templateClass))
2948 if(__ecereNameSpace__ecere__com__eClass_IsDerived(_class->templateClass ? _class->templateClass : _class, from->templateClass ? from->templateClass : from))
2950 if(!from->templateClass)
2952 else if(!_class->templateClass && _class == from->templateClass)
2956 struct __ecereNameSpace__ecere__com__Class * sClass;
2958 for(sClass = from; sClass; sClass = sClass->base)
2960 if(sClass->templateParams.first)
2962 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2963 struct __ecereNameSpace__ecere__com__Class * nextClass;
2966 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2967 p += nextClass->templateParams.count;
2968 for(param = sClass->templateParams.first; param; param = param->next, p++)
2970 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &_class->templateArgs[p];
2971 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * fArg = &from->templateArgs[p];
2973 if(param->type == 0)
2975 if((*arg).dataTypeString != (*fArg).dataTypeString && (*arg).dataTypeString && (*fArg).dataTypeString && strcmp((*arg).dataTypeString, (*fArg).dataTypeString))
2978 else if(param->type == 1)
2980 if((*arg).member != (*fArg).member)
2983 else if(param->type == 2)
2985 if((*arg).expression.ui64 != (*fArg).expression.ui64)
2999 for(; _class && from; _class = _class->base)
3001 if(_class == from || _class->templateClass == from || (_class->type == 1000 && from->name && !strcmp(_class->name, from->name)))
3008 static void __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(struct __ecereNameSpace__ecere__com__Class * base, char * name, int vid, void * origFunction, char * type)
3010 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3012 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3014 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3015 struct __ecereNameSpace__ecere__com__Method * method, * next;
3016 void * function = origFunction;
3019 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3020 memmove(_class->_vTbl + vid + 1, _class->_vTbl + vid, (_class->vTblSize - vid - 1) * sizeof(void *));
3021 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3024 if(method->function)
3025 function = method->function;
3028 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
3029 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3030 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3034 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3036 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type);
3037 method->_class = base;
3040 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
3042 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
3043 if(method->type == 1)
3046 _class->_vTbl[vid] = function;
3048 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3050 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3052 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3054 template->_vTbl = _class->_vTbl;
3057 if(_class->derivatives.first || _class->templatized.first)
3058 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, vid, function, type);
3061 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3063 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
3065 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3067 template->_vTbl = base->_vTbl;
3068 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(template, name, vid, origFunction, type);
3073 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3077 struct __ecereNameSpace__ecere__com__Class * base;
3079 for(base = _class; base; base = base->base)
3081 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3085 if(method->type == 1)
3087 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3088 void * oldFunction = _class->_vTbl[method->vid];
3090 if(method->vid > _class->vTblSize)
3093 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3094 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3096 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3098 if(derivClass->_vTbl[method->vid] == oldFunction)
3099 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3102 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3104 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3106 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3108 for(deriv = template->derivatives.first; deriv; deriv = deriv->next)
3110 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3112 if(derivClass->_vTbl[method->vid] == oldFunction)
3113 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3124 base = (((void *)0));
3132 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);
3134 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3138 return (((void *)0));
3141 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3145 struct __ecereNameSpace__ecere__com__Class * base;
3147 for(base = _class; base; base = base->base)
3149 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3153 if(method->type == 1)
3154 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3156 base = (((void *)0));
3162 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);
3164 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3165 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3166 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3167 if(_class->derivatives.first || _class->templatized.first)
3168 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, method->vid, function ? function : (void *)__ecereNameSpace__ecere__com__DefaultFunction, type);
3172 return (((void *)0));
3175 static void __ecereNameSpace__ecere__com__FixDerivativeProperty(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Property * _property)
3177 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3179 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3181 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3182 struct __ecereNameSpace__ecere__com__Property * prop;
3183 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3185 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
3189 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
3191 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
3193 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
3195 if(watcher->_property == prop)
3196 watcher->_property = _property;
3198 _property->selfWatchable = 0x1;
3199 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
3200 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
3201 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
3202 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
3205 for(prop = _class->membersAndProperties.first; prop; prop = prop->next)
3208 _class->startMemberID++;
3209 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3213 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)
3215 void * __ecereTemp1;
3216 struct __ecereNameSpace__ecere__com__Property * _property = (((void *)0));
3220 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, (name ? name : dataType)))
3222 _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));
3224 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, _property);
3226 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->conversions, _property);
3227 __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)));
3228 if(!_property->conversion)
3230 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3237 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property)
3239 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3240 struct __ecereNameSpace__ecere__sys__NamedLink * value, * next;
3242 for(value = _class->delayedCPValues.first; value; value = next)
3245 if(!strcmp(value->name, _property->name))
3247 _property->Set(_class, (int)value->data);
3248 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->delayedCPValues, value);
3251 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3253 __ecereNameSpace__ecere__com__SetDelayedCPValues(deriv->data, _property);
3257 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt)
3259 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name))
3261 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);
3263 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)_property);
3264 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
3267 return (((void *)0));
3270 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3272 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (((void *)0));
3276 struct __ecereNameSpace__ecere__com__Class * origClass = _class;
3278 for(; _class; _class = _class->base)
3280 _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name);
3284 if(!_property && origClass->type == 4)
3286 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(origClass->module, "enum");
3288 _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(enumClass, name);
3294 int __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3296 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3298 if(_property && _property->Get && _property->Get != (void *)1)
3300 int result = _property->Get(_class);
3307 void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int value)
3309 void * __ecereTemp1;
3310 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3315 _property->Set(_class, value);
3319 __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)));
3323 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3327 for(; _class; _class = _class->base)
3329 struct __ecereNameSpace__ecere__com__Method * method;
3331 if(_class->templateClass)
3332 _class = _class->templateClass;
3333 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3334 if(method && (method->memberAccess == 1 || _class->module == module || !method->dataTypeString))
3336 if(!method->dataTypeString)
3338 if(_class->module != module)
3340 if(method->memberAccess == 1)
3341 module = _class->module;
3344 return (((void *)0));
3353 if(_class->inheritanceAccess == 2 && _class->module != module)
3357 return (((void *)0));
3360 static unsigned int __ecereNameSpace__ecere__com__ConstructInstance(void * instance, struct __ecereNameSpace__ecere__com__Class * _class)
3362 if(_class->templateClass)
3363 _class = _class->templateClass;
3366 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class->base))
3369 if(_class->Initialize)
3371 void (* Initialize)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)_class->Initialize;
3373 _class->Initialize = (((void *)0));
3374 Initialize(_class->module);
3376 if(_class->Constructor)
3378 if(!_class->Constructor(instance))
3380 for(; _class; _class = _class->base)
3382 if(_class->templateClass)
3383 _class = _class->templateClass;
3384 if(_class->Destructor)
3385 _class->Destructor(instance);
3390 (_class->templateClass ? _class->templateClass : _class)->count++;
3394 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class)
3396 struct __ecereNameSpace__ecere__com__Instance * instance = (((void *)0));
3400 instance = __ecereNameSpace__ecere__com___calloc(1, _class->structSize);
3401 if(_class->type == 0)
3403 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3404 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3406 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class))
3408 __ecereNameSpace__ecere__com___free(instance);
3409 instance = (((void *)0));
3415 void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance ** instancePtr, struct __ecereNameSpace__ecere__com__Class * _class)
3417 if(_class && instancePtr && *instancePtr)
3419 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eSystem_Renew(*instancePtr, sizeof(unsigned char) * (_class->structSize));
3421 *instancePtr = instance;
3422 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);
3423 if(!strcmp(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->name, "Application"))
3425 struct __ecereNameSpace__ecere__com__Instance * module;
3426 struct __ecereNameSpace__ecere__com__Instance * app = (struct __ecereNameSpace__ecere__com__Instance *)instance;
3427 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3428 struct __ecereNameSpace__ecere__com__Class * _class;
3429 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
3431 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
3432 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = app;
3433 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)))
3435 struct __ecereNameSpace__ecere__sys__OldLink * t;
3437 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3438 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3440 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3442 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3445 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)))
3447 struct __ecereNameSpace__ecere__sys__OldLink * t;
3449 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3450 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3452 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3454 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3457 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)))
3458 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3459 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)))
3460 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3461 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)))
3462 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3463 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)))
3464 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3465 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)))
3466 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3467 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)))
3468 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3469 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3471 struct __ecereNameSpace__ecere__sys__OldLink * t;
3473 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace;
3474 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3476 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3478 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3481 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3482 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace;
3483 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3484 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace;
3485 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3486 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace;
3487 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3488 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace;
3489 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->classes.first; _class; _class = _class->next)
3491 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3493 _class->module = (struct __ecereNameSpace__ecere__com__Instance *)app;
3494 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3496 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3498 template->module = _class->module;
3501 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->application = app;
3504 struct __ecereNameSpace__ecere__com__Class * base;
3506 for(base = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; base && base->type == 0 && base->count; base = base->base)
3507 (base->templateClass ? base->templateClass : base)->count--;
3509 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3510 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3511 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class))
3513 __ecereNameSpace__ecere__com___free(instance);
3514 *instancePtr = (((void *)0));
3519 void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance)
3523 struct __ecereNameSpace__ecere__com__Class * _class, * base;
3524 unsigned int ownVtbl;
3526 ownVtbl = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl != ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl;
3527 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3529 if(_class->templateClass)
3530 _class = _class->templateClass;
3531 if(_class->destructionWatchOffset)
3533 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
3534 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
3536 for(watcher = (*watchers).first; watcher; watcher = next)
3538 next = watcher->next;
3539 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*watchers), watcher);
3540 watcher->callback(watcher->object, instance);
3541 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
3544 base = _class->base;
3545 if(base && base->type == 1000)
3546 base = (((void *)0));
3547 if(_class->Destructor)
3548 _class->Destructor(instance);
3550 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3552 if(_class->templateClass)
3553 _class = _class->templateClass;
3554 base = _class->base;
3555 (_class->templateClass ? _class->templateClass : _class)->count--;
3556 if(_class->type == 0 && !_class->count && !_class->module)
3558 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
3563 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl), ((struct __ecereNameSpace__ecere__com__Instance * )(char * )instance)->_vTbl = 0);
3565 __ecereNameSpace__ecere__com___free(instance);
3569 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3573 for(; _class; _class = _class->base)
3575 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3577 if(_class->templateClass)
3578 _class = _class->templateClass;
3579 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name);
3582 struct __ecereNameSpace__ecere__com__Property * _property = (struct __ecereNameSpace__ecere__com__Property *)link->data;
3584 if(_property->memberAccess == 1 || _class->module == module || !_property->dataTypeString)
3586 if(!_property->dataTypeString)
3588 if(_class->module != module)
3590 if(_property->memberAccess == 1)
3591 module = _class->module;
3594 return (((void *)0));
3604 if(_class->inheritanceAccess == 2 && _class->module != module)
3608 return (((void *)0));
3611 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)
3613 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3614 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3616 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(alist, name);
3619 dataMember = link->data;
3620 if(dataMember->type == 0 && (dataMember->memberAccess == 1 || searchPrivate || !dataMember->dataTypeString))
3623 *offset += dataMember->offset;
3625 *id = dataMember->id;
3628 return (((void *)0));
3630 for(dataMember = list->first; dataMember; dataMember = dataMember->next)
3632 if(!dataMember->isProperty && (dataMember->memberAccess == 1 || searchPrivate) && !dataMember->name && (dataMember->type == 1 || dataMember->type == 2))
3634 struct __ecereNameSpace__ecere__com__DataMember * childMember;
3636 if(subMemberStackPos)
3637 subMemberStack[(*subMemberStackPos)++] = dataMember;
3638 childMember = __ecereNameSpace__ecere__com__FindDataMember(&dataMember->members, &dataMember->membersAlpha, name, offset, id, searchPrivate, subMemberStack, subMemberStackPos);
3642 *offset += dataMember->offset;
3644 *id += dataMember->id;
3647 if(subMemberStackPos)
3648 (*subMemberStackPos)--;
3651 return (((void *)0));
3654 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)
3656 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3658 if(subMemberStackPos)
3659 *subMemberStackPos = 0;
3662 for(; _class; _class = _class->base)
3664 if(_class->templateClass)
3665 _class = _class->templateClass;
3666 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3669 if(!dataMember->dataTypeString)
3671 if(_class->module != module)
3673 if(dataMember->memberAccess == 1)
3674 module = _class->module;
3677 return (((void *)0));
3680 dataMember = (((void *)0));
3684 dataMember->_class = _class->templateClass ? _class->templateClass : _class;
3688 if(_class->inheritanceAccess == 2 && _class->module != module)
3695 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)
3697 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3699 if(subMemberStackPos)
3700 *subMemberStackPos = 0;
3705 for(; _class; _class = _class->base)
3707 if(_class->templateClass)
3708 _class = _class->templateClass;
3709 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, offset, (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3712 if(!dataMember->dataTypeString)
3714 if(_class->module != module)
3716 if(dataMember->memberAccess == 1)
3717 module = _class->module;
3720 return (((void *)0));
3723 dataMember = (((void *)0));
3727 dataMember->_class = _class;
3731 if(_class->inheritanceAccess == 2 && _class->module != module)
3738 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)
3740 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3742 if(subMemberStackPos)
3743 *subMemberStackPos = 0;
3746 for(; _class; _class = _class->base)
3748 if(_class->templateClass)
3749 _class = _class->templateClass;
3750 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), id, _class->module == module, subMemberStack, subMemberStackPos);
3753 if(!dataMember->dataTypeString)
3755 if(_class->module != module)
3757 if(dataMember->memberAccess == 1)
3758 module = _class->module;
3761 return (((void *)0));
3764 dataMember = (((void *)0));
3768 dataMember->_class = _class;
3772 if(_class->inheritanceAccess == 2 && _class->module != module)
3779 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)
3783 *curMember = (*curMember)->next;
3784 if(subMemberStackPos && *subMemberStackPos > 0 && subMemberStack[*subMemberStackPos - 1]->type == 1)
3786 *curMember = subMemberStack[--(*subMemberStackPos)];
3787 *curMember = (*curMember)->next;
3789 if(subMemberStackPos && *subMemberStackPos > 0)
3791 while(*curMember && ((*curMember)->memberAccess == 2))
3792 *curMember = (*curMember)->next;
3795 while(*curMember && (*curMember)->name)
3797 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3800 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3801 if(dataMember && dataMember->memberAccess != 2)
3803 *curMember = dataMember;
3807 *curMember = (*curMember)->next;
3809 if(subMemberStackPos)
3811 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3813 subMemberStack[(*subMemberStackPos)++] = *curMember;
3814 *curMember = (*curMember)->members.first;
3815 while(*curMember && ((*curMember)->memberAccess == 2))
3816 *curMember = (*curMember)->next;
3824 if(subMemberStackPos && *subMemberStackPos)
3826 *curMember = subMemberStack[--(*subMemberStackPos)];
3827 *curMember = (*curMember)->next;
3831 struct __ecereNameSpace__ecere__com__Class * lastCurClass = *curClass;
3833 if(*curClass == _class)
3835 for(*curClass = _class; (*curClass)->base != lastCurClass && (*curClass)->base->type != 1000 && (*curClass)->inheritanceAccess != 2; *curClass = (*curClass)->base)
3837 *curMember = (*curClass)->membersAndProperties.first;
3839 if(subMemberStackPos && *subMemberStackPos > 0)
3841 while(*curMember && ((*curMember)->memberAccess == 2))
3842 *curMember = (*curMember)->next;
3845 while(*curMember && (*curMember)->name)
3847 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3850 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3851 if(dataMember && dataMember->memberAccess != 2)
3853 *curMember = dataMember;
3857 *curMember = (*curMember)->next;
3859 if(subMemberStackPos)
3861 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3863 subMemberStack[(*subMemberStackPos)++] = *curMember;
3864 *curMember = (*curMember)->members.first;
3865 while(*curMember && (*curMember)->memberAccess == 2)
3866 *curMember = (*curMember)->next;
3873 void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function)
3875 if(instance && name)
3877 struct __ecereNameSpace__ecere__com__Class * _class;
3879 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
3881 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3883 if(method && method->type == 1)
3885 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl == ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl)
3887 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(void *) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
3888 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);
3890 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3896 unsigned int __ecereNameSpace__ecere__com__eInstance_IsDerived(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Class * from)
3900 struct __ecereNameSpace__ecere__com__Class * _class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3902 for(; _class; _class = _class->base)
3911 void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance)
3914 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount++;
3917 void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance)
3921 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount--;
3922 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount <= 0)
3924 __ecereNameSpace__ecere__com__eInstance_Delete(instance);
3929 static void __ecereNameSpace__ecere__com__FixOffsets(struct __ecereNameSpace__ecere__com__Class * _class)
3931 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3933 _class->structSize += _class->base->structSize - _class->offset;
3934 _class->offset = _class->base->structSize;
3935 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3936 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
3939 void __ecereNameSpace__ecere__com__eClass_Resize(struct __ecereNameSpace__ecere__com__Class * _class, int newSize)
3941 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3943 _class->structSize = newSize;
3944 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3945 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
3948 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)
3950 void * __ecereTemp1;
3954 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
3956 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3960 int __simpleStruct0;
3962 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
3963 if(_class->memberOffset % alignment)
3964 _class->memberOffset += alignment - (_class->memberOffset % alignment);
3966 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));
3967 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
3968 _class->memberOffset += size;
3969 __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)));
3973 return (((void *)0));
3976 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)
3978 void * __ecereTemp1;
3980 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&member->membersAlpha, name))
3982 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3986 int __simpleStruct0;
3988 member->structAlignment = (__simpleStruct0 = member->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
3989 if(member->memberOffset % alignment)
3990 member->memberOffset += alignment - (member->memberOffset % alignment);
3992 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));
3993 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&member->members, dataMember);
3994 if(member->type == 1)
3996 if(size > member->memberOffset)
3997 member->memberOffset = size;
4000 member->memberOffset += size;
4001 __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)));
4004 return (((void *)0));
4007 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode)
4009 void * __ecereTemp1;
4011 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));
4014 static void __ecereNameSpace__ecere__com__SetMemberClass(struct __ecereNameSpace__ecere__com__DataMember * member, struct __ecereNameSpace__ecere__com__Class * _class)
4016 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4018 member->_class = _class;
4019 for(dataMember = member->members.first; dataMember; dataMember = dataMember->next)
4020 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4023 unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4025 void * __ecereTemp1;
4026 int __simpleStruct0, __simpleStruct1;
4028 if(dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&addTo->membersAlpha, dataMember->name))
4030 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&addTo->members, dataMember);
4031 if(dataMember->name)
4032 __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)));
4033 dataMember->_class = addTo->_class;
4034 dataMember->id = addTo->memberID;
4035 if(dataMember->type == 1)
4036 addTo->memberID += 1;
4038 addTo->memberID += dataMember->memberID;
4039 addTo->structAlignment = (__simpleStruct0 = addTo->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4040 dataMember->offset = (addTo->type == 1) ? 0 : addTo->memberOffset;
4041 if(addTo->type == 1)
4043 if(dataMember->memberOffset > addTo->memberOffset)
4044 addTo->memberOffset = dataMember->memberOffset;
4047 addTo->memberOffset += dataMember->memberOffset;
4051 unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4053 void * __ecereTemp1;
4054 int __simpleStruct0, __simpleStruct1;
4056 if(!_class || _class->comRedefinition || (dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, dataMember->name)))
4058 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4059 if(dataMember->name)
4060 __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)));
4061 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4062 dataMember->id = _class->memberID;
4063 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4064 if(dataMember->type == 1)
4065 _class->memberID += 1;
4067 _class->memberID += dataMember->memberID;
4068 dataMember->offset = _class->memberOffset;
4069 _class->memberOffset += dataMember->memberOffset;
4073 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)
4075 void * __ecereTemp1;
4077 if(_class && name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4081 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);
4083 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, bitMember);
4086 bitMember->pos = (bitPos == -1) ? _class->memberOffset : bitPos;
4087 bitMember->size = bitSize;
4088 _class->memberOffset = bitMember->pos + bitMember->size;
4089 for(c = 0; c < bitSize; c++)
4095 bitMember->mask = mask << bitMember->pos;
4097 __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)));
4100 return (((void *)0));
4103 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__Module_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int ensureCOM)
4105 void * __ecereTemp1;
4106 unsigned int (stdcall * Load)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4107 void (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4108 struct __ecereNameSpace__ecere__com__Instance * module;
4110 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
4112 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4115 if(ensureCOM && (!strcmp(name, "ecereCOM") || !strcmp(name, "ecere")))
4117 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
4119 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecere") || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM"))
4125 void * library = (((void *)0));
4127 if(ensureCOM && !strcmp(name, "ecereCOM"))
4129 Load = __ecereDll_Load_ecere;
4130 Unload = __ecereDll_Unload_ecere;
4134 library = Instance_Module_Load(name, &Load, &Unload);
4138 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4139 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4140 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library = library;
4141 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4142 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = Unload;
4145 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4146 module = (((void *)0));
4149 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules, module);
4151 if(ensureCOM && !strcmp(name, "ecere") && module)
4153 name = !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM") ? "ecere" : "ecereCOM";
4154 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))
4156 struct __ecereNameSpace__ecere__com__Instance * module;
4158 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
4160 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4165 Load = __ecereDll_Load_ecere;
4166 Unload = __ecereDll_Unload_ecere;
4167 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4168 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4169 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library = (((void *)0));
4170 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4171 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = Unload;
4174 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4175 module = (((void *)0));
4177 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules, module);
4183 __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)));
4185 module->_refCount++;
4193 __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)));
4195 module->_refCount++;
4200 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4202 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x1);
4205 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4207 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x0);
4210 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))
4212 void * __ecereTemp1;
4213 struct __ecereNameSpace__ecere__com__Instance * module;
4215 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
4217 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4224 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4225 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4226 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4227 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = (void *)Unload;
4230 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4231 module = (((void *)0));
4234 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules, module);
4240 __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)));
4242 module->_refCount++;
4247 void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module)
4249 struct __ecereNameSpace__ecere__sys__OldLink * m;
4251 for(m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->modules.first; m; m = m->next)
4253 if(m->data == module)
4258 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->modules, m);
4259 (__ecereNameSpace__ecere__com__eInstance_DecRef(module), module = 0);
4263 void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value)
4265 void * __ecereTemp1;
4267 if(_class && _class->type == 4)
4269 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4270 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4272 for(item = data->values.first; item; item = item->next)
4273 if(!strcmp(item->name, string))
4277 __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)));
4278 if(value > data->largest)
4279 data->largest = value;
4284 int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
4286 void * __ecereTemp1;
4288 if(_class && _class->type == 4)
4290 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4291 int value = data->largest + 1;
4292 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4294 for(item = data->values.first; item; item = item->next)
4295 if(!strcmp(item->name, string))
4299 __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)));
4300 if(value > data->largest)
4301 data->largest = value;
4308 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace)
4310 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
4312 (__ecereNameSpace__ecere__com__eSystem_Delete(parentNameSpace->name), parentNameSpace->name = 0);
4313 while((nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentNameSpace->nameSpaces)))
4315 __ecereNameSpace__ecere__com__NameSpace_Free(nameSpace);
4316 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentNameSpace->nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace);
4320 static void __ecereNameSpace__ecere__com__Application_Destructor(struct __ecereNameSpace__ecere__com__Instance * app)
4322 if(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->parsedCommand)
4324 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->argv), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + 296)))->argv = 0);
4325 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->parsedCommand), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + 296)))->parsedCommand = 0);
4329 static unsigned int __ecereNameSpace__ecere__com__Module_Constructor(struct __ecereNameSpace__ecere__com__Instance * module)
4331 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4332 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4333 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4334 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4335 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4336 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4337 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4338 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4342 static void __ecereNameSpace__ecere__com__Module_Destructor(struct __ecereNameSpace__ecere__com__Instance * module)
4344 struct __ecereNameSpace__ecere__com__Class * _class;
4345 struct __ecereNameSpace__ecere__com__DefinedExpression * def;
4346 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
4347 struct __ecereNameSpace__ecere__com__Instance * m;
4348 struct __ecereNameSpace__ecere__com__SubModule * handle;
4350 for(m = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->allModules.first; m; m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->next)
4352 struct __ecereNameSpace__ecere__com__SubModule * next;
4354 for(handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->modules.first; handle; handle = next)
4356 next = handle->next;
4357 if(handle->module == module)
4358 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->modules, handle);
4361 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload)
4363 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->importType == 1)
4365 unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload;
4371 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload;
4377 struct __ecereNameSpace__ecere__com__Instance * ourWorld = __ecereClass___ecereNameSpace__ecere__com__Class->module;
4378 void * ourHandle = (((void *)0));
4380 while((handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules.last))
4382 struct __ecereNameSpace__ecere__com__Instance * depModule = handle->module;
4384 if(depModule == ourWorld)
4386 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules, handle);
4391 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules, handle);
4392 (__ecereNameSpace__ecere__com__eInstance_DecRef(depModule), depModule = 0);
4397 (__ecereNameSpace__ecere__com__eSystem_Delete(ourHandle), ourHandle = 0);
4398 (__ecereNameSpace__ecere__com__eInstance_DecRef(ourWorld), ourWorld = 0);
4401 for(; (_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes.first); )
4403 if(_class->nameSpace)
4405 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
4406 struct __ecereNameSpace__ecere__sys__OldLink * t;
4408 for(t = _class->templatized.first; t; t = t->next)
4410 struct __ecereNameSpace__ecere__com__Class * template = t->data;
4411 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4413 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
4414 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
4415 template->nameSpace = (((void *)0));
4417 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
4418 _class->nameSpace = (((void *)0));
4420 _class->module = (((void *)0));
4421 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes, _class);
4422 if(!_class->count || _class->type != 0)
4423 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
4428 for(; (def = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines.first); )
4432 struct __ecereNameSpace__ecere__com__BTNamedLink * defLink;
4434 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)))
4435 if(defLink->data == def)
4437 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*def->nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)defLink);
4441 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
4442 (__ecereNameSpace__ecere__com__eSystem_Delete(def->value), def->value = 0);
4443 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines, def);
4445 for(; (function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions.first); )
4447 if(function->nameSpace)
4449 struct __ecereNameSpace__ecere__com__BTNamedLink * functionLink;
4451 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)))
4452 if(functionLink->data == function)
4454 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*function->nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)functionLink);
4458 (__ecereNameSpace__ecere__com__eSystem_Delete(function->name), function->name = 0);
4459 (__ecereNameSpace__ecere__com__eSystem_Delete(function->dataTypeString), function->dataTypeString = 0);
4460 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions, function);
4462 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name), ((struct __ecereNameSpace__ecere__com__Module * )(((char * )module + 12)))->name = 0);
4463 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace);
4464 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace);
4465 if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application)
4466 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->allModules, module);
4468 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace);
4469 Instance_Module_Free(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library);
4472 static int __ecereNameSpace__ecere__com__GetEnumSize(struct __ecereNameSpace__ecere__com__Class * _class)
4474 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4476 return data->largest + 1;
4479 char * strlwr(char * string)
4483 for(c = 0; string[c]; c++)
4484 if(string[c] >= 'A' && string[c] <= 'Z')
4485 string[c] += 'a' - 'A';
4489 char * strupr(char * string)
4493 for(c = 0; string[c]; c++)
4494 if(string[c] >= 'a' && string[c] <= 'z')
4495 string[c] -= 'a' - 'A';
4499 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4501 void * __ecereTemp1;
4502 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4505 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
4507 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace;
4510 for(c = 0; name[c]; c++)
4512 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4514 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4515 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4517 strncpy(spaceName, name + start, c - start);
4518 spaceName[c - start] = '\0';
4519 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4522 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4523 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4524 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4525 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4526 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4527 (*newSpace).name = spaceName;
4528 (*newSpace).parent = nameSpace;
4529 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4532 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4533 nameSpace = newSpace;
4542 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).defines, name + start))
4544 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);
4546 __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)));
4547 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines, def);
4550 return (((void *)0));
4553 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4555 void * __ecereTemp1;
4556 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4559 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
4561 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace;
4564 for(c = 0; name[c]; c++)
4566 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4568 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4569 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4571 strncpy(spaceName, name + start, c - start);
4572 spaceName[c - start] = '\0';
4573 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4576 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4577 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4578 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4579 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4580 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4581 (*newSpace).name = spaceName;
4582 (*newSpace).parent = nameSpace;
4583 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4586 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4587 nameSpace = newSpace;
4596 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).functions, name + start))
4598 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);
4600 __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)));
4601 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions, function);
4604 return (((void *)0));
4607 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4611 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4613 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines);
4616 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines, 0x1);
4620 return (((void *)0));
4623 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4627 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4629 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions);
4632 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions, 0x1);
4636 return (((void *)0));
4639 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size)
4641 return __ecereNameSpace__ecere__com___realloc(memory, size);
4644 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size)
4646 return __ecereNameSpace__ecere__com___crealloc(memory, size);
4649 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size)
4651 return __ecereNameSpace__ecere__com___malloc(size);
4654 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size)
4656 return __ecereNameSpace__ecere__com___calloc(1, size);
4659 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory)
4662 __ecereNameSpace__ecere__com___free(memory);
4665 void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4667 if(instance && _property && _property->selfWatchable)
4669 struct __ecereNameSpace__ecere__com__Class * _class;
4671 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4673 struct __ecereNameSpace__ecere__com__SelfWatcher * selfWatcher, * next;
4675 for(selfWatcher = _class->selfWatchers.first; selfWatcher; selfWatcher = next)
4677 next = selfWatcher->next;
4678 if(selfWatcher->_property == _property)
4679 selfWatcher->callback(instance);
4685 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4687 if(instance && _property && _property->isWatchable)
4689 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4690 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
4692 for(watcher = (*watchers).first; watcher; watcher = next)
4694 next = watcher->next;
4695 watcher->callback(watcher->object, instance);
4700 void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property)
4702 if(!_property->isWatchable)
4704 struct __ecereNameSpace__ecere__com__Class * _class = _property->_class;
4706 if(!_class->computeSize)
4708 _property->watcherOffset = _class->structSize;
4709 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4710 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4712 _property->isWatchable = 0x1;
4716 void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(struct __ecereNameSpace__ecere__com__Class * _class)
4718 if(!_class->destructionWatchOffset)
4720 _class->destructionWatchOffset = _class->structSize;
4721 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4722 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4726 void __ecereNameSpace__ecere__com__eProperty_SelfWatch(struct __ecereNameSpace__ecere__com__Class * _class, char * name, void (* callback)(void *))
4728 void * __ecereTemp1;
4732 struct __ecereNameSpace__ecere__com__Property * _property = __ecereNameSpace__ecere__com__eClass_FindProperty(_class, name, _class->module);
4735 _property = __ecereNameSpace__ecere__com__eClass_AddProperty(_class, name, (((void *)0)), (((void *)0)), (((void *)0)), 4);
4736 __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)));
4737 _property->selfWatchable = 0x1;
4741 void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void *, void *))
4743 void * __ecereTemp1;
4745 if(_property->isWatchable)
4747 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4749 __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)));
4753 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 *))
4755 void * __ecereTemp1;
4756 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->destructionWatchOffset);
4758 __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)));
4761 void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object)
4763 if(instance && (!_property || _property->isWatchable))
4767 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4768 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4770 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4771 if(watcher->object == object)
4773 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4779 struct __ecereNameSpace__ecere__com__Class * _class, * base;
4781 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
4783 if(_class->destructionWatchOffset)
4785 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
4786 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4788 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4790 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4794 for(_property = (struct __ecereNameSpace__ecere__com__Property *)_class->membersAndProperties.first; _property; _property = _property->next)
4796 if(_property->isProperty && _property->isWatchable)
4798 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4799 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4801 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4802 if(watcher->object == object)
4804 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4809 base = _class->base;
4810 if(base && base->type == 1000)
4811 base = (((void *)0));
4817 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eClass_GetDesigner(struct __ecereNameSpace__ecere__com__Class * _class)
4819 for(; _class; _class = _class->base)
4821 if(_class->designerClass)
4822 return (struct __ecereNameSpace__ecere__com__Class *)__ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->designerClass);
4824 return (((void *)0));
4827 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eInstance_GetDesigner(struct __ecereNameSpace__ecere__com__Instance * instance)
4830 return __ecereNameSpace__ecere__com__eClass_GetDesigner(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class);
4831 return (((void *)0));
4834 unsigned int __ecereNameSpace__ecere__com__LocateModule(char * name, char * fileName)
4836 return Instance_LocateModule(name, fileName);
4839 extern void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module);
4841 extern void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module);
4843 extern double sin(struct __ecereNameSpace__ecere__com__Instance * number);
4845 extern double sinh(struct __ecereNameSpace__ecere__com__Instance * number);
4847 extern double cosh(struct __ecereNameSpace__ecere__com__Instance * number);
4849 extern double tanh(struct __ecereNameSpace__ecere__com__Instance * number);
4851 extern double sqrt(double number);
4853 extern double cos(struct __ecereNameSpace__ecere__com__Instance * number);
4855 extern double tan(struct __ecereNameSpace__ecere__com__Instance * number);
4857 extern struct __ecereNameSpace__ecere__com__Instance * atan2(double y, double x);
4859 extern struct __ecereNameSpace__ecere__com__Instance * asin(double number);
4861 extern struct __ecereNameSpace__ecere__com__Instance * acos(double number);
4863 extern struct __ecereNameSpace__ecere__com__Instance * atan(double number);
4865 extern double pow(double number, double number2);
4867 extern double fmod(double x, double y);
4869 extern double fabs(double number);
4871 extern double log(double number);
4873 extern double log10(double number);
4875 extern double ceil(double number);
4877 extern double floor(double number);
4879 extern double exp(double number);
4881 extern void qsort(void * , unsigned int, unsigned int, int (* )(void * , void * ));
4883 extern int system(const char * );
4885 extern int atoi(const char * );
4887 extern float atof(const char * );
4889 extern int tolower(int);
4891 extern int toupper(int);
4893 extern unsigned int isdigit(int);
4895 extern char * getenv(const char * name);
4897 extern int rename(const char * oldpath, const char * newpath);
4899 extern char * strncat(char * , const char * , int n);
4901 extern int strcasecmp(const char * , const char * );
4903 extern int strncasecmp(const char * , const char * , int n);
4905 extern int strncmp(const char * , const char * , int n);
4907 extern int vsprintf(char * , const char * , __builtin_va_list);
4909 extern int puts(char * );
4911 extern int fputs(char * , void * stream);
4913 extern int isalnum(int c);
4915 extern int isalpha(int c);
4917 extern int islower(int c);
4919 extern int isupper(int c);
4921 extern int isprint(int c);
4923 static void __ecereNameSpace__ecere__com__LoadCOM(struct __ecereNameSpace__ecere__com__Instance * module)
4925 struct __ecereNameSpace__ecere__com__Class * applicationClass;
4926 struct __ecereNameSpace__ecere__com__Class * enumClass, * structClass, * boolClass;
4927 struct __ecereNameSpace__ecere__com__Class * moduleClass;
4928 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "class", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4930 baseClass->type = 1000;
4931 baseClass->memberOffset = 0;
4932 baseClass->offset = 0;
4933 baseClass->structSize = 0;
4934 baseClass->typeSize = 0;
4936 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);
4938 instanceClass->type = 1000;
4939 instanceClass->fixed = 0x1;
4940 instanceClass->memberOffset = 0;
4941 instanceClass->offset = 0;
4942 instanceClass->memberID = -3;
4943 instanceClass->startMemberID = -3;
4944 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_vTbl", "int (**)()", sizeof(int (**)()), 4, 1);
4945 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_class", "ecere::com::Class", sizeof(struct __ecereNameSpace__ecere__com__Class *), 4, 1);
4946 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_refCount", "int", sizeof(int (**)()), 4, 1);
4948 __ecereNameSpace__ecere__com__InitializeDataTypes1(module);
4949 enumClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "enum", (((void *)0)), 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), (((void *)0)), (((void *)0)), module, 4, 1);
4950 __ecereNameSpace__ecere__com__eClass_AddClassProperty(enumClass, "enumSize", "int", (((void *)0)), __ecereNameSpace__ecere__com__GetEnumSize)->constant = 0x1;
4951 enumClass->type = 1000;
4952 (__ecereNameSpace__ecere__com__eSystem_Delete(enumClass->dataTypeString), enumClass->dataTypeString = 0);
4953 enumClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
4954 structClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "struct", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4955 structClass->type = 1000;
4956 structClass->memberOffset = 0;
4957 structClass->offset = 0;
4958 structClass->structSize = 0;
4959 structClass->typeSize = 0;
4960 __ecereNameSpace__ecere__com__InitializeDataTypes(module);
4961 boolClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "bool", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4962 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "true", (unsigned int)0x1);
4963 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "false", (unsigned int)0x0);
4964 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);
4965 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnLoad", "bool()", (((void *)0)), 1);
4966 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnUnload", "void()", (((void *)0)), 1);
4967 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Load", "Module(char * name, AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, 1);
4968 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Unload", "void(Module module)", __ecereNameSpace__ecere__com__eModule_Unload, 1);
4969 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "application", "Application", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
4970 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "classes", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4971 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "defines", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4972 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "functions", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4973 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "modules", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4974 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "prev", "Module", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
4975 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "next", "Module", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
4976 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "name", "char *", sizeof(char *), 4, 1);
4977 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "library", "void *", sizeof(void *), 4, 1);
4978 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "Unload", "void *", sizeof(void *), 4, 1);
4979 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "importType", "ImportType", sizeof(int), 4, 1);
4980 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "privateNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
4981 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "publicNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
4982 moduleClass->fixed = 0x1;
4983 moduleClass->count++;
4984 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);
4985 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(applicationClass, "Main", "void()", (((void *)0)), 1);
4986 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argc", "int", sizeof(int), 4, 1);
4987 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argv", "char **", sizeof(char **), 4, 1);
4988 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "exitCode", "int", sizeof(int), 4, 1);
4989 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "isGUIApp", "bool", sizeof(unsigned int), 4, 1);
4990 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "allModules", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4991 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "parsedCommand", "char *", sizeof(char *), 4, 1);
4992 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "systemNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
4993 applicationClass->fixed = 0x1;
4994 applicationClass->count++;
4995 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sin", "double sin(Angle number)", sin, module, 4);
4996 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sinh", "double sinh(Angle number)", sinh, module, 4);
4997 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cosh", "double cosh(Angle number)", cosh, module, 4);
4998 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tanh", "double tanh(Angle number)", tanh, module, 4);
4999 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sqrt", "double sqrt(double number)", sqrt, module, 4);
5000 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cos", "double cos(Angle number)", cos, module, 4);
5001 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tan", "double tan(Angle number)", tan, module, 4);
5002 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan2", "Angle atan2(double y, double x)", atan2, module, 4);
5003 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("asin", "Angle asin(double number)", asin, module, 4);
5004 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("acos", "Angle acos(double number)", acos, module, 4);
5005 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan", "Angle atan(double number)", atan, module, 4);
5006 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("pow", "double pow(double number, double number2)", pow, module, 4);
5007 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fmod", "double fmod(double x, double y)", fmod, module, 4);
5008 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fabs", "double fabs(double number)", fabs, module, 4);
5009 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log", "double log(double number)", log, module, 4);
5010 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log10", "double log10(double number)", log10, module, 4);
5011 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ceil", "double ceil(double number)", ceil, module, 4);
5012 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("floor", "double floor(double number)", floor, module, 4);
5013 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("exp", "double exp(double number)", exp, module, 4);
5014 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("qsort", "void qsort(void *, uint, uint, int (*)(void *, void *))", qsort, module, 4);
5015 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtod", "double strtod(char*, char**)", strtod, module, 4);
5016 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtol", "int strtol(char*, char**, int base)", strtol, module, 4);
5017 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("system", "int system(const char*)", system, module, 4);
5018 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atoi", "int atoi(const char*)", atoi, module, 4);
5019 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atof", "float atof(const char*)", atof, module, 4);
5020 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tolower", "int tolower(int)", tolower, module, 4);
5021 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("toupper", "int toupper(int)", toupper, module, 4);
5022 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isdigit", "bool isdigit(int)", isdigit, module, 4);
5023 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memset", "void memset(void * area, byte value, uint count)", memset, module, 4);
5024 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("getenv", "char * getenv(const char * name)", getenv, module, 4);
5025 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("rename", "int rename(const char *oldpath, const char *newpath)", rename, module, 4);
5026 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlen", "int strlen(const char *)", strlen, module, 4);
5027 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcat", "char * strcat(char *, const char *)", strcat, module, 4);
5028 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncat", "char * strncat(char *, const char *, int n)", strncat, module, 4);
5029 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strchr", "char * strchr(char *, int)", strchr, module, 4);
5030 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strstr", "char * strstr(char *, const char *)", strstr, module, 4);
5031 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("fstrcmp", "(GetRuntimePlatform() == win32) ? strcmpi : strcmp", module, 4);
5032 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strcmpi", "strcasecmp", module, 4);
5033 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strnicmp", "strncasecmp", module, 4);
5034 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcasecmp", "int strcasecmp(const char *, const char *)", strcasecmp, module, 4);
5035 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncasecmp", "int strncasecmp(const char *, const char *, int n)", strncasecmp, module, 4);
5036 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcmp", "int strcmp(const char *, const char *)", strcmp, module, 4);
5037 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncmp", "int strncmp(const char *, const char *, int n)", strncmp, module, 4);
5038 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlwr", "char * strlwr(char *)", strlwr, module, 4);
5039 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strupr", "char * strupr(char *)", strupr, module, 4);
5040 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcpy", "char * strcpy(char *, const char *)", strcpy, module, 4);
5041 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncpy", "char * strncpy(char *, const char *, int n)", strncpy, module, 4);
5042 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memcpy", "void * memcpy(void *, const void *, uint size)", memcpy, module, 4);
5043 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memmove", "void * memmove(void *, const void *, uint size)", memmove, module, 4);
5044 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sprintf", "int sprintf(char *, char *, ...)", sprintf, module, 4);
5045 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("printf", "int printf(char *, ...)", printf, module, 4);
5046 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsprintf", "int vsprintf(char*, const char*, __builtin_va_list)", vsprintf, module, 4);
5047 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("puts", "int puts(char *)", puts, module, 4);
5048 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fputs", "int fputs(char *, void * stream)", fputs, module, 4);
5049 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalnum", "int isalnum(int c)", isalnum, module, 4);
5050 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isspace", "int isspace(int c)", isspace, module, 4);
5051 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalpha", "int isalpha(int c)", isalpha, module, 4);
5052 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("islower", "int islower(int c)", islower, module, 4);
5053 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isupper", "int isupper(int c)", isupper, module, 4);
5054 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isprint", "int isprint(int c)", isprint, module, 4);
5055 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoul", "unsigned long strtoul(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5058 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[])
5060 struct __ecereNameSpace__ecere__com__Instance * app;
5062 app = __ecereNameSpace__ecere__com___calloc(1, 424);
5063 __ecereNameSpace__ecere__com__Module_Constructor(app);
5064 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5065 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5066 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5067 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5068 Instance_COM_Initialize(argc, argv, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->parsedCommand, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->argc, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->argv);
5069 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->application = app;
5070 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->allModules.offset = 12 + (unsigned int)&(*((struct __ecereNameSpace__ecere__com__Module *)0)).prev;
5071 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->isGUIApp = guiApp;
5072 __ecereNameSpace__ecere__com__LoadCOM(app);
5073 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)app)->_class = __ecereNameSpace__ecere__com__eSystem_FindClass(app, "Application");
5077 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)
5079 void * __ecereTemp1;
5083 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5085 for(param = _class->templateParams.first; param; param = param->next)
5087 if(!strcmp(param->name, name))
5090 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));
5091 if(defaultArg != (((void *)0)))
5093 param->defaultArg = *defaultArg;
5094 __ecereNameSpace__ecere__com__CopyTemplateArg(param, ¶m->defaultArg);
5096 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templateParams, param);
5099 return (((void *)0));
5102 void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base)
5106 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
5107 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5110 void * first = base->templateParams.first;
5111 int count = base->templateParams.count;
5113 base->templateParams.first = (((void *)0));
5114 base->templateParams.count = 0;
5115 __ecereNameSpace__ecere__com__FreeTemplateArgs(base);
5116 (__ecereNameSpace__ecere__com__eSystem_Delete(base->templateArgs), base->templateArgs = 0);
5117 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(base);
5118 base->templateParams.first = first;
5119 base->templateParams.count = count;
5121 for(param = base->templateParams.first; param; param = param->next)
5123 if(param->type == 1 && param->defaultArg.memberString)
5125 struct __ecereNameSpace__ecere__com__Class * memberClass = base;
5126 char * colon = strstr(param->defaultArg.memberString, "::");
5131 char className[1024];
5132 struct __ecereNameSpace__ecere__com__Class * sClass;
5134 memcpy(className, param->defaultArg.memberString, colon - param->defaultArg.memberString);
5135 className[colon - param->defaultArg.memberString] = '\0';
5136 memberName = colon + 2;
5137 for(sClass = base; sClass; sClass = sClass->base)
5139 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
5140 struct __ecereNameSpace__ecere__com__Class * nextClass;
5143 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
5144 id += nextClass->templateParams.count;
5145 if(sClass == base || base->templateArgs)
5147 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
5149 if(cParam->type == 0 && !strcmp(cParam->name, className))
5150 strcpy(className, (sClass == base) ? cParam->defaultArg.dataTypeString : base->templateArgs[id].dataTypeString);
5155 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(base->module, className);
5157 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)base->module + 12)))->application, className);
5160 memberName = param->defaultArg.memberString;
5163 switch(param->memberType)
5166 param->defaultArg.member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
5169 param->defaultArg.method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
5172 param->defaultArg.prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
5178 __ecereNameSpace__ecere__com__FixDerivativesBase(base, base);
5182 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base)
5184 struct __ecereNameSpace__ecere__sys__OldLink * derivative, * templateLink;
5186 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
5188 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
5190 if(_class->templateArgs)
5192 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5193 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5195 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5197 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
5199 struct __ecereNameSpace__ecere__com__Class * _class = templateLink->data;
5201 if(_class->templateArgs)
5203 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5204 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5206 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5210 static const char * __ecereNameSpace__ecere__com__platformNames[4] =
5212 "", "win32", "linux", "apple"
5215 static const int __ecereNameSpace__ecere__com__firstPlatform = 1;
5217 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Platform_char__PTR_;
5219 static const int __ecereNameSpace__ecere__com__lastPlatform = 3;
5221 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Platform;
5223 int __ecereVMethodID_class_OnGetString;
5225 char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this)
5227 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)));
5230 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(char * value)
5236 for(c = __ecereNameSpace__ecere__com__firstPlatform; c <= __ecereNameSpace__ecere__com__lastPlatform; c++)
5237 if(!strcasecmp(value, __ecereNameSpace__ecere__com__platformNames[c]))
5243 char * __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * tempString, void * fieldData, unsigned int * needClass)
5245 if((*(this)) >= __ecereNameSpace__ecere__com__firstPlatform && (*(this)) <= __ecereNameSpace__ecere__com__lastPlatform)
5248 strcpy(tempString, __ecereNameSpace__ecere__com__platformNames[*(int *)this]);
5249 return __ecereNameSpace__ecere__com__platformNames[*(int *)this];
5251 if(tempString && tempString[0])
5252 tempString[0] = '\0';
5253 return (((void *)0));
5256 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * string)
5258 (*(this)) = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(string);
5259 return (unsigned int)*(int *)this;
5262 extern int runtimePlatform;
5264 int __ecereNameSpace__ecere__com__GetRuntimePlatform()
5266 return runtimePlatform;
5269 struct __ecereNameSpace__ecere__com__ObjectInfo
5271 struct __ecereNameSpace__ecere__com__ObjectInfo * prev, * next;
5272 struct __ecereNameSpace__ecere__com__Instance * instance;
5274 struct __ecereNameSpace__ecere__com__Instance * instCode;
5275 unsigned int deleted;
5276 struct __ecereNameSpace__ecere__com__ObjectInfo * oClass;
5277 struct __ecereNameSpace__ecere__sys__OldList instances;
5278 struct __ecereNameSpace__ecere__com__Instance * classDefinition;
5279 unsigned int modified;
5282 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ObjectInfo;
5284 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner;
5286 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass;
5288 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging;
5290 struct __ecereNameSpace__ecere__com__DesignerBase
5292 struct __ecereNameSpace__ecere__com__Instance * classDesigner;
5294 unsigned int isDragging;
5297 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DesignerBase;
5299 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this)
5301 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);
5303 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner;
5306 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
5308 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);
5310 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner = value;
5311 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner);
5314 char * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass(struct __ecereNameSpace__ecere__com__Instance * this)
5316 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);
5318 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass;
5321 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass(struct __ecereNameSpace__ecere__com__Instance * this, char * value)
5323 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);
5325 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass = value;
5326 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass);
5329 unsigned int __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging(struct __ecereNameSpace__ecere__com__Instance * this)
5331 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);
5333 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging;
5336 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
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 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging = value;
5341 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging);
5344 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase;
5346 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__activeDesigner;
5348 void __ecereNameSpace__ecere__com__SetActiveDesigner(struct __ecereNameSpace__ecere__com__Instance * designer)
5350 __ecereNameSpace__ecere__com__activeDesigner = designer;
5353 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__GetActiveDesigner()
5355 return __ecereNameSpace__ecere__com__activeDesigner;
5360 unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source)
5366 for(c = 0; source[c]; )
5368 unsigned char ch = source[c];
5369 unsigned int codePoint = 0;
5372 unsigned char mask = (unsigned char)0x7F;
5374 if(ch & (unsigned char)0x80)
5376 if(ch & (unsigned char)0x40)
5380 if(ch & (unsigned char)0x20)
5384 if(ch & (unsigned char)0x10)
5386 if(ch & (unsigned char)0x08)
5396 for(i = 0; i < numBytes && (ch = source[c]); i++, c++)
5399 codePoint |= ch & mask;
5400 mask = (unsigned char)0x3F;
5403 if(!(ch & (unsigned char)0x80) || (ch & (unsigned char)0x40))
5409 if(codePoint > 0x10FFFF || (codePoint >= 0xD800 && codePoint <= 0xDFFF) || (codePoint < 0x80 && numBytes > 1) || (codePoint < 0x800 && numBytes > 2) || (codePoint < 0x10000 && numBytes > 3))
5416 int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max)
5421 for(c = 0; source[c]; c++)
5423 unsigned int ch = ((unsigned char *)source)[c];
5429 dest[d++] = (char)ch;
5435 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5436 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5438 else if(ch < 0x10000)
5442 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5443 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5444 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5450 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5451 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5452 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5453 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5460 char * __ecereNameSpace__ecere__sys__UTF16toUTF8(unsigned short * source)
5467 unsigned int invert = 0x0;
5469 for(len = 0; source[len]; len++)
5471 dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len * 3 + 1));
5472 for(c = 0; (u16 = source[c]); c++)
5476 if(!c && (u16 == (unsigned short)0xFFFE || u16 == (unsigned short)0xFEFF))
5478 if(u16 == (unsigned short)0xFFFE)
5484 u16 = ((u16 & (unsigned short)0xFF00) >> (unsigned short)8) | ((u16 & (unsigned short)0x00FF) << (unsigned short)8);
5486 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5489 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5492 dest[d++] = (char)ch;
5496 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5497 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5499 else if(ch < 0x10000)
5501 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5502 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5503 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5507 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5508 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5509 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5510 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5514 dest = __ecereNameSpace__ecere__com__eSystem_Renew(dest, sizeof(char) * (d + 1));
5518 int __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer(unsigned short * source, unsigned char * dest, int max)
5524 for(c = 0; (u16 = source[c]); c++)
5528 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5531 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5536 dest[d++] = (char)ch;
5542 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5543 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5545 else if(ch < 0x10000)
5549 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5550 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5551 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5557 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5558 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5559 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5560 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5563 dest[d] = (unsigned char)0;
5567 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes)
5570 unsigned char b = ((unsigned char *)string)[0];
5572 unsigned char mask = (unsigned char)0x7F;
5576 if(b & (unsigned char)0x80)
5578 if(b & (unsigned char)0x40)
5582 if(b & (unsigned char)0x20)
5586 if(b & (unsigned char)0x10)
5588 if(b & (unsigned char)0x08)
5600 for(i = 0; i < nb; i++)
5603 ch |= (b = ((unsigned char *)string)[i]) & mask;
5604 mask = (unsigned char)0x3F;
5605 if(i > 1 && (!(b & (unsigned char)0x80) || (b & (unsigned char)0x40)))
5611 if(i < nb || ch > 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF) || (ch < 0x80 && nb > 1) || (ch < 0x800 && nb > 2) || (ch < 0x10000 && nb > 3))
5621 int __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer(char * source, unsigned short * dest, int max)
5628 for(c = 0; source[c]; )
5630 unsigned char ch = source[c];
5631 unsigned int codePoint = 0;
5634 unsigned char mask = (unsigned char)0x7F;
5636 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5640 if(ch & (unsigned char)0x20)
5644 if(ch & (unsigned char)0x10)
5651 for(i = 0; i < numBytes; i++)
5654 codePoint |= source[c++] & mask;
5655 mask = (unsigned char)0x3F;
5657 if(codePoint > 0xFFFF)
5659 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5660 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5671 dest[d++] = (unsigned short)codePoint;
5674 dest[d] = (unsigned short)0;
5680 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max)
5686 for(c = 0; c < count && (ch = source[c]); c++)
5692 dest[d++] = (char)ch;
5698 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5699 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5701 else if(ch < 0x10000)
5705 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5706 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5707 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5713 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5714 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5715 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5716 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5719 dest[d] = (unsigned char)0;
5723 unsigned short * __ecereNameSpace__ecere__sys__UTF8toUTF16(char * source, int * wordCount)
5727 int len = strlen(source);
5728 unsigned short * dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned short) * (len + 1));
5732 for(c = 0; source[c]; )
5734 unsigned char ch = source[c];
5735 unsigned int codePoint = 0;
5738 unsigned char mask = (unsigned char)0x7F;
5740 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5744 if(ch & (unsigned char)0x20)
5748 if(ch & (unsigned char)0x10)
5755 for(i = 0; i < numBytes; i++)
5758 codePoint |= source[c++] & mask;
5759 mask = (unsigned char)0x3F;
5761 if(codePoint > 0xFFFF)
5763 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5764 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5771 dest[d++] = (unsigned short)codePoint;
5774 dest[d] = (unsigned short)0;
5779 return (((void *)0));
5782 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_FindObject;
5784 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_RenameObject;
5786 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SelectObjectFromDesigner;
5788 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_CodeAddObject;
5790 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SheetAddObject;
5792 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddToolBoxClass;
5794 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddDefaultMethod;
5796 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_DeleteObject;
5798 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ObjectContainsCode;
5800 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ModifyCode;
5802 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_UpdateProperties;
5804 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_Reset;
5806 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_AddObject;
5808 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_SelectObject;
5810 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_ListToolBoxClasses;
5812 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PrepareTestObject;
5814 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateObject;
5816 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PostCreateObject;
5818 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DroppedObject;
5820 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DestroyObject;
5822 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_FixProperty;
5824 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew;
5826 void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
5828 struct __ecereNameSpace__ecere__com__Class * class;
5830 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4);
5831 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::unichar", "uint", 0, 0, 0, 0, module, 4, 1);
5832 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5833 __ecereClass___ecereNameSpace__ecere__com__unichar = class;
5834 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString, 1);
5835 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString, 1);
5836 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Property", 0, sizeof(struct __ecereNameSpace__ecere__com__Property), 0, 0, 0, module, 4, 1);
5837 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5838 __ecereClass___ecereNameSpace__ecere__com__Property = class;
5839 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Property", 4, 4, 1);
5840 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Property", 4, 4, 1);
5841 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5842 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
5843 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
5844 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
5845 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
5846 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
5847 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
5848 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
5849 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)()", 4, 4, 1);
5850 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)()", 4, 4, 1);
5851 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "IsSet", "bool( *)()", 4, 4, 1);
5852 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5853 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
5854 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
5855 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
5856 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "watcherOffset", "uint", 4, 4, 1);
5857 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "char *", 4, 4, 1);
5858 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "compiled", "bool", 4, 4, 1);
5859 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchable", "bool", 4, 4, 1);
5860 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
5862 class->fixed = (unsigned int)1;
5863 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PushLoc", "void ecere::com::MemoryGuard_PushLoc(char * loc)", __ecereNameSpace__ecere__com__MemoryGuard_PushLoc, module, 4);
5864 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PopLoc", "void ecere::com::MemoryGuard_PopLoc(void)", __ecereNameSpace__ecere__com__MemoryGuard_PopLoc, module, 4);
5865 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BTNamedLink", 0, sizeof(struct __ecereNameSpace__ecere__com__BTNamedLink), 0, 0, 0, module, 4, 1);
5866 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5867 __ecereClass___ecereNameSpace__ecere__com__BTNamedLink = class;
5868 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5869 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::BTNamedLink", 4, 4, 1);
5870 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::BTNamedLink", 4, 4, 1);
5871 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::BTNamedLink", 4, 4, 1);
5872 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
5873 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5875 class->fixed = (unsigned int)1;
5876 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SelfWatcher", 0, sizeof(struct __ecereNameSpace__ecere__com__SelfWatcher), 0, 0, 0, module, 2, 1);
5877 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5878 __ecereClass___ecereNameSpace__ecere__com__SelfWatcher = class;
5880 class->fixed = (unsigned int)1;
5881 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::AccessMode", 0, 0, 0, 0, 0, module, 4, 1);
5882 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5883 __ecereClass___ecereNameSpace__ecere__com__AccessMode = class;
5884 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "defaultAccess", 0);
5885 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "publicAccess", 1);
5886 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "privateAccess", 2);
5887 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticAccess", 3);
5888 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "baseSystemAccess", 4);
5889 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SubModule", 0, sizeof(struct __ecereNameSpace__ecere__com__SubModule), 0, 0, 0, module, 4, 1);
5890 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5891 __ecereClass___ecereNameSpace__ecere__com__SubModule = class;
5892 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::SubModule", 4, 4, 1);
5893 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::SubModule", 4, 4, 1);
5894 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
5895 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "importMode", "ecere::com::AccessMode", 4, 4, 1);
5896 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::DataMemberType", 0, 0, 0, 0, 0, module, 4, 1);
5897 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5898 __ecereClass___ecereNameSpace__ecere__com__DataMemberType = class;
5899 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMember", 0);
5900 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionMember", 1);
5901 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMember", 2);
5902 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ClassType", 0, 0, 0, 0, 0, module, 4, 1);
5903 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5904 __ecereClass___ecereNameSpace__ecere__com__ClassType = class;
5905 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalClass", 0);
5906 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structClass", 1);
5907 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "bitClass", 2);
5908 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unitClass", 3);
5909 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "enumClass", 4);
5910 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noHeadClass", 5);
5911 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionClass", 6);
5912 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "systemClass", 1000);
5913 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Class", 0, sizeof(struct __ecereNameSpace__ecere__com__Class), 0, 0, 0, module, 4, 1);
5914 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5915 __ecereClass___ecereNameSpace__ecere__com__Class = class;
5916 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree, 1);
5917 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString, 1);
5918 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString, 1);
5919 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize, 1);
5920 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize, 1);
5921 __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);
5922 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Class", 4, 4, 1);
5923 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Class", 4, 4, 1);
5924 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5925 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
5926 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structSize", "int", 4, 4, 1);
5927 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_vTbl", "int( * *)()", 4, 4, 1);
5928 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vTblSize", "int", 4, 4, 1);
5929 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Constructor", "int( *)(ecere::com::Instance)", 4, 4, 1);
5930 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Destructor", "void( *)(ecere::com::Instance)", 4, 4, 1);
5931 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offsetClass", "int", 4, 4, 1);
5932 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "sizeClass", "int", 4, 4, 1);
5933 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "base", "ecere::com::Class", 4, 4, 1);
5934 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::BinaryTree", 16, 4, 1);
5935 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::BinaryTree", 16, 4, 1);
5936 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prop", "ecere::sys::BinaryTree", 16, 4, 1);
5937 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAndProperties", "ecere::sys::OldList", 20, 4, 1);
5938 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classProperties", "ecere::sys::BinaryTree", 16, 4, 1);
5939 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "derivatives", "ecere::sys::OldList", 20, 4, 1);
5940 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
5941 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "startMemberID", "int", 4, 4, 1);
5942 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::ClassType", 4, 4, 1);
5943 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
5944 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
5945 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
5946 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
5947 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeSize", "int", 4, 4, 1);
5948 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultAlignment", "int", 4, 4, 1);
5949 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Initialize", "void( *)()", 4, 4, 1);
5950 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
5951 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchers", "ecere::sys::OldList", 20, 4, 1);
5952 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "designerClass", "char *", 4, 4, 1);
5953 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "noExpansion", "bool", 4, 4, 1);
5954 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultProperty", "char *", 4, 4, 1);
5955 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "comRedefinition", "bool", 4, 4, 1);
5956 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
5957 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
5958 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "internalDecl", "bool", 4, 4, 1);
5959 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5960 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computeSize", "bool", 4, 4, 1);
5961 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
5962 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "destructionWatchOffset", "int", 4, 4, 1);
5963 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fixed", "bool", 4, 4, 1);
5964 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "delayedCPValues", "ecere::sys::OldList", 20, 4, 1);
5965 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "inheritanceAccess", "ecere::com::AccessMode", 4, 4, 1);
5966 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fullName", "char *", 4, 4, 1);
5967 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
5968 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversions", "ecere::sys::OldList", 20, 4, 1);
5969 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateParams", "ecere::sys::OldList", 20, 4, 1);
5970 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateArgs", "ecere::com::ClassTemplateArgument *", 4, 4, 1);
5971 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateClass", "ecere::com::Class", 4, 4, 1);
5972 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templatized", "ecere::sys::OldList", 20, 4, 1);
5973 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParams", "int", 4, 4, 1);
5975 class->fixed = (unsigned int)1;
5977 class->noExpansion = (unsigned int)1;
5978 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateParameterType", 0, 0, 0, 0, 0, module, 4, 1);
5979 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5980 __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType = class;
5981 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "type", 0);
5982 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 1);
5983 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "expression", 2);
5984 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateMemberType", 0, 0, 0, 0, 0, module, 4, 1);
5985 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5986 __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType = class;
5987 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dataMember", 0);
5988 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "method", 1);
5989 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "prop", 2);
5990 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::ClassTemplateArgument", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument), 0, 0, 0, module, 4, 1);
5991 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5992 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument = class;
5994 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
5997 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
5999 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeString", "char *", 4, 4, 1);
6000 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6001 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6003 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expression", "ecere::com::DataValue", 8, 8, 1);
6005 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6007 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "memberString", "char *", 4, 4, 1);
6009 struct __ecereNameSpace__ecere__com__DataMember * dataMember2 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6011 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "member", "ecere::com::DataMember", 4, 4, 1);
6012 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "prop", "ecere::com::Property", 4, 4, 1);
6013 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "method", "ecere::com::Method", 4, 4, 1);
6014 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember1, dataMember2);
6016 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6018 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6020 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassTemplateParameter", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateParameter), 0, 0, 0, module, 4, 1);
6021 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6022 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter = class;
6023 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ClassTemplateParameter", 4, 4, 1);
6024 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ClassTemplateParameter", 4, 4, 1);
6025 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6026 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::TemplateParameterType", 4, 4, 1);
6028 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6030 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dataTypeString", "char *", 4, 4, 1);
6031 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "ecere::com::TemplateMemberType", 4, 4, 1);
6032 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6034 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArg", "ecere::com::ClassTemplateArgument", 8, 8, 1);
6035 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "param", "void *", 4, 4, 1);
6037 class->fixed = (unsigned int)1;
6038 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::MethodType", 0, 0, 0, 0, 0, module, 4, 1);
6039 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6040 __ecereClass___ecereNameSpace__ecere__com__MethodType = class;
6041 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMethod", 0);
6042 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "virtualMethod", 1);
6043 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Method", 0, sizeof(struct __ecereNameSpace__ecere__com__Method), 0, 0, 0, module, 4, 1);
6044 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6045 __ecereClass___ecereNameSpace__ecere__com__Method = class;
6046 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6047 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::Method", 4, 4, 1);
6048 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::Method", 4, 4, 1);
6049 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::Method", 4, 4, 1);
6050 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6051 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", 4, 4, 1);
6052 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6053 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::MethodType", 4, 4, 1);
6054 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6055 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6056 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6057 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6058 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6060 class->fixed = (unsigned int)1;
6061 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ImportType", 0, 0, 0, 0, 0, module, 4, 1);
6062 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6063 __ecereClass___ecereNameSpace__ecere__com__ImportType = class;
6064 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalImport", 0);
6065 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticImport", 1);
6066 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "remoteImport", 2);
6067 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preDeclImport", 3);
6068 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "comCheckImport", 4);
6069 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::NameSpace", 0, sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 0, 0, 0, module, 4, 1);
6070 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6071 __ecereClass___ecereNameSpace__ecere__com__NameSpace = class;
6072 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6073 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "btParent", "ecere::com::NameSpace *", 4, 4, 1);
6074 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::NameSpace *", 4, 4, 1);
6075 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::NameSpace *", 4, 4, 1);
6076 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6077 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::NameSpace *", 4, 4, 1);
6078 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpaces", "ecere::sys::BinaryTree", 16, 4, 1);
6079 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classes", "ecere::sys::BinaryTree", 16, 4, 1);
6080 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defines", "ecere::sys::BinaryTree", 16, 4, 1);
6081 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "functions", "ecere::sys::BinaryTree", 16, 4, 1);
6082 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::DataValue", 0, sizeof(struct __ecereNameSpace__ecere__com__DataValue), 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__DataValue = class;
6086 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6088 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "c", "char", 1, 1, 1);
6089 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "uc", "byte", 1, 1, 1);
6090 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "s", "short", 2, 2, 1);
6091 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "us", "uint16", 2, 2, 1);
6092 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i", "int", 4, 4, 1);
6093 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui", "uint", 4, 4, 1);
6094 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "p", "void *", 4, 4, 1);
6095 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "f", "float", 4, 4, 1);
6096 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "d", "double", 8, 8, 1);
6097 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i64", "int64", 8, 8, 1);
6098 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui64", "uint64", 8, 8, 1);
6099 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6101 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DataMember", 0, sizeof(struct __ecereNameSpace__ecere__com__DataMember), 0, 0, 0, module, 4, 1);
6102 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6103 __ecereClass___ecereNameSpace__ecere__com__DataMember = class;
6104 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DataMember", 4, 4, 1);
6105 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DataMember", 4, 4, 1);
6106 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6107 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6108 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6109 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6110 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6111 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6112 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6113 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6114 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6115 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6116 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6117 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::OldList", 20, 4, 1);
6118 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAlpha", "ecere::sys::BinaryTree", 16, 4, 1);
6119 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6120 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6122 class->fixed = (unsigned int)1;
6123 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BitMember", 0, sizeof(struct __ecereNameSpace__ecere__com__BitMember), 0, 0, 0, module, 4, 1);
6124 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6125 __ecereClass___ecereNameSpace__ecere__com__BitMember = class;
6126 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::BitMember", 4, 4, 1);
6127 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::BitMember", 4, 4, 1);
6128 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6129 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6130 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6131 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6132 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6133 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6134 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6135 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6136 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6137 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "int", 4, 4, 1);
6138 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
6139 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "mask", "uint64", 8, 8, 1);
6141 class->fixed = (unsigned int)1;
6142 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassProperty", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassProperty), 0, 0, 0, module, 4, 1);
6143 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6144 __ecereClass___ecereNameSpace__ecere__com__ClassProperty = class;
6145 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6146 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::ClassProperty", 4, 4, 1);
6147 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::ClassProperty", 4, 4, 1);
6148 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::ClassProperty", 4, 4, 1);
6149 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6150 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)(ecere::com::Class, int)", 4, 4, 1);
6151 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)(ecere::com::Class)", 4, 4, 1);
6152 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6153 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6154 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
6156 class->fixed = (unsigned int)1;
6157 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DefinedExpression", 0, sizeof(struct __ecereNameSpace__ecere__com__DefinedExpression), 0, 0, 0, module, 4, 1);
6158 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6159 __ecereClass___ecereNameSpace__ecere__com__DefinedExpression = class;
6160 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DefinedExpression", 4, 4, 1);
6161 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DefinedExpression", 4, 4, 1);
6162 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6163 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "value", "char *", 4, 4, 1);
6164 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
6166 class->fixed = (unsigned int)1;
6167 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::GlobalFunction", 0, sizeof(struct __ecereNameSpace__ecere__com__GlobalFunction), 0, 0, 0, module, 4, 1);
6168 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6169 __ecereClass___ecereNameSpace__ecere__com__GlobalFunction = class;
6170 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::GlobalFunction", 4, 4, 1);
6171 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::GlobalFunction", 4, 4, 1);
6172 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6173 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", 4, 4, 1);
6174 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
6175 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
6176 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6177 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6178 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6180 class->fixed = (unsigned int)1;
6181 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::EnumClassData", 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), 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__EnumClassData = class;
6184 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "values", "ecere::sys::OldList", 20, 4, 1);
6185 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "largest", "int", 4, 4, 1);
6187 class->fixed = (unsigned int)1;
6188 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Watcher", 0, sizeof(struct __ecereNameSpace__ecere__com__Watcher), 0, 0, 0, module, 2, 1);
6189 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6190 __ecereClass___ecereNameSpace__ecere__com__Watcher = class;
6192 class->fixed = (unsigned int)1;
6193 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemBlock", 0, sizeof(struct __ecereNameSpace__ecere__com__MemBlock), 0, 0, 0, module, 2, 1);
6194 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6195 __ecereClass___ecereNameSpace__ecere__com__MemBlock = class;
6196 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemPart", 0, sizeof(struct __ecereNameSpace__ecere__com__MemPart), 0, 0, 0, module, 2, 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__MemPart = class;
6199 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::BlockPool", 0, sizeof(struct __ecereNameSpace__ecere__com__BlockPool), 0, 0, 0, module, 2, 1);
6200 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6201 __ecereClass___ecereNameSpace__ecere__com__BlockPool = class;
6202 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "ecere::com::MemBlock Add()", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add, 1);
6203 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Expand", "bool Expand(unsigned int numBlocks)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand, 1);
6204 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::com::MemBlock block)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove, 1);
6205 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "ecere::com::MemBlock", 4, 4, 1);
6206 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "ecere::com::MemBlock", 4, 4, 1);
6207 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "free", "ecere::com::MemBlock", 4, 4, 1);
6208 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSize", "uint", 4, 4, 1);
6209 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSpace", "uint", 4, 4, 1);
6210 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParts", "int", 4, 4, 1);
6211 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numBlocks", "int", 4, 4, 1);
6212 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "totalSize", "uint", 4, 4, 1);
6213 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "usedSpace", "uint", 4, 4, 1);
6214 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::log2i", "uint ecere::com::log2i(uint number)", __ecereNameSpace__ecere__com__log2i, module, 4);
6215 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::pow2i", "uint ecere::com::pow2i(uint number)", __ecereNameSpace__ecere__com__pow2i, module, 4);
6216 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::memswap", "void ecere::com::memswap(byte * a, byte * b, uint size)", __ecereNameSpace__ecere__com__memswap, module, 4);
6217 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::CheckMemory", "void ecere::com::CheckMemory(void)", __ecereNameSpace__ecere__com__CheckMemory, module, 4);
6218 __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);
6219 __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);
6220 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoi64", "int64 ecere::com::_strtoi64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoi64, module, 4);
6221 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoui64", "uint64 ecere::com::_strtoui64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoui64, module, 4);
6222 __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);
6223 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::DefaultFunction", "bool ecere::com::DefaultFunction(void)", __ecereNameSpace__ecere__com__DefaultFunction, module, 2);
6224 __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);
6225 __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);
6226 __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);
6227 __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);
6228 __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);
6229 __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);
6230 __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);
6231 __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);
6232 __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);
6233 __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);
6234 __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);
6235 __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);
6236 __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);
6237 __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);
6238 __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);
6239 __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);
6240 __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);
6241 __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);
6242 __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);
6243 __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);
6244 __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);
6245 __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);
6246 __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);
6247 __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);
6248 __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);
6249 __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);
6250 __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);
6251 __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);
6252 __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);
6253 __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);
6254 __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);
6255 __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);
6256 __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);
6257 __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);
6258 __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);
6259 __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);
6260 __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);
6261 __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);
6262 __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);
6263 __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);
6264 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New", "void * ecere::com::eSystem_New(uint size)", __ecereNameSpace__ecere__com__eSystem_New, module, 4);
6265 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New0", "void * ecere::com::eSystem_New0(uint size)", __ecereNameSpace__ecere__com__eSystem_New0, module, 4);
6266 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Delete", "void ecere::com::eSystem_Delete(void * memory)", __ecereNameSpace__ecere__com__eSystem_Delete, module, 4);
6267 __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);
6268 __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);
6269 __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);
6270 __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);
6271 __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);
6272 __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);
6273 __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);
6274 __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);
6275 __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);
6276 __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);
6277 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::LocateModule", "bool ecere::com::LocateModule(char * name, char * fileName)", __ecereNameSpace__ecere__com__LocateModule, module, 4);
6278 __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);
6279 __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);
6280 __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);
6281 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::Platform", 0, 0, 0, 0, 0, module, 4, 1);
6282 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6283 __ecereClass___ecereNameSpace__ecere__com__Platform = class;
6284 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString, 1);
6285 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString, 1);
6286 __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);
6287 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknown", 0);
6288 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "win32", 1);
6289 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "tux", 2);
6290 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "apple", 3);
6291 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetRuntimePlatform", "ecere::com::Platform ecere::com::GetRuntimePlatform(void)", __ecereNameSpace__ecere__com__GetRuntimePlatform, module, 4);
6292 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ObjectInfo", 0, sizeof(struct __ecereNameSpace__ecere__com__ObjectInfo), 0, 0, 0, module, 4, 1);
6293 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6294 __ecereClass___ecereNameSpace__ecere__com__ObjectInfo = class;
6295 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ObjectInfo", 4, 4, 1);
6296 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ObjectInfo", 4, 4, 1);
6297 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instance", "ecere::com::Instance", 4, 4, 1);
6298 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6299 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instCode", "Instantiation", 4, 4, 1);
6300 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "deleted", "bool", 4, 4, 1);
6301 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "oClass", "ecere::com::ObjectInfo", 4, 4, 1);
6302 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instances", "ecere::sys::OldList", 20, 4, 1);
6303 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDefinition", "ClassDefinition", 4, 4, 1);
6304 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "bool", 4, 4, 1);
6305 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);
6306 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6307 __ecereClass___ecereNameSpace__ecere__com__DesignerBase = class;
6308 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindObject", "bool FindObject(ecere::com::Instance * instance, char * string)", 0, 1);
6309 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RenameObject", "void RenameObject(ecere::com::ObjectInfo object, char * name)", 0, 1);
6310 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObjectFromDesigner", "void SelectObjectFromDesigner(ecere::com::ObjectInfo object)", 0, 1);
6311 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CodeAddObject", "void CodeAddObject(ecere::com::Instance instance, ecere::com::ObjectInfo * object)", 0, 1);
6312 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SheetAddObject", "void SheetAddObject(ecere::com::ObjectInfo object)", 0, 1);
6313 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddToolBoxClass", "void AddToolBoxClass(ecere::com::Class _class)", 0, 1);
6314 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddDefaultMethod", "void AddDefaultMethod(ecere::com::Instance instance, ecere::com::Instance classInstance)", 0, 1);
6315 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DeleteObject", "void DeleteObject(ecere::com::ObjectInfo object)", 0, 1);
6316 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ObjectContainsCode", "bool ObjectContainsCode(ecere::com::ObjectInfo object)", 0, 1);
6317 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ModifyCode", "void ModifyCode(void)", 0, 1);
6318 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "UpdateProperties", "void UpdateProperties(void)", 0, 1);
6319 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDesigner", "ecere::com::ClassDesignerBase", 4, 4, 1);
6320 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "objectClass", "char *", 4, 4, 1);
6321 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isDragging", "bool", 4, 4, 1);
6322 __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);
6323 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6324 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6325 __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);
6326 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6327 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6328 __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);
6329 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6330 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;
6331 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::ClassDesignerBase", "ecere::gui::Window", 0, 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__ClassDesignerBase = class;
6334 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Reset", "void Reset(void)", 0, 1);
6335 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddObject", "void AddObject(void)", 0, 1);
6336 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObject", "void SelectObject(ecere::com::ObjectInfo object, ecere::com::Instance control)", 0, 1);
6337 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ListToolBoxClasses", "void ListToolBoxClasses(ecere::com::DesignerBase designer)", 0, 1);
6338 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PrepareTestObject", "void ::PrepareTestObject(ecere::com::DesignerBase designer, ecere::com::Instance test)", 0, 1);
6339 __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);
6340 __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);
6341 __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);
6342 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DestroyObject", "void ::DestroyObject(ecere::com::Instance object)", 0, 1);
6343 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixProperty", "void ::FixProperty(ecere::com::Property prop, ecere::com::Instance object)", 0, 1);
6344 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateNew", "void ::CreateNew(EditBox editBox, Size clientSize, char * name, char * inherit)", 0, 1);
6345 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::SetActiveDesigner", "void ecere::com::SetActiveDesigner(ecere::com::DesignerBase designer)", __ecereNameSpace__ecere__com__SetActiveDesigner, module, 4);
6346 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetActiveDesigner", "ecere::com::DesignerBase ecere::com::GetActiveDesigner(void)", __ecereNameSpace__ecere__com__GetActiveDesigner, module, 4);
6347 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::LEAD_OFFSET", "0xD800 - (0x10000 >> 10)", module, 2);
6348 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::SURROGATE_OFFSET", "0x10000 - (0xD800 << 10) - 0xDC00", module, 2);
6349 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8Validate", "bool ecere::sys::UTF8Validate(char * source)", __ecereNameSpace__ecere__sys__UTF8Validate, module, 4);
6350 __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);
6351 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8", "char * ecere::sys::UTF16toUTF8(uint16 * source)", __ecereNameSpace__ecere__sys__UTF16toUTF8, module, 4);
6352 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8Buffer", "int ecere::sys::UTF16toUTF8Buffer(uint16 * source, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer, module, 4);
6353 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8GetChar", "ecere::com::unichar ecere::sys::UTF8GetChar(char * string, int * numBytes)", __ecereNameSpace__ecere__sys__UTF8GetChar, module, 4);
6354 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16Buffer", "int ecere::sys::UTF8toUTF16Buffer(char * source, uint16 * dest, int max)", __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer, module, 4);
6355 __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);
6356 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16", "uint16 * ecere::sys::UTF8toUTF16(char * source, int * wordCount)", __ecereNameSpace__ecere__sys__UTF8toUTF16, module, 4);
6359 void __ecereUnregisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6362 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6363 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6364 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;