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 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace);
1372 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset);
1374 extern char * strcpy(char * , const char * );
1376 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template);
1378 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg);
1380 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b);
1382 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1384 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1386 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data);
1388 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1390 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)
1392 void * __ecereTemp1;
1394 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
1397 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
1399 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace;
1401 for(c = 0; name[c]; c++)
1403 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
1405 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
1406 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
1408 strncpy(spaceName, name + start, c - start);
1409 spaceName[c - start] = '\0';
1410 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
1413 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
1414 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1415 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1416 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1417 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1418 (*newSpace).name = spaceName;
1419 (*newSpace).parent = nameSpace;
1420 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
1423 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
1424 nameSpace = newSpace;
1436 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (((void *)0));
1437 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
1438 char * dataTypeString = (((void *)0));
1439 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1440 struct __ecereNameSpace__ecere__com__Class * base = (baseName && baseName[0]) ? __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName) : (((void *)0));
1441 unsigned int refine = 0x0;
1443 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1445 if(base->type == 1 && type == 0)
1450 if(base && (type == 0 || type == 5 || type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1454 if(!base || base->type == 1000)
1458 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"))
1460 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1461 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1465 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1466 base->internalDecl = 0x1;
1468 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1471 else if(type == 1 && (!baseName || !baseName[0]))
1473 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "struct");
1474 dataTypeString = name + start;
1479 dataTypeString = "struct __ecereNameSpace__ecere__com__Instance";
1481 dataTypeString = "void *";
1483 dataTypeString = (baseName && baseName[0]) ? baseName : "unsigned int";
1485 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1487 dataTypeString = name + start;
1488 if(base || (!baseName || !baseName[0]) || type == 2 || type == 3)
1490 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"))
1492 if(type == 0 && strcmp(name, "ecere::com::Instance") && strcmp(name, "enum") && strcmp(name, "struct"))
1493 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1495 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1510 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1513 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1515 offsetClass = base ? base->sizeClass : (type == 5 ? 0 : 0);
1516 totalSizeClass = offsetClass + sizeClass;
1517 if((_class = __ecereNameSpace__ecere__com__eSystem_FindClass(module, name)))
1519 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1520 if(!_class->internalDecl)
1523 printf("error: Redefinition of class %s\n", name);
1526 _class->comRedefinition = 0x1;
1529 return (((void *)0));
1531 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, name + start);
1532 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1534 struct __ecereNameSpace__ecere__sys__OldLink * t;
1536 for(t = _class->templatized.first; t; t = t->next)
1538 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1540 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1541 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1545 struct __ecereNameSpace__ecere__com__NameSpace * ns = _class->nameSpace;
1547 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))
1549 struct __ecereNameSpace__ecere__com__NameSpace * parent = (*ns).parent;
1551 __ecereNameSpace__ecere__com__NameSpace_Free(ns);
1552 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*parent).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)ns);
1560 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);
1562 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);
1564 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);
1566 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);
1568 _class = classLink->data;
1569 if(_class && _class->internalDecl)
1571 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1572 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1574 struct __ecereNameSpace__ecere__sys__OldLink * t;
1576 for(t = _class->templatized.first; t; t = t->next)
1578 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1580 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1581 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1585 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
1586 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1590 _class = __ecereNameSpace__ecere__com___calloc(1, sizeof(struct __ecereNameSpace__ecere__com__Class));
1591 _class->methods.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1592 _class->members.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1593 _class->prop.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1594 _class->classProperties.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1595 _class->name = __ecereNameSpace__ecere__sys__CopyString(name + start);
1596 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1601 __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)));
1603 struct __ecereNameSpace__ecere__sys__OldLink * t;
1605 for(t = _class->templatized.first; t; t = t->next)
1607 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1609 __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)));
1615 if(!base && baseName && strcmp(baseName, name))
1617 if(strchr(baseName, '<'))
1619 char templateClassName[1024];
1620 struct __ecereNameSpace__ecere__com__Class * templateBase;
1622 strcpy(templateClassName, baseName);
1623 *strchr(templateClassName, '<') = '\0';
1624 templateBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, templateClassName);
1627 templateBase = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, templateClassName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1628 templateBase->internalDecl = 0x1;
1630 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName);
1634 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1635 base->internalDecl = 0x1;
1639 _class->internalDecl = 0x0;
1642 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1643 if(base && base->type != 1000 && base->type != 4)
1644 memcpy(_class->data, base->data, offsetClass);
1646 memset(_class->data, (unsigned char)0, offsetClass);
1647 memset((unsigned char *)_class->data + offsetClass, (unsigned char)0, sizeClass);
1649 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1650 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1651 _class->defaultAlignment = base ? base->defaultAlignment : 0;
1654 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->classes, _class);
1658 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1659 struct __ecereNameSpace__ecere__sys__OldLink * deriv = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(&base->derivatives, _class);
1661 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1665 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes, _class);
1667 _class->nameSpace = nameSpace;
1669 struct __ecereNameSpace__ecere__sys__OldLink * t;
1671 for(t = _class->templatized.first; t; t = t->next)
1673 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1675 template->nameSpace = nameSpace;
1678 _class->module = module;
1679 _class->base = base;
1683 struct __ecereNameSpace__ecere__com__Class * sClass;
1685 for(sClass = base; sClass; sClass = sClass->base)
1687 if(sClass->templateClass)
1688 sClass = sClass->templateClass;
1689 numParams += sClass->templateParams.count;
1693 if(_class->templateArgs)
1695 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1697 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1698 _class->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
1699 _class->numParams = numParams;
1700 for(sClass = _class; sClass; sClass = sClass->base)
1702 struct __ecereNameSpace__ecere__com__Class * prevClass;
1703 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1706 if(sClass->templateClass)
1707 sClass = sClass->templateClass;
1708 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
1710 if(prevClass->templateClass)
1711 prevClass = prevClass->templateClass;
1712 id += prevClass->templateParams.count;
1714 if(base->templateArgs)
1716 for(param = sClass->templateParams.first; param; param = param->next)
1718 _class->templateArgs[id] = base->templateArgs[id];
1719 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &_class->templateArgs[id]);
1726 _class->memberID = _class->startMemberID = (base && (type == 0 || type == 5 || type == 1)) ? base->memberID : 0;
1727 if(type == 0 || type == 5)
1728 _class->offset = (base && base->structSize && base->type != 1000) ? base->structSize : ((type == 5) ? 0 : 12);
1731 _class->memberOffset = (base && base->structSize && base->type != 1000) ? base->structSize : 0;
1732 _class->typeSize = _class->structSize = _class->memberOffset + size;
1734 else if(type == 2 || type == 4 || type == 3)
1736 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1739 _class->typeSize = dataTypeClass->typeSize;
1740 _class->structSize = 0;
1742 else if(type == 0 || type == 5)
1744 _class->structSize = _class->offset + size;
1745 _class->typeSize = sizeof(void *);
1747 _class->offsetClass = offsetClass;
1748 _class->sizeClass = totalSizeClass;
1749 _class->Constructor = (void *)Constructor;
1750 _class->Destructor = Destructor;
1751 if(_class->type != 1000)
1752 _class->type = type;
1754 _class->computeSize = 0x1;
1756 _class->computeSize = 0x0;
1757 _class->inheritanceAccess = inheritanceAccess;
1761 _class->base = base = enumBase;
1763 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1765 if(base && base->type != 4)
1768 data->largest = ((struct __ecereNameSpace__ecere__com__EnumClassData *)base->data)->largest;
1771 if(base && base->vTblSize)
1773 _class->vTblSize = base->vTblSize;
1774 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1775 _class->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(int (*)()) * _class->vTblSize);
1776 memcpy(_class->_vTbl, base->_vTbl, sizeof(int (*)()) * _class->vTblSize);
1780 struct __ecereNameSpace__ecere__sys__OldLink * link = (link = __ecereNameSpace__ecere__com__eSystem_New0(12), link->data = _class, link);
1782 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->base->derivatives, link);
1784 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
1788 return (((void *)0));
1791 static void __ecereNameSpace__ecere__com__DataMember_Free(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
1793 struct __ecereNameSpace__ecere__com__DataMember * member;
1794 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1796 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->name), parentMember->name = 0);
1797 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->dataTypeString), parentMember->dataTypeString = 0);
1798 while((member = parentMember->members.first))
1800 __ecereNameSpace__ecere__com__DataMember_Free(member);
1801 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&parentMember->members, member);
1803 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentMember->membersAlpha)))
1805 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentMember->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1809 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1811 struct __ecereNameSpace__ecere__sys__NamedLink
1813 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
1814 struct __ecereNameSpace__ecere__sys__NamedLink * next;
1819 static void __ecereNameSpace__ecere__com__FreeEnumValue(struct __ecereNameSpace__ecere__sys__NamedLink * value)
1821 (__ecereNameSpace__ecere__com__eSystem_Delete(value->name), value->name = 0);
1824 static void __ecereNameSpace__ecere__com__FreeTemplateArg(struct __ecereNameSpace__ecere__com__Class * template, struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, int id)
1829 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1832 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1839 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template)
1841 if(template->templateArgs)
1843 struct __ecereNameSpace__ecere__com__Class * _class;
1845 for(_class = template; _class; _class = _class->base)
1847 struct __ecereNameSpace__ecere__com__Class * prevClass;
1848 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1851 if(_class->templateClass)
1852 _class = _class->templateClass;
1853 for(prevClass = _class->base; prevClass; prevClass = prevClass->base)
1855 if(prevClass->templateClass)
1856 prevClass = prevClass->templateClass;
1857 id += prevClass->templateParams.count;
1859 if(id < template->numParams)
1861 for(param = _class->templateParams.first; param; param = param->next)
1866 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1869 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1881 static void __ecereNameSpace__ecere__com__FreeTemplate(struct __ecereNameSpace__ecere__com__Class * template)
1883 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
1885 if(template->nameSpace)
1887 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
1889 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1891 __ecereNameSpace__ecere__com__FreeTemplateArgs(template);
1892 (__ecereNameSpace__ecere__com__eSystem_Delete(template->fullName), template->fullName = 0);
1893 (__ecereNameSpace__ecere__com__eSystem_Delete(template->name), template->name = 0);
1894 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs), template->templateArgs = 0);
1895 while((deriv = template->derivatives.first))
1897 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
1898 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&template->derivatives, deriv);
1900 __ecereNameSpace__ecere__com___free(template);
1903 static void __ecereNameSpace__ecere__com__FreeTemplates(struct __ecereNameSpace__ecere__com__Class * _class)
1905 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
1907 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
1909 __ecereNameSpace__ecere__com__FreeTemplates(deriv->data);
1911 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1912 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1913 while((template = _class->templatized.first))
1915 __ecereNameSpace__ecere__com__FreeTemplates(template->data);
1916 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
1917 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
1921 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
1923 void __ecereNameSpace__ecere__com__eClass_Unregister(struct __ecereNameSpace__ecere__com__Class * _class)
1925 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1926 struct __ecereNameSpace__ecere__com__DataMember * member;
1927 struct __ecereNameSpace__ecere__com__Method * method;
1928 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
1929 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
1930 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1932 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1933 __ecereNameSpace__ecere__com__FreeTemplates(_class);
1934 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1935 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1936 while((template = _class->templatized.first))
1938 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
1939 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
1941 while((member = _class->membersAndProperties.first))
1943 if(!member->isProperty && (member->type == 1 || member->type == 2))
1944 __ecereNameSpace__ecere__com__DataMember_Free(member);
1945 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
1946 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
1947 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, member);
1949 while((member = _class->conversions.first))
1951 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
1952 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
1953 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->conversions, member);
1955 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->prop)))
1957 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1959 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->members)))
1961 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1963 while((classProp = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->classProperties)))
1965 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->name), classProp->name = 0);
1966 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->dataTypeString), classProp->dataTypeString = 0);
1967 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)classProp);
1969 while((method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods)))
1971 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1972 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1973 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1975 if(_class->type == 4)
1977 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1979 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&data->values, (void *)__ecereNameSpace__ecere__com__FreeEnumValue);
1981 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->delayedCPValues, (((void *)0)));
1982 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->selfWatchers, (((void *)0)));
1985 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1987 for(deriv = base->derivatives.first; deriv; deriv = deriv->next)
1989 if(deriv->data == _class)
1993 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1995 while((deriv = _class->derivatives.first))
1997 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
1998 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->derivatives, deriv);
2000 if(_class->nameSpace)
2002 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
2004 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2006 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->name), _class->name = 0);
2007 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
2008 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2009 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->data), _class->data = 0);
2010 while((param = _class->templateParams.first))
2015 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.dataTypeString), param->defaultArg.dataTypeString = 0);
2018 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.memberString), param->defaultArg.memberString = 0);
2023 if(param->type != 1)
2024 (__ecereNameSpace__ecere__com__eSystem_Delete(param->dataTypeString), param->dataTypeString = 0);
2025 (__ecereNameSpace__ecere__com__eSystem_Delete(param->name), param->name = 0);
2026 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templateParams, param);
2028 __ecereNameSpace__ecere__com___free(_class);
2031 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, unsigned int key);
2033 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__ScanNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2035 struct __ecereNameSpace__ecere__sys__BinaryTree * tree = (struct __ecereNameSpace__ecere__sys__BinaryTree *)((unsigned char *)nameSpace + (unsigned int)listOffset);
2036 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find((&*tree), (unsigned int)name);
2037 struct __ecereNameSpace__ecere__com__NameSpace * child;
2041 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)))
2043 link = __ecereNameSpace__ecere__com__ScanNameSpace(child, name, listOffset);
2051 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2057 for(c = 0; (ch = name[c]); c++)
2063 if(level == 0 && (ch == '.' || (ch == ':' && name[c + 1] == ':')))
2065 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
2066 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
2068 memcpy(spaceName, name + start, c - start);
2069 spaceName[c - start] = '\0';
2070 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&nameSpace->nameSpaces, spaceName);
2071 __ecereNameSpace__ecere__com___free(spaceName);
2073 return (((void *)0));
2074 nameSpace = newSpace;
2075 if(level == 0 && ch == ':')
2082 return __ecereNameSpace__ecere__com__ScanNameSpace(nameSpace, name + start, listOffset);
2084 return (((void *)0));
2087 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchModule(struct __ecereNameSpace__ecere__com__Instance * module, char * name, void * listOffset, unsigned int searchPrivate)
2089 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2090 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2094 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace, name, listOffset);
2098 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace, name, listOffset);
2101 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules.first; subModule; subModule = subModule->next)
2103 if(searchPrivate || subModule->importMode == 1)
2105 link = __ecereNameSpace__ecere__com__SearchModule(subModule->module, name, listOffset, 0x0);
2110 return (((void *)0));
2113 extern int isspace(int c);
2115 long long __ecereNameSpace__ecere__com___strtoi64(char * string, char ** endString, int base)
2117 long long value = 0;
2122 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2134 if(ch == (char)0 && string[c + 1] == 'x')
2147 for(; (ch = string[c]); c++)
2151 else if(ch >= '1' && ch <= '9')
2153 else if(ch >= 'a' && ch <= 'z')
2155 else if(ch >= 'A' && ch <= 'Z')
2159 *endString = string + c;
2169 *endString = string + c;
2173 return sign * value;
2176 uint64 __ecereNameSpace__ecere__com___strtoui64(char * string, char ** endString, int base)
2183 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2195 if(ch == (char)0 && string[c + 1] == 'x')
2208 for(; (ch = string[c]); c++)
2212 else if(ch >= '1' && ch <= '9')
2214 else if(ch >= 'a' && ch <= 'z')
2216 else if(ch >= 'A' && ch <= 'Z')
2220 *endString = string + c;
2230 *endString = string + c;
2234 return sign * value;
2237 extern char * strcat(char * , const char * );
2239 extern int strlen(const char * );
2241 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
2243 void * __ecereTemp1;
2247 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2249 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);
2252 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2256 char noTemplateName[1024];
2257 char * templateParams = strchr(name, '<');
2261 strncpy(noTemplateName, name, templateParams - name);
2262 noTemplateName[templateParams - name] = '\0';
2265 strcpy(noTemplateName, name);
2266 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);
2268 link = __ecereNameSpace__ecere__com__SearchModule(module, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2271 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
2272 struct __ecereNameSpace__ecere__com__Class * templatedClass = (((void *)0));
2273 char className[1024];
2275 strcpy(className, _class->fullName);
2276 strcat(className, templateParams);
2277 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);
2280 link = __ecereNameSpace__ecere__com__SearchModule(module, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2283 if(_class && templateParams)
2285 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct1 =
2289 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct0 =
2294 templatedClass = __ecereNameSpace__ecere__com__eSystem_New0(368);
2295 *templatedClass = *_class;
2296 templatedClass->templateClass = _class;
2297 templatedClass->fullName = __ecereNameSpace__ecere__sys__CopyString(className);
2298 templatedClass->name = __ecereNameSpace__ecere__sys__CopyString(templatedClass->fullName + strlen(_class->fullName) - strlen(_class->name));
2299 __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)));
2300 templatedClass->templateArgs = (((void *)0));
2301 templatedClass->numParams = 0;
2302 templatedClass->derivatives = __simpleStruct0;
2303 templatedClass->templatized = __simpleStruct1;
2304 __ecereNameSpace__ecere__com__ComputeClassParameters(templatedClass, templateParams, module);
2305 __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)));
2307 return templatedClass;
2311 return (((void *)0));
2314 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg)
2319 arg->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(arg->dataTypeString);
2324 arg->memberString = __ecereNameSpace__ecere__sys__CopyString(arg->memberString);
2329 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
2331 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
2333 extern double strtod(char * , char * * );
2335 extern int sprintf(char * , char * , ...);
2337 extern char * strstr(char * , const char * );
2339 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);
2341 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2343 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2345 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule)
2348 char * nextParamStart = templateParams ? (templateParams + 1) : (((void *)0));
2349 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam = (((void *)0));
2350 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0)), * sClass;
2353 struct __ecereNameSpace__ecere__com__Class * _class = templatedClass->templateClass ? templatedClass->templateClass : templatedClass;
2355 for(sClass = _class; sClass; sClass = sClass->base)
2357 if(sClass->templateClass)
2358 sClass = sClass->templateClass;
2359 numParams += sClass->templateParams.count;
2361 if(templatedClass->templateArgs)
2362 __ecereNameSpace__ecere__com__FreeTemplateArgs(templatedClass);
2363 (__ecereNameSpace__ecere__com__eSystem_Delete(templatedClass->templateArgs), templatedClass->templateArgs = 0);
2364 templatedClass->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
2365 templatedClass->numParams = numParams;
2366 if(_class != templatedClass)
2369 if(templatedClass->base && templatedClass->base->templateArgs && _class == templatedClass)
2371 struct __ecereNameSpace__ecere__com__Class * sClass;
2373 memcpy(templatedClass->templateArgs, templatedClass->base->templateArgs, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams - templatedClass->templateParams.count));
2374 for(sClass = templatedClass->base; sClass; sClass = sClass->base)
2376 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2377 struct __ecereNameSpace__ecere__com__Class * prevClass;
2380 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
2382 if(prevClass->templateClass)
2383 prevClass = prevClass->templateClass;
2384 id += prevClass->templateParams.count;
2386 if(sClass->templateClass)
2387 sClass = sClass->templateClass;
2388 for(param = sClass->templateParams.first; param; param = param->next)
2389 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[id++]);
2392 while(nextParamStart)
2394 char * paramStart = nextParamStart;
2398 while(*paramStart == ' ')
2400 paramEnd = paramStart;
2401 while((ch = *paramEnd, ch && (level > 0 || (ch != '>' && ch != ','))))
2409 nextParamStart = (ch == ',') ? (paramEnd + 1) : (((void *)0));
2410 while(*paramEnd == ' ')
2412 if(paramEnd > paramStart)
2414 char * ptr, * equal = (((void *)0));
2416 for(ptr = paramStart; ptr <= paramEnd; ptr++)
2426 char * end = equal - 1;
2431 strncpy(ident, paramStart, end + 1 - paramStart);
2432 ident[end + 1 - paramStart] = (char)0;
2433 for(sClass = _class; sClass; sClass = sClass->base)
2435 if(sClass->templateClass)
2436 sClass = sClass->templateClass;
2437 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
2439 if(!strcmp(curParam->name, ident))
2444 struct __ecereNameSpace__ecere__com__Class * nextClass;
2445 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prevParam;
2448 for(prevParam = curParam->prev; prevParam; prevParam = prevParam->prev)
2450 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2452 if(nextClass->templateClass)
2453 nextClass = nextClass->templateClass;
2454 curParamID += nextClass->templateParams.count;
2465 curParam = curParam->next;
2470 for(sClass = lastClass ? lastClass->base : _class; sClass; sClass = sClass->base)
2472 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2475 if(sClass->templateClass)
2476 sClass = sClass->templateClass;
2477 for(param = sClass->templateParams.first; param; param = param->next, curParamID++)
2484 struct __ecereNameSpace__ecere__com__Class * nextClass;
2486 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2488 if(nextClass->templateClass)
2489 nextClass = nextClass->templateClass;
2490 curParamID += nextClass->templateParams.count;
2500 struct __ecereNameSpace__ecere__com__ClassTemplateArgument argument =
2509 while(*equal == ' ')
2511 memcpy(value, equal, paramEnd - equal);
2512 value[paramEnd - equal] = (char)0;
2516 memcpy(value, paramStart, paramEnd - paramStart);
2517 value[paramEnd - paramStart] = (char)0;
2519 __ecereNameSpace__ecere__sys__TrimRSpaces(value, value);
2520 switch(curParam->type)
2523 argument.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value);
2524 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, value);
2525 if(!argument.dataTypeClass)
2526 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->application, value);
2527 if(!argument.dataTypeClass)
2528 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, value);
2532 struct __ecereNameSpace__ecere__com__Class * expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, curParam->dataTypeString);
2535 expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + 12)))->application, curParam->dataTypeString);
2538 expClass->_vTbl[__ecereVMethodID_class_OnGetDataFromString](expClass, &argument.expression, value);
2540 else if(value[0] == '\"')
2542 char * endQuote = value + strlen(value) - 1;
2544 if(*endQuote != '\"')
2547 argument.expression.p = __ecereNameSpace__ecere__sys__CopyString(value + 1);
2549 else if(value[0] == '\'')
2552 unsigned int ch = __ecereNameSpace__ecere__sys__UTF8GetChar(value + 1, &nb);
2554 argument.expression.ui = ch;
2556 else if(!strcmp(curParam->dataTypeString, "uint"))
2558 argument.expression.ui = strtoul(value, (((void *)0)), 0);
2560 else if(!strcmp(curParam->dataTypeString, "char"))
2562 argument.expression.c = (char)strtol(value, (((void *)0)), 0);
2564 else if(!strcmp(curParam->dataTypeString, "byte"))
2566 argument.expression.uc = (unsigned char)strtoul(value, (((void *)0)), 0);
2568 else if(!strcmp(curParam->dataTypeString, "short"))
2570 argument.expression.s = (short)strtol(value, (((void *)0)), 0);
2572 else if(!strcmp(curParam->dataTypeString, "uint16"))
2574 argument.expression.us = (unsigned short)strtoul(value, (((void *)0)), 0);
2576 else if(!strcmp(curParam->dataTypeString, "int64"))
2578 argument.expression.i64 = __ecereNameSpace__ecere__com___strtoi64(value, (((void *)0)), 0);
2580 else if(!strcmp(curParam->dataTypeString, "uint64"))
2582 argument.expression.ui64 = __ecereNameSpace__ecere__com___strtoui64(value, (((void *)0)), 0);
2584 else if(!strcmp(curParam->dataTypeString, "float"))
2586 argument.expression.f = (float)strtod(value, (((void *)0)));
2588 else if(!strcmp(curParam->dataTypeString, "double"))
2590 argument.expression.d = strtod(value, (((void *)0)));
2594 argument.expression.i = strtol(value, (((void *)0)), 0);
2599 argument.memberString = __ecereNameSpace__ecere__sys__CopyString(value);
2602 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, curParam, curParamID);
2603 templatedClass->templateArgs[curParamID] = argument;
2607 if(templatedClass == _class)
2609 struct __ecereNameSpace__ecere__com__Class * sClass = _class;
2611 struct __ecereNameSpace__ecere__com__Class * nextClass;
2612 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2614 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2616 if(nextClass->templateClass)
2617 nextClass = nextClass->templateClass;
2618 curParamID += nextClass->templateParams.count;
2620 for(param = sClass->templateParams.first; param; param = param->next)
2622 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2624 templatedClass->templateArgs[curParamID] = param->defaultArg;
2625 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2626 if(param->type == 0 && param->defaultArg.dataTypeString)
2628 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2629 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2630 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, param->defaultArg.dataTypeString);
2631 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2632 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2638 if(templatedClass->base && templatedClass->base->templateArgs && numParams - _class->templateParams.count)
2640 int c = numParams - _class->templateParams.count - 1;
2642 for(sClass = _class->base; sClass; sClass = sClass->base)
2644 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2646 if(sClass->templateClass)
2647 sClass = sClass->templateClass;
2648 for(param = sClass->templateParams.last; param; param = param->prev)
2650 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2651 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * baseArg = &templatedClass->base->templateArgs[c];
2653 if(!(*arg).dataTypeString)
2655 *arg = templatedClass->base->templateArgs[c];
2656 __ecereNameSpace__ecere__com__CopyTemplateArg(param, arg);
2657 if(param->type == 0)
2659 if((*arg).dataTypeClass && strchr((*arg).dataTypeString, '<') && (*arg).dataTypeClass->templateArgs)
2661 struct __ecereNameSpace__ecere__com__Class * expClass = (*arg).dataTypeClass;
2662 struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0));
2665 char templateString[1024];
2667 sprintf(templateString, "%s<", expClass->templateClass->fullName);
2668 for(cClass = expClass; cClass; cClass = cClass->base)
2671 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2673 for(param = cClass->templateParams.first; param; param = param->next)
2676 struct __ecereNameSpace__ecere__com__Class * sClass;
2677 struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg;
2679 for(sClass = expClass->base; sClass; sClass = sClass->base)
2680 id += sClass->templateParams.count;
2681 arg = expClass->templateArgs[id];
2683 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2684 int p = numParams - _class->templateParams.count;
2686 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2688 if(cParam->type == 0 && arg.dataTypeString && !strcmp(cParam->name, arg.dataTypeString))
2690 arg.dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2691 arg.dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2708 strcat(argument, arg.member->name);
2713 if(arg.dataTypeString)
2714 strcat(argument, arg.dataTypeString);
2721 strcat(templateString, ", ");
2722 if(lastParam != p - 1)
2724 strcat(templateString, param->name);
2725 strcat(templateString, " = ");
2727 strcat(templateString, argument);
2736 int len = strlen(templateString);
2738 if(templateString[len - 1] == '>')
2739 templateString[len++] = ' ';
2740 templateString[len++] = '>';
2741 templateString[len++] = '\0';
2743 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2744 (*arg).dataTypeString = __ecereNameSpace__ecere__sys__CopyString(templateString);
2745 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, templateString);
2746 if(!(*arg).dataTypeClass)
2747 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, templateString);
2751 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2752 int p = numParams - _class->templateParams.count;
2754 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2756 if(cParam->type == 0 && (*baseArg).dataTypeString && !strcmp(cParam->name, (*baseArg).dataTypeString))
2758 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2759 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2760 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2761 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2773 struct __ecereNameSpace__ecere__com__Class * sClass;
2775 for(sClass = _class; sClass; sClass = sClass->base)
2778 struct __ecereNameSpace__ecere__com__Class * nextClass;
2779 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2781 if(sClass->templateClass)
2782 sClass = sClass->templateClass;
2783 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2785 if(nextClass->templateClass)
2786 nextClass = nextClass->templateClass;
2787 curParamID += nextClass->templateParams.count;
2789 for(param = sClass->templateParams.first; param; param = param->next)
2791 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2793 templatedClass->templateArgs[curParamID] = param->defaultArg;
2794 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2795 if(param->type == 0 && param->defaultArg.dataTypeString)
2797 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2798 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2799 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, param->defaultArg.dataTypeString);
2800 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2801 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2809 int c = numParams - 1;
2811 for(sClass = _class; sClass; sClass = sClass->base)
2813 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2815 if(sClass->templateClass)
2816 sClass = sClass->templateClass;
2817 for(param = sClass->templateParams.last; param; param = param->prev)
2819 if(param->type == 0)
2821 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2822 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2823 struct __ecereNameSpace__ecere__com__Class * dClass;
2824 int p = numParams - 1;
2826 for(dClass = _class; dClass; dClass = dClass->base)
2828 if(dClass->templateClass)
2829 dClass = dClass->templateClass;
2830 for(cParam = dClass->templateParams.last; cParam; cParam = cParam->prev, p--)
2832 if(cParam->type == 0 && (*arg).dataTypeString && !strcmp(cParam->name, (*arg).dataTypeString))
2834 if(templatedClass->templateArgs[p].dataTypeString && c != p)
2836 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2837 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2838 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2839 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2850 struct __ecereNameSpace__ecere__com__Class * tClass;
2851 int c = numParams - 1;
2853 for(tClass = _class; tClass; tClass = tClass->base)
2855 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2857 if(tClass->templateClass)
2858 tClass = tClass->templateClass;
2859 for(param = tClass->templateParams.last; param; param = param->prev)
2861 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2863 if(param->type == 1 && (*arg).memberString)
2865 struct __ecereNameSpace__ecere__com__Class * memberClass = templatedClass;
2866 char * memberString = (*arg).memberString;
2867 char * colon = strstr(memberString, "::");
2868 char * memberName = memberString;
2871 memberName = colon + 2;
2874 memberString = param->defaultArg.memberString;
2875 colon = memberString ? strstr(memberString, "::") : (((void *)0));
2879 char className[1024];
2880 struct __ecereNameSpace__ecere__com__Class * sClass;
2882 memcpy(className, memberString, colon - memberString);
2883 className[colon - memberString] = '\0';
2884 for(sClass = _class; sClass; sClass = sClass->base)
2886 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2887 struct __ecereNameSpace__ecere__com__Class * nextClass;
2890 if(sClass->templateClass)
2891 sClass = sClass->templateClass;
2892 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2894 if(nextClass->templateClass)
2895 nextClass = nextClass->templateClass;
2896 id += nextClass->templateParams.count;
2898 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
2900 if(cParam->type == 0 && !strcmp(cParam->name, className) && templatedClass->templateArgs[id].dataTypeString)
2902 strcpy(className, templatedClass->templateArgs[id].dataTypeString);
2907 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, className);
2909 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, className);
2911 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + 12)))->application, className);
2915 switch(param->memberType)
2918 (*arg).member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
2921 (*arg).method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
2924 (*arg).prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
2935 unsigned int __ecereNameSpace__ecere__com__DefaultFunction()
2940 unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
2942 if(!_class && !from)
2944 if(_class && from && (_class->templateClass || from->templateClass))
2946 if(__ecereNameSpace__ecere__com__eClass_IsDerived(_class->templateClass ? _class->templateClass : _class, from->templateClass ? from->templateClass : from))
2948 if(!from->templateClass)
2950 else if(!_class->templateClass && _class == from->templateClass)
2954 struct __ecereNameSpace__ecere__com__Class * sClass;
2956 for(sClass = from; sClass; sClass = sClass->base)
2958 if(sClass->templateParams.first)
2960 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2961 struct __ecereNameSpace__ecere__com__Class * nextClass;
2964 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2965 p += nextClass->templateParams.count;
2966 for(param = sClass->templateParams.first; param; param = param->next, p++)
2968 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &_class->templateArgs[p];
2969 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * fArg = &from->templateArgs[p];
2971 if(param->type == 0)
2973 if((*arg).dataTypeString != (*fArg).dataTypeString && (*arg).dataTypeString && (*fArg).dataTypeString && strcmp((*arg).dataTypeString, (*fArg).dataTypeString))
2976 else if(param->type == 1)
2978 if((*arg).member != (*fArg).member)
2981 else if(param->type == 2)
2983 if((*arg).expression.ui64 != (*fArg).expression.ui64)
2997 for(; _class && from; _class = _class->base)
2999 if(_class == from || _class->templateClass == from || (_class->type == 1000 && from->name && !strcmp(_class->name, from->name)))
3006 static void __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(struct __ecereNameSpace__ecere__com__Class * base, char * name, int vid, void * origFunction, char * type)
3008 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3010 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3012 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3013 struct __ecereNameSpace__ecere__com__Method * method, * next;
3014 void * function = origFunction;
3017 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3018 memmove(_class->_vTbl + vid + 1, _class->_vTbl + vid, (_class->vTblSize - vid - 1) * sizeof(void *));
3019 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3022 if(method->function)
3023 function = method->function;
3026 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
3027 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3028 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3032 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3034 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type);
3035 method->_class = base;
3038 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
3040 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
3041 if(method->type == 1)
3044 _class->_vTbl[vid] = function;
3046 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3048 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3050 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3052 template->_vTbl = _class->_vTbl;
3055 if(_class->derivatives.first || _class->templatized.first)
3056 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, vid, function, type);
3059 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3061 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
3063 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3065 template->_vTbl = base->_vTbl;
3066 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(template, name, vid, origFunction, type);
3071 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3075 struct __ecereNameSpace__ecere__com__Class * base;
3077 for(base = _class; base; base = base->base)
3079 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3083 if(method->type == 1)
3085 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3086 void * oldFunction = _class->_vTbl[method->vid];
3088 if(method->vid > _class->vTblSize)
3091 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3092 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3094 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3096 if(derivClass->_vTbl[method->vid] == oldFunction)
3097 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3100 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3102 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3104 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3106 for(deriv = template->derivatives.first; deriv; deriv = deriv->next)
3108 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3110 if(derivClass->_vTbl[method->vid] == oldFunction)
3111 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3122 base = (((void *)0));
3130 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);
3132 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3136 return (((void *)0));
3139 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3143 struct __ecereNameSpace__ecere__com__Class * base;
3145 for(base = _class; base; base = base->base)
3147 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3151 if(method->type == 1)
3152 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3154 base = (((void *)0));
3160 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);
3162 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3163 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3164 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3165 if(_class->derivatives.first || _class->templatized.first)
3166 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, method->vid, function ? function : (void *)__ecereNameSpace__ecere__com__DefaultFunction, type);
3170 return (((void *)0));
3173 static void __ecereNameSpace__ecere__com__FixDerivativeProperty(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Property * _property)
3175 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3177 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3179 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3180 struct __ecereNameSpace__ecere__com__Property * prop;
3181 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3183 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
3187 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
3189 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
3191 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
3193 if(watcher->_property == prop)
3194 watcher->_property = _property;
3196 _property->selfWatchable = 0x1;
3197 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
3198 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
3199 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
3200 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
3203 for(prop = _class->membersAndProperties.first; prop; prop = prop->next)
3206 _class->startMemberID++;
3207 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3211 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)
3213 void * __ecereTemp1;
3214 struct __ecereNameSpace__ecere__com__Property * _property = (((void *)0));
3218 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, (name ? name : dataType)))
3220 _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));
3222 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, _property);
3224 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->conversions, _property);
3225 __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)));
3226 if(!_property->conversion)
3228 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3235 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property)
3237 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3238 struct __ecereNameSpace__ecere__sys__NamedLink * value, * next;
3240 for(value = _class->delayedCPValues.first; value; value = next)
3243 if(!strcmp(value->name, _property->name))
3245 _property->Set(_class, (int)value->data);
3246 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->delayedCPValues, value);
3249 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3251 __ecereNameSpace__ecere__com__SetDelayedCPValues(deriv->data, _property);
3255 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt)
3257 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name))
3259 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);
3261 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)_property);
3262 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
3265 return (((void *)0));
3268 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3270 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (((void *)0));
3274 struct __ecereNameSpace__ecere__com__Class * origClass = _class;
3276 for(; _class; _class = _class->base)
3278 _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name);
3282 if(!_property && origClass->type == 4)
3284 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(origClass->module, "enum");
3286 _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(enumClass, name);
3292 int __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3294 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3296 if(_property && _property->Get && _property->Get != (void *)1)
3298 int result = _property->Get(_class);
3305 void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, int value)
3307 void * __ecereTemp1;
3308 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3313 _property->Set(_class, value);
3317 __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)));
3321 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3325 for(; _class; _class = _class->base)
3327 struct __ecereNameSpace__ecere__com__Method * method;
3329 if(_class->templateClass)
3330 _class = _class->templateClass;
3331 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3332 if(method && (method->memberAccess == 1 || _class->module == module || !method->dataTypeString))
3334 if(!method->dataTypeString)
3336 if(_class->module != module)
3338 if(method->memberAccess == 1)
3339 module = _class->module;
3342 return (((void *)0));
3351 if(_class->inheritanceAccess == 2 && _class->module != module)
3355 return (((void *)0));
3358 static unsigned int __ecereNameSpace__ecere__com__ConstructInstance(void * instance, struct __ecereNameSpace__ecere__com__Class * _class)
3360 if(_class->templateClass)
3361 _class = _class->templateClass;
3364 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class->base))
3367 if(_class->Initialize)
3369 void (* Initialize)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)_class->Initialize;
3371 _class->Initialize = (((void *)0));
3372 Initialize(_class->module);
3374 if(_class->Constructor)
3376 if(!_class->Constructor(instance))
3378 for(; _class; _class = _class->base)
3380 if(_class->templateClass)
3381 _class = _class->templateClass;
3382 if(_class->Destructor)
3383 _class->Destructor(instance);
3388 (_class->templateClass ? _class->templateClass : _class)->count++;
3392 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class)
3394 struct __ecereNameSpace__ecere__com__Instance * instance = (((void *)0));
3398 instance = __ecereNameSpace__ecere__com___calloc(1, _class->structSize);
3399 if(_class->type == 0)
3401 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3402 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3404 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class))
3406 __ecereNameSpace__ecere__com___free(instance);
3407 instance = (((void *)0));
3413 void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance ** instancePtr, struct __ecereNameSpace__ecere__com__Class * _class)
3415 if(_class && instancePtr && *instancePtr)
3417 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eSystem_Renew(*instancePtr, sizeof(unsigned char) * (_class->structSize));
3419 *instancePtr = instance;
3420 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);
3421 if(!strcmp(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->name, "Application"))
3423 struct __ecereNameSpace__ecere__com__Instance * module;
3424 struct __ecereNameSpace__ecere__com__Instance * app = (struct __ecereNameSpace__ecere__com__Instance *)instance;
3425 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3426 struct __ecereNameSpace__ecere__com__Class * _class;
3427 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
3429 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->next)
3430 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = app;
3431 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)))
3433 struct __ecereNameSpace__ecere__sys__OldLink * t;
3435 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3436 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3438 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3440 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3443 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)))
3445 struct __ecereNameSpace__ecere__sys__OldLink * t;
3447 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3448 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3450 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3452 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3455 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)))
3456 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3457 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)))
3458 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3459 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)))
3460 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3461 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)))
3462 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3463 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)))
3464 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->privateNameSpace;
3465 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)))
3466 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->publicNameSpace;
3467 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)))
3469 struct __ecereNameSpace__ecere__sys__OldLink * t;
3471 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace;
3472 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3474 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3476 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3479 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)))
3480 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace;
3481 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)))
3482 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)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(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)))
3486 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace;
3487 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->classes.first; _class; _class = _class->next)
3489 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3491 _class->module = (struct __ecereNameSpace__ecere__com__Instance *)app;
3492 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3494 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3496 template->module = _class->module;
3499 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->application = app;
3502 struct __ecereNameSpace__ecere__com__Class * base;
3504 for(base = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; base && base->type == 0 && base->count; base = base->base)
3505 (base->templateClass ? base->templateClass : base)->count--;
3507 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3508 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3509 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class))
3511 __ecereNameSpace__ecere__com___free(instance);
3512 *instancePtr = (((void *)0));
3517 void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance)
3521 struct __ecereNameSpace__ecere__com__Class * _class, * base;
3522 unsigned int ownVtbl;
3524 ownVtbl = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl != ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl;
3525 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3527 if(_class->templateClass)
3528 _class = _class->templateClass;
3529 if(_class->destructionWatchOffset)
3531 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
3532 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
3534 for(watcher = (*watchers).first; watcher; watcher = next)
3536 next = watcher->next;
3537 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*watchers), watcher);
3538 watcher->callback(watcher->object, instance);
3539 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
3542 base = _class->base;
3543 if(base && base->type == 1000)
3544 base = (((void *)0));
3545 if(_class->Destructor)
3546 _class->Destructor(instance);
3548 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3550 if(_class->templateClass)
3551 _class = _class->templateClass;
3552 base = _class->base;
3553 (_class->templateClass ? _class->templateClass : _class)->count--;
3554 if(_class->type == 0 && !_class->count && !_class->module)
3556 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
3561 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl), ((struct __ecereNameSpace__ecere__com__Instance * )(char * )instance)->_vTbl = 0);
3563 __ecereNameSpace__ecere__com___free(instance);
3567 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3571 for(; _class; _class = _class->base)
3573 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3575 if(_class->templateClass)
3576 _class = _class->templateClass;
3577 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name);
3580 struct __ecereNameSpace__ecere__com__Property * _property = (struct __ecereNameSpace__ecere__com__Property *)link->data;
3582 if(_property->memberAccess == 1 || _class->module == module || !_property->dataTypeString)
3584 if(!_property->dataTypeString)
3586 if(_class->module != module)
3588 if(_property->memberAccess == 1)
3589 module = _class->module;
3592 return (((void *)0));
3602 if(_class->inheritanceAccess == 2 && _class->module != module)
3606 return (((void *)0));
3609 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)
3611 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3612 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3614 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(alist, name);
3617 dataMember = link->data;
3618 if(dataMember->type == 0 && (dataMember->memberAccess == 1 || searchPrivate || !dataMember->dataTypeString))
3621 *offset += dataMember->offset;
3623 *id = dataMember->id;
3626 return (((void *)0));
3628 for(dataMember = list->first; dataMember; dataMember = dataMember->next)
3630 if(!dataMember->isProperty && (dataMember->memberAccess == 1 || searchPrivate) && !dataMember->name && (dataMember->type == 1 || dataMember->type == 2))
3632 struct __ecereNameSpace__ecere__com__DataMember * childMember;
3634 if(subMemberStackPos)
3635 subMemberStack[(*subMemberStackPos)++] = dataMember;
3636 childMember = __ecereNameSpace__ecere__com__FindDataMember(&dataMember->members, &dataMember->membersAlpha, name, offset, id, searchPrivate, subMemberStack, subMemberStackPos);
3640 *offset += dataMember->offset;
3642 *id += dataMember->id;
3645 if(subMemberStackPos)
3646 (*subMemberStackPos)--;
3649 return (((void *)0));
3652 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)
3654 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3656 if(subMemberStackPos)
3657 *subMemberStackPos = 0;
3660 for(; _class; _class = _class->base)
3662 if(_class->templateClass)
3663 _class = _class->templateClass;
3664 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3667 if(!dataMember->dataTypeString)
3669 if(_class->module != module)
3671 if(dataMember->memberAccess == 1)
3672 module = _class->module;
3675 return (((void *)0));
3678 dataMember = (((void *)0));
3682 dataMember->_class = _class->templateClass ? _class->templateClass : _class;
3686 if(_class->inheritanceAccess == 2 && _class->module != module)
3693 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)
3695 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3697 if(subMemberStackPos)
3698 *subMemberStackPos = 0;
3703 for(; _class; _class = _class->base)
3705 if(_class->templateClass)
3706 _class = _class->templateClass;
3707 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, offset, (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3710 if(!dataMember->dataTypeString)
3712 if(_class->module != module)
3714 if(dataMember->memberAccess == 1)
3715 module = _class->module;
3718 return (((void *)0));
3721 dataMember = (((void *)0));
3725 dataMember->_class = _class;
3729 if(_class->inheritanceAccess == 2 && _class->module != module)
3736 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)
3738 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3740 if(subMemberStackPos)
3741 *subMemberStackPos = 0;
3744 for(; _class; _class = _class->base)
3746 if(_class->templateClass)
3747 _class = _class->templateClass;
3748 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), id, _class->module == module, subMemberStack, subMemberStackPos);
3751 if(!dataMember->dataTypeString)
3753 if(_class->module != module)
3755 if(dataMember->memberAccess == 1)
3756 module = _class->module;
3759 return (((void *)0));
3762 dataMember = (((void *)0));
3766 dataMember->_class = _class;
3770 if(_class->inheritanceAccess == 2 && _class->module != module)
3777 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)
3781 *curMember = (*curMember)->next;
3782 if(subMemberStackPos && *subMemberStackPos > 0 && subMemberStack[*subMemberStackPos - 1]->type == 1)
3784 *curMember = subMemberStack[--(*subMemberStackPos)];
3785 *curMember = (*curMember)->next;
3787 if(subMemberStackPos && *subMemberStackPos > 0)
3789 while(*curMember && ((*curMember)->memberAccess == 2))
3790 *curMember = (*curMember)->next;
3793 while(*curMember && (*curMember)->name)
3795 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3798 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3799 if(dataMember && dataMember->memberAccess != 2)
3801 *curMember = dataMember;
3805 *curMember = (*curMember)->next;
3807 if(subMemberStackPos)
3809 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3811 subMemberStack[(*subMemberStackPos)++] = *curMember;
3812 *curMember = (*curMember)->members.first;
3813 while(*curMember && ((*curMember)->memberAccess == 2))
3814 *curMember = (*curMember)->next;
3822 if(subMemberStackPos && *subMemberStackPos)
3824 *curMember = subMemberStack[--(*subMemberStackPos)];
3825 *curMember = (*curMember)->next;
3829 struct __ecereNameSpace__ecere__com__Class * lastCurClass = *curClass;
3831 if(*curClass == _class)
3833 for(*curClass = _class; (*curClass)->base != lastCurClass && (*curClass)->base->type != 1000 && (*curClass)->inheritanceAccess != 2; *curClass = (*curClass)->base)
3835 *curMember = (*curClass)->membersAndProperties.first;
3837 if(subMemberStackPos && *subMemberStackPos > 0)
3839 while(*curMember && ((*curMember)->memberAccess == 2))
3840 *curMember = (*curMember)->next;
3843 while(*curMember && (*curMember)->name)
3845 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
3848 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
3849 if(dataMember && dataMember->memberAccess != 2)
3851 *curMember = dataMember;
3855 *curMember = (*curMember)->next;
3857 if(subMemberStackPos)
3859 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
3861 subMemberStack[(*subMemberStackPos)++] = *curMember;
3862 *curMember = (*curMember)->members.first;
3863 while(*curMember && (*curMember)->memberAccess == 2)
3864 *curMember = (*curMember)->next;
3871 void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function)
3873 if(instance && name)
3875 struct __ecereNameSpace__ecere__com__Class * _class;
3877 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
3879 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3881 if(method && method->type == 1)
3883 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl == ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl)
3885 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(void *) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
3886 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);
3888 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3894 unsigned int __ecereNameSpace__ecere__com__eInstance_IsDerived(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Class * from)
3898 struct __ecereNameSpace__ecere__com__Class * _class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3900 for(; _class; _class = _class->base)
3909 void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance)
3912 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount++;
3915 void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance)
3919 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount--;
3920 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount <= 0)
3922 __ecereNameSpace__ecere__com__eInstance_Delete(instance);
3927 static void __ecereNameSpace__ecere__com__FixOffsets(struct __ecereNameSpace__ecere__com__Class * _class)
3929 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3931 _class->structSize += _class->base->structSize - _class->offset;
3932 _class->offset = _class->base->structSize;
3933 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3934 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
3937 void __ecereNameSpace__ecere__com__eClass_Resize(struct __ecereNameSpace__ecere__com__Class * _class, int newSize)
3939 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3941 _class->structSize = newSize;
3942 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3943 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
3946 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)
3948 void * __ecereTemp1;
3952 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
3954 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3958 int __simpleStruct0;
3960 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
3961 if(_class->memberOffset % alignment)
3962 _class->memberOffset += alignment - (_class->memberOffset % alignment);
3964 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));
3965 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
3966 _class->memberOffset += size;
3967 __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)));
3971 return (((void *)0));
3974 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)
3976 void * __ecereTemp1;
3978 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&member->membersAlpha, name))
3980 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3984 int __simpleStruct0;
3986 member->structAlignment = (__simpleStruct0 = member->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
3987 if(member->memberOffset % alignment)
3988 member->memberOffset += alignment - (member->memberOffset % alignment);
3990 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));
3991 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&member->members, dataMember);
3992 if(member->type == 1)
3994 if(size > member->memberOffset)
3995 member->memberOffset = size;
3998 member->memberOffset += size;
3999 __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)));
4002 return (((void *)0));
4005 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode)
4007 void * __ecereTemp1;
4009 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));
4012 static void __ecereNameSpace__ecere__com__SetMemberClass(struct __ecereNameSpace__ecere__com__DataMember * member, struct __ecereNameSpace__ecere__com__Class * _class)
4014 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4016 member->_class = _class;
4017 for(dataMember = member->members.first; dataMember; dataMember = dataMember->next)
4018 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4021 unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4023 void * __ecereTemp1;
4024 int __simpleStruct0, __simpleStruct1;
4026 if(dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&addTo->membersAlpha, dataMember->name))
4028 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&addTo->members, dataMember);
4029 if(dataMember->name)
4030 __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)));
4031 dataMember->_class = addTo->_class;
4032 dataMember->id = addTo->memberID;
4033 if(dataMember->type == 1)
4034 addTo->memberID += 1;
4036 addTo->memberID += dataMember->memberID;
4037 addTo->structAlignment = (__simpleStruct0 = addTo->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4038 dataMember->offset = (addTo->type == 1) ? 0 : addTo->memberOffset;
4039 if(addTo->type == 1)
4041 if(dataMember->memberOffset > addTo->memberOffset)
4042 addTo->memberOffset = dataMember->memberOffset;
4045 addTo->memberOffset += dataMember->memberOffset;
4049 unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4051 void * __ecereTemp1;
4052 int __simpleStruct0, __simpleStruct1;
4054 if(!_class || _class->comRedefinition || (dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, dataMember->name)))
4056 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4057 if(dataMember->name)
4058 __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)));
4059 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4060 dataMember->id = _class->memberID;
4061 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4062 if(dataMember->type == 1)
4063 _class->memberID += 1;
4065 _class->memberID += dataMember->memberID;
4066 dataMember->offset = _class->memberOffset;
4067 _class->memberOffset += dataMember->memberOffset;
4071 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)
4073 void * __ecereTemp1;
4075 if(_class && name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4079 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);
4081 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, bitMember);
4084 bitMember->pos = (bitPos == -1) ? _class->memberOffset : bitPos;
4085 bitMember->size = bitSize;
4086 _class->memberOffset = bitMember->pos + bitMember->size;
4087 for(c = 0; c < bitSize; c++)
4093 bitMember->mask = mask << bitMember->pos;
4095 __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)));
4098 return (((void *)0));
4101 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__Module_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int ensureCOM)
4103 void * __ecereTemp1;
4104 unsigned int (stdcall * Load)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4105 void (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4106 struct __ecereNameSpace__ecere__com__Instance * module;
4108 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)
4110 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4113 if(ensureCOM && (!strcmp(name, "ecereCOM") || !strcmp(name, "ecere")))
4115 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)
4117 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecere") || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM"))
4123 void * library = (((void *)0));
4125 if(ensureCOM && !strcmp(name, "ecereCOM"))
4127 Load = __ecereDll_Load_ecere;
4128 Unload = __ecereDll_Unload_ecere;
4132 library = Instance_Module_Load(name, &Load, &Unload);
4136 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4137 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4138 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library = library;
4139 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4140 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = Unload;
4143 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4144 module = (((void *)0));
4147 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules, module);
4149 if(ensureCOM && !strcmp(name, "ecere") && module)
4151 name = !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, "ecereCOM") ? "ecere" : "ecereCOM";
4152 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))
4154 struct __ecereNameSpace__ecere__com__Instance * module;
4156 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)
4158 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4163 Load = __ecereDll_Load_ecere;
4164 Unload = __ecereDll_Unload_ecere;
4165 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4166 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4167 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library = (((void *)0));
4168 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4169 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = Unload;
4172 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4173 module = (((void *)0));
4175 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules, module);
4181 __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)));
4183 module->_refCount++;
4191 __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)));
4193 module->_refCount++;
4198 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4200 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x1);
4203 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4205 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x0);
4208 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))
4210 void * __ecereTemp1;
4211 struct __ecereNameSpace__ecere__com__Instance * module;
4213 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)
4215 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name, name))
4222 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4223 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application;
4224 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4225 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload = (void *)Unload;
4228 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4229 module = (((void *)0));
4232 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->application + 296)))->allModules, module);
4238 __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)));
4240 module->_refCount++;
4245 void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module)
4247 struct __ecereNameSpace__ecere__sys__OldLink * m;
4249 for(m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->modules.first; m; m = m->next)
4251 if(m->data == module)
4256 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + 12)))->modules, m);
4257 (__ecereNameSpace__ecere__com__eInstance_DecRef(module), module = 0);
4261 void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value)
4263 void * __ecereTemp1;
4265 if(_class && _class->type == 4)
4267 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4268 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4270 for(item = data->values.first; item; item = item->next)
4271 if(!strcmp(item->name, string))
4275 __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)));
4276 if(value > data->largest)
4277 data->largest = value;
4282 int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
4284 void * __ecereTemp1;
4286 if(_class && _class->type == 4)
4288 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4289 int value = data->largest + 1;
4290 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4292 for(item = data->values.first; item; item = item->next)
4293 if(!strcmp(item->name, string))
4297 __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)));
4298 if(value > data->largest)
4299 data->largest = value;
4306 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace)
4308 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
4310 (__ecereNameSpace__ecere__com__eSystem_Delete(parentNameSpace->name), parentNameSpace->name = 0);
4311 while((nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentNameSpace->nameSpaces)))
4313 __ecereNameSpace__ecere__com__NameSpace_Free(nameSpace);
4314 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentNameSpace->nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace);
4318 static void __ecereNameSpace__ecere__com__Application_Destructor(struct __ecereNameSpace__ecere__com__Instance * app)
4320 if(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->parsedCommand)
4322 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->argv), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + 296)))->argv = 0);
4323 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->parsedCommand), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + 296)))->parsedCommand = 0);
4327 static unsigned int __ecereNameSpace__ecere__com__Module_Constructor(struct __ecereNameSpace__ecere__com__Instance * module)
4329 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4330 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4331 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4332 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4333 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4334 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4335 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4336 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4340 static void __ecereNameSpace__ecere__com__Module_Destructor(struct __ecereNameSpace__ecere__com__Instance * module)
4342 struct __ecereNameSpace__ecere__com__Class * _class;
4343 struct __ecereNameSpace__ecere__com__DefinedExpression * def;
4344 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
4345 struct __ecereNameSpace__ecere__com__Instance * m;
4346 struct __ecereNameSpace__ecere__com__SubModule * handle;
4348 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)
4350 struct __ecereNameSpace__ecere__com__SubModule * next;
4352 for(handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->modules.first; handle; handle = next)
4354 next = handle->next;
4355 if(handle->module == module)
4356 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + 12)))->modules, handle);
4359 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload)
4361 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->importType == 1)
4363 unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload;
4369 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->Unload;
4375 struct __ecereNameSpace__ecere__com__Instance * ourWorld = __ecereClass___ecereNameSpace__ecere__com__Class->module;
4376 void * ourHandle = (((void *)0));
4378 while((handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules.last))
4380 struct __ecereNameSpace__ecere__com__Instance * depModule = handle->module;
4382 if(depModule == ourWorld)
4384 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules, handle);
4389 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->modules, handle);
4390 (__ecereNameSpace__ecere__com__eInstance_DecRef(depModule), depModule = 0);
4395 (__ecereNameSpace__ecere__com__eSystem_Delete(ourHandle), ourHandle = 0);
4396 (__ecereNameSpace__ecere__com__eInstance_DecRef(ourWorld), ourWorld = 0);
4399 for(; (_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes.first); )
4401 if(_class->nameSpace)
4403 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
4404 struct __ecereNameSpace__ecere__sys__OldLink * t;
4406 for(t = _class->templatized.first; t; t = t->next)
4408 struct __ecereNameSpace__ecere__com__Class * template = t->data;
4409 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4411 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
4412 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
4413 template->nameSpace = (((void *)0));
4415 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
4416 _class->nameSpace = (((void *)0));
4418 _class->module = (((void *)0));
4419 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->classes, _class);
4420 if(!_class->count || _class->type != 0)
4421 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
4426 for(; (def = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines.first); )
4430 struct __ecereNameSpace__ecere__com__BTNamedLink * defLink;
4432 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)))
4433 if(defLink->data == def)
4435 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*def->nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)defLink);
4439 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
4440 (__ecereNameSpace__ecere__com__eSystem_Delete(def->value), def->value = 0);
4441 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines, def);
4443 for(; (function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions.first); )
4445 if(function->nameSpace)
4447 struct __ecereNameSpace__ecere__com__BTNamedLink * functionLink;
4449 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)))
4450 if(functionLink->data == function)
4452 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*function->nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)functionLink);
4456 (__ecereNameSpace__ecere__com__eSystem_Delete(function->name), function->name = 0);
4457 (__ecereNameSpace__ecere__com__eSystem_Delete(function->dataTypeString), function->dataTypeString = 0);
4458 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions, function);
4460 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->name), ((struct __ecereNameSpace__ecere__com__Module * )(((char * )module + 12)))->name = 0);
4461 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace);
4462 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace);
4463 if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application)
4464 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->allModules, module);
4466 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace);
4467 Instance_Module_Free(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->library);
4470 static int __ecereNameSpace__ecere__com__GetEnumSize(struct __ecereNameSpace__ecere__com__Class * _class)
4472 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4474 return data->largest + 1;
4477 char * strlwr(char * string)
4481 for(c = 0; string[c]; c++)
4482 if(string[c] >= 'A' && string[c] <= 'Z')
4483 string[c] += 'a' - 'A';
4487 char * strupr(char * string)
4491 for(c = 0; string[c]; c++)
4492 if(string[c] >= 'a' && string[c] <= 'z')
4493 string[c] -= 'a' - 'A';
4497 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4499 void * __ecereTemp1;
4500 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4503 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
4505 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace;
4508 for(c = 0; name[c]; c++)
4510 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4512 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4513 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4515 strncpy(spaceName, name + start, c - start);
4516 spaceName[c - start] = '\0';
4517 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4520 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4521 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4522 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4523 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4524 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4525 (*newSpace).name = spaceName;
4526 (*newSpace).parent = nameSpace;
4527 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4530 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4531 nameSpace = newSpace;
4540 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).defines, name + start))
4542 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);
4544 __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)));
4545 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->defines, def);
4548 return (((void *)0));
4551 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4553 void * __ecereTemp1;
4554 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4557 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->privateNameSpace;
4559 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application + 296)))->systemNameSpace;
4562 for(c = 0; name[c]; c++)
4564 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4566 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4567 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4569 strncpy(spaceName, name + start, c - start);
4570 spaceName[c - start] = '\0';
4571 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4574 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4575 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4576 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4577 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4578 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4579 (*newSpace).name = spaceName;
4580 (*newSpace).parent = nameSpace;
4581 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4584 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4585 nameSpace = newSpace;
4594 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).functions, name + start))
4596 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);
4598 __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)));
4599 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->functions, function);
4602 return (((void *)0));
4605 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4609 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4611 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);
4614 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines, 0x1);
4618 return (((void *)0));
4621 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4625 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4627 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);
4630 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions, 0x1);
4634 return (((void *)0));
4637 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size)
4639 return __ecereNameSpace__ecere__com___realloc(memory, size);
4642 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size)
4644 return __ecereNameSpace__ecere__com___crealloc(memory, size);
4647 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size)
4649 return __ecereNameSpace__ecere__com___malloc(size);
4652 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size)
4654 return __ecereNameSpace__ecere__com___calloc(1, size);
4657 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory)
4660 __ecereNameSpace__ecere__com___free(memory);
4663 void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4665 if(instance && _property && _property->selfWatchable)
4667 struct __ecereNameSpace__ecere__com__Class * _class;
4669 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4671 struct __ecereNameSpace__ecere__com__SelfWatcher * selfWatcher, * next;
4673 for(selfWatcher = _class->selfWatchers.first; selfWatcher; selfWatcher = next)
4675 next = selfWatcher->next;
4676 if(selfWatcher->_property == _property)
4677 selfWatcher->callback(instance);
4683 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4685 if(instance && _property && _property->isWatchable)
4687 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4688 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
4690 for(watcher = (*watchers).first; watcher; watcher = next)
4692 next = watcher->next;
4693 watcher->callback(watcher->object, instance);
4698 void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property)
4700 if(!_property->isWatchable)
4702 struct __ecereNameSpace__ecere__com__Class * _class = _property->_class;
4704 if(!_class->computeSize)
4706 _property->watcherOffset = _class->structSize;
4707 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4708 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4710 _property->isWatchable = 0x1;
4714 void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(struct __ecereNameSpace__ecere__com__Class * _class)
4716 if(!_class->destructionWatchOffset)
4718 _class->destructionWatchOffset = _class->structSize;
4719 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4720 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4724 void __ecereNameSpace__ecere__com__eProperty_SelfWatch(struct __ecereNameSpace__ecere__com__Class * _class, char * name, void (* callback)(void *))
4726 void * __ecereTemp1;
4730 struct __ecereNameSpace__ecere__com__Property * _property = __ecereNameSpace__ecere__com__eClass_FindProperty(_class, name, _class->module);
4733 _property = __ecereNameSpace__ecere__com__eClass_AddProperty(_class, name, (((void *)0)), (((void *)0)), (((void *)0)), 4);
4734 __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)));
4735 _property->selfWatchable = 0x1;
4739 void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void *, void *))
4741 void * __ecereTemp1;
4743 if(_property->isWatchable)
4745 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4747 __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)));
4751 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 *))
4753 void * __ecereTemp1;
4754 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->destructionWatchOffset);
4756 __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)));
4759 void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object)
4761 if(instance && (!_property || _property->isWatchable))
4765 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4766 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4768 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4769 if(watcher->object == object)
4771 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4777 struct __ecereNameSpace__ecere__com__Class * _class, * base;
4779 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
4781 if(_class->destructionWatchOffset)
4783 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
4784 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4786 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4788 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4792 for(_property = (struct __ecereNameSpace__ecere__com__Property *)_class->membersAndProperties.first; _property; _property = _property->next)
4794 if(_property->isProperty && _property->isWatchable)
4796 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4797 struct __ecereNameSpace__ecere__com__Watcher * watcher;
4799 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
4800 if(watcher->object == object)
4802 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
4807 base = _class->base;
4808 if(base && base->type == 1000)
4809 base = (((void *)0));
4815 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eClass_GetDesigner(struct __ecereNameSpace__ecere__com__Class * _class)
4817 for(; _class; _class = _class->base)
4819 if(_class->designerClass)
4820 return (struct __ecereNameSpace__ecere__com__Class *)__ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->designerClass);
4822 return (((void *)0));
4825 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eInstance_GetDesigner(struct __ecereNameSpace__ecere__com__Instance * instance)
4828 return __ecereNameSpace__ecere__com__eClass_GetDesigner(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class);
4829 return (((void *)0));
4832 unsigned int __ecereNameSpace__ecere__com__LocateModule(char * name, char * fileName)
4834 return Instance_LocateModule(name, fileName);
4837 extern void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module);
4839 extern void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module);
4841 extern double sin(struct __ecereNameSpace__ecere__com__Instance * number);
4843 extern double sinh(struct __ecereNameSpace__ecere__com__Instance * number);
4845 extern double cosh(struct __ecereNameSpace__ecere__com__Instance * number);
4847 extern double tanh(struct __ecereNameSpace__ecere__com__Instance * number);
4849 extern double sqrt(double number);
4851 extern double cos(struct __ecereNameSpace__ecere__com__Instance * number);
4853 extern double tan(struct __ecereNameSpace__ecere__com__Instance * number);
4855 extern struct __ecereNameSpace__ecere__com__Instance * atan2(double y, double x);
4857 extern struct __ecereNameSpace__ecere__com__Instance * asin(double number);
4859 extern struct __ecereNameSpace__ecere__com__Instance * acos(double number);
4861 extern struct __ecereNameSpace__ecere__com__Instance * atan(double number);
4863 extern double pow(double number, double number2);
4865 extern double fmod(double x, double y);
4867 extern double fabs(double number);
4869 extern double log(double number);
4871 extern double log10(double number);
4873 extern double ceil(double number);
4875 extern double floor(double number);
4877 extern double exp(double number);
4879 extern void qsort(void * , unsigned int, unsigned int, int (* )(void * , void * ));
4881 extern int system(const char * );
4883 extern int atoi(const char * );
4885 extern float atof(const char * );
4887 extern int tolower(int);
4889 extern int toupper(int);
4891 extern unsigned int isdigit(int);
4893 extern char * getenv(const char * name);
4895 extern int rename(const char * oldpath, const char * newpath);
4897 extern char * strncat(char * , const char * , int n);
4899 extern int strcasecmp(const char * , const char * );
4901 extern int strncasecmp(const char * , const char * , int n);
4903 extern int strncmp(const char * , const char * , int n);
4905 extern int vsprintf(char * , const char * , __builtin_va_list);
4907 extern int puts(char * );
4909 extern int fputs(char * , void * stream);
4911 extern int isalnum(int c);
4913 extern int isalpha(int c);
4915 extern int islower(int c);
4917 extern int isupper(int c);
4919 extern int isprint(int c);
4921 static void __ecereNameSpace__ecere__com__LoadCOM(struct __ecereNameSpace__ecere__com__Instance * module)
4923 struct __ecereNameSpace__ecere__com__Class * applicationClass;
4924 struct __ecereNameSpace__ecere__com__Class * enumClass, * structClass, * boolClass;
4925 struct __ecereNameSpace__ecere__com__Class * moduleClass;
4926 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "class", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4928 baseClass->type = 1000;
4929 baseClass->memberOffset = 0;
4930 baseClass->offset = 0;
4931 baseClass->structSize = 0;
4932 baseClass->typeSize = 0;
4934 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);
4936 instanceClass->type = 1000;
4937 instanceClass->fixed = 0x1;
4938 instanceClass->memberOffset = 0;
4939 instanceClass->offset = 0;
4940 instanceClass->memberID = -3;
4941 instanceClass->startMemberID = -3;
4942 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_vTbl", "int (**)()", sizeof(int (**)()), 4, 1);
4943 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_class", "ecere::com::Class", sizeof(struct __ecereNameSpace__ecere__com__Class *), 4, 1);
4944 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_refCount", "int", sizeof(int (**)()), 4, 1);
4946 __ecereNameSpace__ecere__com__InitializeDataTypes1(module);
4947 enumClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "enum", (((void *)0)), 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), (((void *)0)), (((void *)0)), module, 4, 1);
4948 __ecereNameSpace__ecere__com__eClass_AddClassProperty(enumClass, "enumSize", "int", (((void *)0)), __ecereNameSpace__ecere__com__GetEnumSize)->constant = 0x1;
4949 enumClass->type = 1000;
4950 (__ecereNameSpace__ecere__com__eSystem_Delete(enumClass->dataTypeString), enumClass->dataTypeString = 0);
4951 enumClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
4952 structClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "struct", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4953 structClass->type = 1000;
4954 structClass->memberOffset = 0;
4955 structClass->offset = 0;
4956 structClass->structSize = 0;
4957 structClass->typeSize = 0;
4958 __ecereNameSpace__ecere__com__InitializeDataTypes(module);
4959 boolClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "bool", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
4960 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "true", (unsigned int)0x1);
4961 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "false", (unsigned int)0x0);
4962 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);
4963 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnLoad", "bool()", (((void *)0)), 1);
4964 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnUnload", "void()", (((void *)0)), 1);
4965 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Load", "Module(char * name, AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, 1);
4966 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Unload", "void(Module module)", __ecereNameSpace__ecere__com__eModule_Unload, 1);
4967 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "application", "Application", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
4968 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "classes", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4969 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "defines", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4970 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "functions", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4971 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "modules", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4972 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "prev", "Module", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
4973 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "next", "Module", sizeof(struct __ecereNameSpace__ecere__com__Instance *), 4, 1);
4974 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "name", "char *", sizeof(char *), 4, 1);
4975 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "library", "void *", sizeof(void *), 4, 1);
4976 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "Unload", "void *", sizeof(void *), 4, 1);
4977 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "importType", "ImportType", sizeof(int), 4, 1);
4978 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "privateNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
4979 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "publicNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
4980 moduleClass->fixed = 0x1;
4981 moduleClass->count++;
4982 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);
4983 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(applicationClass, "Main", "void()", (((void *)0)), 1);
4984 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argc", "int", sizeof(int), 4, 1);
4985 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argv", "char **", sizeof(char **), 4, 1);
4986 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "exitCode", "int", sizeof(int), 4, 1);
4987 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "isGUIApp", "bool", sizeof(unsigned int), 4, 1);
4988 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "allModules", "OldList", sizeof(struct __ecereNameSpace__ecere__sys__OldList), 4, 1);
4989 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "parsedCommand", "char *", sizeof(char *), 4, 1);
4990 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "systemNameSpace", "NameSpace", sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 4, 1);
4991 applicationClass->fixed = 0x1;
4992 applicationClass->count++;
4993 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sin", "double sin(Angle number)", sin, module, 4);
4994 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sinh", "double sinh(Angle number)", sinh, module, 4);
4995 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cosh", "double cosh(Angle number)", cosh, module, 4);
4996 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tanh", "double tanh(Angle number)", tanh, module, 4);
4997 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sqrt", "double sqrt(double number)", sqrt, module, 4);
4998 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cos", "double cos(Angle number)", cos, module, 4);
4999 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tan", "double tan(Angle number)", tan, module, 4);
5000 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan2", "Angle atan2(double y, double x)", atan2, module, 4);
5001 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("asin", "Angle asin(double number)", asin, module, 4);
5002 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("acos", "Angle acos(double number)", acos, module, 4);
5003 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan", "Angle atan(double number)", atan, module, 4);
5004 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("pow", "double pow(double number, double number2)", pow, module, 4);
5005 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fmod", "double fmod(double x, double y)", fmod, module, 4);
5006 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fabs", "double fabs(double number)", fabs, module, 4);
5007 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log", "double log(double number)", log, module, 4);
5008 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log10", "double log10(double number)", log10, module, 4);
5009 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ceil", "double ceil(double number)", ceil, module, 4);
5010 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("floor", "double floor(double number)", floor, module, 4);
5011 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("exp", "double exp(double number)", exp, module, 4);
5012 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("qsort", "void qsort(void *, uint, uint, int (*)(void *, void *))", qsort, module, 4);
5013 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtod", "double strtod(char*, char**)", strtod, module, 4);
5014 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtol", "int strtol(char*, char**, int base)", strtol, module, 4);
5015 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("system", "int system(const char*)", system, module, 4);
5016 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atoi", "int atoi(const char*)", atoi, module, 4);
5017 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atof", "float atof(const char*)", atof, module, 4);
5018 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tolower", "int tolower(int)", tolower, module, 4);
5019 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("toupper", "int toupper(int)", toupper, module, 4);
5020 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isdigit", "bool isdigit(int)", isdigit, module, 4);
5021 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memset", "void memset(void * area, byte value, uint count)", memset, module, 4);
5022 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("getenv", "char * getenv(const char * name)", getenv, module, 4);
5023 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("rename", "int rename(const char *oldpath, const char *newpath)", rename, module, 4);
5024 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlen", "int strlen(const char *)", strlen, module, 4);
5025 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcat", "char * strcat(char *, const char *)", strcat, module, 4);
5026 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncat", "char * strncat(char *, const char *, int n)", strncat, module, 4);
5027 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strchr", "char * strchr(char *, int)", strchr, module, 4);
5028 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strstr", "char * strstr(char *, const char *)", strstr, module, 4);
5029 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("fstrcmp", "(GetRuntimePlatform() == win32) ? strcmpi : strcmp", module, 4);
5030 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strcmpi", "strcasecmp", module, 4);
5031 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strnicmp", "strncasecmp", module, 4);
5032 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcasecmp", "int strcasecmp(const char *, const char *)", strcasecmp, module, 4);
5033 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncasecmp", "int strncasecmp(const char *, const char *, int n)", strncasecmp, module, 4);
5034 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcmp", "int strcmp(const char *, const char *)", strcmp, module, 4);
5035 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncmp", "int strncmp(const char *, const char *, int n)", strncmp, module, 4);
5036 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlwr", "char * strlwr(char *)", strlwr, module, 4);
5037 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strupr", "char * strupr(char *)", strupr, module, 4);
5038 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcpy", "char * strcpy(char *, const char *)", strcpy, module, 4);
5039 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncpy", "char * strncpy(char *, const char *, int n)", strncpy, module, 4);
5040 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memcpy", "void * memcpy(void *, const void *, uint size)", memcpy, module, 4);
5041 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memmove", "void * memmove(void *, const void *, uint size)", memmove, module, 4);
5042 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sprintf", "int sprintf(char *, char *, ...)", sprintf, module, 4);
5043 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("printf", "int printf(char *, ...)", printf, module, 4);
5044 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsprintf", "int vsprintf(char*, const char*, __builtin_va_list)", vsprintf, module, 4);
5045 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("puts", "int puts(char *)", puts, module, 4);
5046 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fputs", "int fputs(char *, void * stream)", fputs, module, 4);
5047 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalnum", "int isalnum(int c)", isalnum, module, 4);
5048 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isspace", "int isspace(int c)", isspace, module, 4);
5049 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalpha", "int isalpha(int c)", isalpha, module, 4);
5050 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("islower", "int islower(int c)", islower, module, 4);
5051 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isupper", "int isupper(int c)", isupper, module, 4);
5052 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isprint", "int isprint(int c)", isprint, module, 4);
5053 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoul", "unsigned long strtoul(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5056 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[])
5058 struct __ecereNameSpace__ecere__com__Instance * app;
5060 app = __ecereNameSpace__ecere__com___calloc(1, 424);
5061 __ecereNameSpace__ecere__com__Module_Constructor(app);
5062 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5063 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5064 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5065 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->systemNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5066 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);
5067 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + 12)))->application = app;
5068 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->allModules.offset = 12 + (unsigned int)&(*((struct __ecereNameSpace__ecere__com__Module *)0)).prev;
5069 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + 296)))->isGUIApp = guiApp;
5070 __ecereNameSpace__ecere__com__LoadCOM(app);
5071 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)app)->_class = __ecereNameSpace__ecere__com__eSystem_FindClass(app, "Application");
5075 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)
5077 void * __ecereTemp1;
5081 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5083 for(param = _class->templateParams.first; param; param = param->next)
5085 if(!strcmp(param->name, name))
5088 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));
5089 if(defaultArg != (((void *)0)))
5091 param->defaultArg = *defaultArg;
5092 __ecereNameSpace__ecere__com__CopyTemplateArg(param, ¶m->defaultArg);
5094 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templateParams, param);
5097 return (((void *)0));
5100 void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base)
5104 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
5105 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5108 void * first = base->templateParams.first;
5109 int count = base->templateParams.count;
5111 base->templateParams.first = (((void *)0));
5112 base->templateParams.count = 0;
5113 __ecereNameSpace__ecere__com__FreeTemplateArgs(base);
5114 (__ecereNameSpace__ecere__com__eSystem_Delete(base->templateArgs), base->templateArgs = 0);
5115 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(base);
5116 base->templateParams.first = first;
5117 base->templateParams.count = count;
5119 for(param = base->templateParams.first; param; param = param->next)
5121 if(param->type == 1 && param->defaultArg.memberString)
5123 struct __ecereNameSpace__ecere__com__Class * memberClass = base;
5124 char * colon = strstr(param->defaultArg.memberString, "::");
5129 char className[1024];
5130 struct __ecereNameSpace__ecere__com__Class * sClass;
5132 memcpy(className, param->defaultArg.memberString, colon - param->defaultArg.memberString);
5133 className[colon - param->defaultArg.memberString] = '\0';
5134 memberName = colon + 2;
5135 for(sClass = base; sClass; sClass = sClass->base)
5137 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
5138 struct __ecereNameSpace__ecere__com__Class * nextClass;
5141 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
5142 id += nextClass->templateParams.count;
5143 if(sClass == base || base->templateArgs)
5145 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
5147 if(cParam->type == 0 && !strcmp(cParam->name, className))
5148 strcpy(className, (sClass == base) ? cParam->defaultArg.dataTypeString : base->templateArgs[id].dataTypeString);
5153 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(base->module, className);
5155 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)base->module + 12)))->application, className);
5158 memberName = param->defaultArg.memberString;
5161 switch(param->memberType)
5164 param->defaultArg.member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
5167 param->defaultArg.method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
5170 param->defaultArg.prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
5176 __ecereNameSpace__ecere__com__FixDerivativesBase(base, base);
5180 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base)
5182 struct __ecereNameSpace__ecere__sys__OldLink * derivative, * templateLink;
5184 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
5186 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
5188 if(_class->templateArgs)
5190 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5191 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5193 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5195 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
5197 struct __ecereNameSpace__ecere__com__Class * _class = templateLink->data;
5199 if(_class->templateArgs)
5201 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5202 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5204 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5208 static const char * __ecereNameSpace__ecere__com__platformNames[4] =
5210 "", "win32", "linux", "apple"
5213 static const int __ecereNameSpace__ecere__com__firstPlatform = 1;
5215 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Platform_char__PTR_;
5217 static const int __ecereNameSpace__ecere__com__lastPlatform = 3;
5219 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Platform;
5221 int __ecereVMethodID_class_OnGetString;
5223 char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this)
5225 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)));
5228 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(char * value)
5234 for(c = __ecereNameSpace__ecere__com__firstPlatform; c <= __ecereNameSpace__ecere__com__lastPlatform; c++)
5235 if(!strcasecmp(value, __ecereNameSpace__ecere__com__platformNames[c]))
5241 char * __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * tempString, void * fieldData, unsigned int * needClass)
5243 if((*(this)) >= __ecereNameSpace__ecere__com__firstPlatform && (*(this)) <= __ecereNameSpace__ecere__com__lastPlatform)
5246 strcpy(tempString, __ecereNameSpace__ecere__com__platformNames[*(int *)this]);
5247 return __ecereNameSpace__ecere__com__platformNames[*(int *)this];
5249 if(tempString && tempString[0])
5250 tempString[0] = '\0';
5251 return (((void *)0));
5254 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * string)
5256 (*(this)) = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(string);
5257 return (unsigned int)*(int *)this;
5260 extern int runtimePlatform;
5262 int __ecereNameSpace__ecere__com__GetRuntimePlatform()
5264 return runtimePlatform;
5267 struct __ecereNameSpace__ecere__com__ObjectInfo
5269 struct __ecereNameSpace__ecere__com__ObjectInfo * prev, * next;
5270 struct __ecereNameSpace__ecere__com__Instance * instance;
5272 struct __ecereNameSpace__ecere__com__Instance * instCode;
5273 unsigned int deleted;
5274 struct __ecereNameSpace__ecere__com__ObjectInfo * oClass;
5275 struct __ecereNameSpace__ecere__sys__OldList instances;
5276 struct __ecereNameSpace__ecere__com__Instance * classDefinition;
5277 unsigned int modified;
5280 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ObjectInfo;
5282 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner;
5284 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass;
5286 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging;
5288 struct __ecereNameSpace__ecere__com__DesignerBase
5290 struct __ecereNameSpace__ecere__com__Instance * classDesigner;
5292 unsigned int isDragging;
5295 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DesignerBase;
5297 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this)
5299 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);
5301 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner;
5304 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
5306 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);
5308 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner = value;
5309 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner);
5312 char * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass(struct __ecereNameSpace__ecere__com__Instance * this)
5314 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);
5316 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass;
5319 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass(struct __ecereNameSpace__ecere__com__Instance * this, char * value)
5321 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);
5323 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass = value;
5324 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass);
5327 unsigned int __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging(struct __ecereNameSpace__ecere__com__Instance * this)
5329 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);
5331 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging;
5334 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
5336 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);
5338 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging = value;
5339 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging);
5342 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase;
5344 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__activeDesigner;
5346 void __ecereNameSpace__ecere__com__SetActiveDesigner(struct __ecereNameSpace__ecere__com__Instance * designer)
5348 __ecereNameSpace__ecere__com__activeDesigner = designer;
5351 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__GetActiveDesigner()
5353 return __ecereNameSpace__ecere__com__activeDesigner;
5358 unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source)
5364 for(c = 0; source[c]; )
5366 unsigned char ch = source[c];
5367 unsigned int codePoint = 0;
5370 unsigned char mask = (unsigned char)0x7F;
5372 if(ch & (unsigned char)0x80)
5374 if(ch & (unsigned char)0x40)
5378 if(ch & (unsigned char)0x20)
5382 if(ch & (unsigned char)0x10)
5384 if(ch & (unsigned char)0x08)
5394 for(i = 0; i < numBytes && (ch = source[c]); i++, c++)
5397 codePoint |= ch & mask;
5398 mask = (unsigned char)0x3F;
5401 if(!(ch & (unsigned char)0x80) || (ch & (unsigned char)0x40))
5407 if(codePoint > 0x10FFFF || (codePoint >= 0xD800 && codePoint <= 0xDFFF) || (codePoint < 0x80 && numBytes > 1) || (codePoint < 0x800 && numBytes > 2) || (codePoint < 0x10000 && numBytes > 3))
5414 int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max)
5419 for(c = 0; source[c]; c++)
5421 unsigned int ch = ((unsigned char *)source)[c];
5427 dest[d++] = (char)ch;
5433 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5434 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5436 else if(ch < 0x10000)
5440 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5441 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5442 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5448 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5449 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5450 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5451 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5458 char * __ecereNameSpace__ecere__sys__UTF16toUTF8(unsigned short * source)
5465 unsigned int invert = 0x0;
5467 for(len = 0; source[len]; len++)
5469 dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len * 3 + 1));
5470 for(c = 0; (u16 = source[c]); c++)
5474 if(!c && (u16 == (unsigned short)0xFFFE || u16 == (unsigned short)0xFEFF))
5476 if(u16 == (unsigned short)0xFFFE)
5482 u16 = ((u16 & (unsigned short)0xFF00) >> (unsigned short)8) | ((u16 & (unsigned short)0x00FF) << (unsigned short)8);
5484 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5487 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5490 dest[d++] = (char)ch;
5494 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5495 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5497 else if(ch < 0x10000)
5499 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5500 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5501 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5505 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5506 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5507 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5508 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5512 dest = __ecereNameSpace__ecere__com__eSystem_Renew(dest, sizeof(char) * (d + 1));
5516 int __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer(unsigned short * source, unsigned char * dest, int max)
5522 for(c = 0; (u16 = source[c]); c++)
5526 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5529 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5534 dest[d++] = (char)ch;
5540 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5541 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5543 else if(ch < 0x10000)
5547 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5548 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5549 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5555 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5556 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5557 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5558 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5561 dest[d] = (unsigned char)0;
5565 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes)
5568 unsigned char b = ((unsigned char *)string)[0];
5570 unsigned char mask = (unsigned char)0x7F;
5574 if(b & (unsigned char)0x80)
5576 if(b & (unsigned char)0x40)
5580 if(b & (unsigned char)0x20)
5584 if(b & (unsigned char)0x10)
5586 if(b & (unsigned char)0x08)
5598 for(i = 0; i < nb; i++)
5601 ch |= (b = ((unsigned char *)string)[i]) & mask;
5602 mask = (unsigned char)0x3F;
5603 if(i > 1 && (!(b & (unsigned char)0x80) || (b & (unsigned char)0x40)))
5609 if(i < nb || ch > 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF) || (ch < 0x80 && nb > 1) || (ch < 0x800 && nb > 2) || (ch < 0x10000 && nb > 3))
5619 int __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer(char * source, unsigned short * dest, int max)
5626 for(c = 0; source[c]; )
5628 unsigned char ch = source[c];
5629 unsigned int codePoint = 0;
5632 unsigned char mask = (unsigned char)0x7F;
5634 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5638 if(ch & (unsigned char)0x20)
5642 if(ch & (unsigned char)0x10)
5649 for(i = 0; i < numBytes; i++)
5652 codePoint |= source[c++] & mask;
5653 mask = (unsigned char)0x3F;
5655 if(codePoint > 0xFFFF)
5657 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5658 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5669 dest[d++] = (unsigned short)codePoint;
5672 dest[d] = (unsigned short)0;
5678 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max)
5684 for(c = 0; c < count && (ch = source[c]); c++)
5690 dest[d++] = (char)ch;
5696 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5697 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5699 else if(ch < 0x10000)
5703 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5704 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5705 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5711 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5712 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5713 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5714 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5717 dest[d] = (unsigned char)0;
5721 unsigned short * __ecereNameSpace__ecere__sys__UTF8toUTF16(char * source, int * wordCount)
5725 int len = strlen(source);
5726 unsigned short * dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned short) * (len + 1));
5730 for(c = 0; source[c]; )
5732 unsigned char ch = source[c];
5733 unsigned int codePoint = 0;
5736 unsigned char mask = (unsigned char)0x7F;
5738 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5742 if(ch & (unsigned char)0x20)
5746 if(ch & (unsigned char)0x10)
5753 for(i = 0; i < numBytes; i++)
5756 codePoint |= source[c++] & mask;
5757 mask = (unsigned char)0x3F;
5759 if(codePoint > 0xFFFF)
5761 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5762 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5769 dest[d++] = (unsigned short)codePoint;
5772 dest[d] = (unsigned short)0;
5777 return (((void *)0));
5780 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_FindObject;
5782 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_RenameObject;
5784 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SelectObjectFromDesigner;
5786 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_CodeAddObject;
5788 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SheetAddObject;
5790 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddToolBoxClass;
5792 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddDefaultMethod;
5794 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_DeleteObject;
5796 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ObjectContainsCode;
5798 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ModifyCode;
5800 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_UpdateProperties;
5802 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_Reset;
5804 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_AddObject;
5806 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_SelectObject;
5808 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_ListToolBoxClasses;
5810 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PrepareTestObject;
5812 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateObject;
5814 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PostCreateObject;
5816 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DroppedObject;
5818 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DestroyObject;
5820 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_FixProperty;
5822 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew;
5824 void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
5826 struct __ecereNameSpace__ecere__com__Class * class;
5828 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4);
5829 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::unichar", "uint", 0, 0, 0, 0, module, 4, 1);
5830 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5831 __ecereClass___ecereNameSpace__ecere__com__unichar = class;
5832 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString, 1);
5833 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString, 1);
5834 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Property", 0, sizeof(struct __ecereNameSpace__ecere__com__Property), 0, 0, 0, module, 4, 1);
5835 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5836 __ecereClass___ecereNameSpace__ecere__com__Property = class;
5837 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Property", 4, 4, 1);
5838 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Property", 4, 4, 1);
5839 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5840 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
5841 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
5842 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
5843 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
5844 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
5845 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
5846 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
5847 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)()", 4, 4, 1);
5848 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)()", 4, 4, 1);
5849 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "IsSet", "bool( *)()", 4, 4, 1);
5850 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5851 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
5852 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
5853 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
5854 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "watcherOffset", "uint", 4, 4, 1);
5855 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "char *", 4, 4, 1);
5856 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "compiled", "bool", 4, 4, 1);
5857 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchable", "bool", 4, 4, 1);
5858 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
5860 class->fixed = (unsigned int)1;
5861 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PushLoc", "void ecere::com::MemoryGuard_PushLoc(char * loc)", __ecereNameSpace__ecere__com__MemoryGuard_PushLoc, module, 4);
5862 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PopLoc", "void ecere::com::MemoryGuard_PopLoc(void)", __ecereNameSpace__ecere__com__MemoryGuard_PopLoc, module, 4);
5863 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BTNamedLink", 0, sizeof(struct __ecereNameSpace__ecere__com__BTNamedLink), 0, 0, 0, module, 4, 1);
5864 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5865 __ecereClass___ecereNameSpace__ecere__com__BTNamedLink = class;
5866 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5867 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::BTNamedLink", 4, 4, 1);
5868 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::BTNamedLink", 4, 4, 1);
5869 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::BTNamedLink", 4, 4, 1);
5870 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
5871 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5873 class->fixed = (unsigned int)1;
5874 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SelfWatcher", 0, sizeof(struct __ecereNameSpace__ecere__com__SelfWatcher), 0, 0, 0, module, 2, 1);
5875 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5876 __ecereClass___ecereNameSpace__ecere__com__SelfWatcher = class;
5878 class->fixed = (unsigned int)1;
5879 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::AccessMode", 0, 0, 0, 0, 0, module, 4, 1);
5880 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5881 __ecereClass___ecereNameSpace__ecere__com__AccessMode = class;
5882 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "defaultAccess", 0);
5883 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "publicAccess", 1);
5884 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "privateAccess", 2);
5885 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticAccess", 3);
5886 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "baseSystemAccess", 4);
5887 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SubModule", 0, sizeof(struct __ecereNameSpace__ecere__com__SubModule), 0, 0, 0, module, 4, 1);
5888 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5889 __ecereClass___ecereNameSpace__ecere__com__SubModule = class;
5890 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::SubModule", 4, 4, 1);
5891 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::SubModule", 4, 4, 1);
5892 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
5893 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "importMode", "ecere::com::AccessMode", 4, 4, 1);
5894 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::DataMemberType", 0, 0, 0, 0, 0, module, 4, 1);
5895 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5896 __ecereClass___ecereNameSpace__ecere__com__DataMemberType = class;
5897 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMember", 0);
5898 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionMember", 1);
5899 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMember", 2);
5900 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ClassType", 0, 0, 0, 0, 0, module, 4, 1);
5901 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5902 __ecereClass___ecereNameSpace__ecere__com__ClassType = class;
5903 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalClass", 0);
5904 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structClass", 1);
5905 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "bitClass", 2);
5906 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unitClass", 3);
5907 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "enumClass", 4);
5908 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noHeadClass", 5);
5909 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionClass", 6);
5910 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "systemClass", 1000);
5911 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Class", 0, sizeof(struct __ecereNameSpace__ecere__com__Class), 0, 0, 0, module, 4, 1);
5912 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5913 __ecereClass___ecereNameSpace__ecere__com__Class = class;
5914 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree, 1);
5915 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString, 1);
5916 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString, 1);
5917 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize, 1);
5918 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize, 1);
5919 __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);
5920 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Class", 4, 4, 1);
5921 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Class", 4, 4, 1);
5922 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
5923 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
5924 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structSize", "int", 4, 4, 1);
5925 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_vTbl", "int( * *)()", 4, 4, 1);
5926 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vTblSize", "int", 4, 4, 1);
5927 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Constructor", "int( *)(ecere::com::Instance)", 4, 4, 1);
5928 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Destructor", "void( *)(ecere::com::Instance)", 4, 4, 1);
5929 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offsetClass", "int", 4, 4, 1);
5930 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "sizeClass", "int", 4, 4, 1);
5931 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "base", "ecere::com::Class", 4, 4, 1);
5932 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::BinaryTree", 16, 4, 1);
5933 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::BinaryTree", 16, 4, 1);
5934 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prop", "ecere::sys::BinaryTree", 16, 4, 1);
5935 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAndProperties", "ecere::sys::OldList", 20, 4, 1);
5936 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classProperties", "ecere::sys::BinaryTree", 16, 4, 1);
5937 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "derivatives", "ecere::sys::OldList", 20, 4, 1);
5938 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
5939 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "startMemberID", "int", 4, 4, 1);
5940 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::ClassType", 4, 4, 1);
5941 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
5942 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
5943 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
5944 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
5945 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeSize", "int", 4, 4, 1);
5946 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultAlignment", "int", 4, 4, 1);
5947 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Initialize", "void( *)()", 4, 4, 1);
5948 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
5949 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchers", "ecere::sys::OldList", 20, 4, 1);
5950 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "designerClass", "char *", 4, 4, 1);
5951 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "noExpansion", "bool", 4, 4, 1);
5952 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultProperty", "char *", 4, 4, 1);
5953 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "comRedefinition", "bool", 4, 4, 1);
5954 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
5955 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
5956 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "internalDecl", "bool", 4, 4, 1);
5957 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", 4, 4, 1);
5958 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computeSize", "bool", 4, 4, 1);
5959 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
5960 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "destructionWatchOffset", "int", 4, 4, 1);
5961 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fixed", "bool", 4, 4, 1);
5962 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "delayedCPValues", "ecere::sys::OldList", 20, 4, 1);
5963 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "inheritanceAccess", "ecere::com::AccessMode", 4, 4, 1);
5964 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fullName", "char *", 4, 4, 1);
5965 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
5966 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversions", "ecere::sys::OldList", 20, 4, 1);
5967 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateParams", "ecere::sys::OldList", 20, 4, 1);
5968 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateArgs", "ecere::com::ClassTemplateArgument *", 4, 4, 1);
5969 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateClass", "ecere::com::Class", 4, 4, 1);
5970 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templatized", "ecere::sys::OldList", 20, 4, 1);
5971 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParams", "int", 4, 4, 1);
5973 class->fixed = (unsigned int)1;
5975 class->noExpansion = (unsigned int)1;
5976 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateParameterType", 0, 0, 0, 0, 0, module, 4, 1);
5977 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5978 __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType = class;
5979 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "type", 0);
5980 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 1);
5981 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "expression", 2);
5982 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateMemberType", 0, 0, 0, 0, 0, module, 4, 1);
5983 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5984 __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType = class;
5985 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dataMember", 0);
5986 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "method", 1);
5987 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "prop", 2);
5988 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::ClassTemplateArgument", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument), 0, 0, 0, module, 4, 1);
5989 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
5990 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument = class;
5992 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
5995 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
5997 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeString", "char *", 4, 4, 1);
5998 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
5999 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6001 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expression", "ecere::com::DataValue", 8, 8, 1);
6003 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6005 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "memberString", "char *", 4, 4, 1);
6007 struct __ecereNameSpace__ecere__com__DataMember * dataMember2 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6009 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "member", "ecere::com::DataMember", 4, 4, 1);
6010 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "prop", "ecere::com::Property", 4, 4, 1);
6011 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "method", "ecere::com::Method", 4, 4, 1);
6012 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember1, dataMember2);
6014 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6016 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6018 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassTemplateParameter", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateParameter), 0, 0, 0, module, 4, 1);
6019 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6020 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter = class;
6021 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ClassTemplateParameter", 4, 4, 1);
6022 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ClassTemplateParameter", 4, 4, 1);
6023 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6024 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::TemplateParameterType", 4, 4, 1);
6026 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6028 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dataTypeString", "char *", 4, 4, 1);
6029 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "ecere::com::TemplateMemberType", 4, 4, 1);
6030 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6032 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArg", "ecere::com::ClassTemplateArgument", 8, 8, 1);
6033 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "param", "void *", 4, 4, 1);
6035 class->fixed = (unsigned int)1;
6036 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::MethodType", 0, 0, 0, 0, 0, module, 4, 1);
6037 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6038 __ecereClass___ecereNameSpace__ecere__com__MethodType = class;
6039 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMethod", 0);
6040 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "virtualMethod", 1);
6041 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Method", 0, sizeof(struct __ecereNameSpace__ecere__com__Method), 0, 0, 0, module, 4, 1);
6042 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6043 __ecereClass___ecereNameSpace__ecere__com__Method = class;
6044 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6045 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::Method", 4, 4, 1);
6046 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::Method", 4, 4, 1);
6047 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::Method", 4, 4, 1);
6048 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6049 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", 4, 4, 1);
6050 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6051 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::MethodType", 4, 4, 1);
6052 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6053 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6054 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6055 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6056 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6058 class->fixed = (unsigned int)1;
6059 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ImportType", 0, 0, 0, 0, 0, module, 4, 1);
6060 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6061 __ecereClass___ecereNameSpace__ecere__com__ImportType = class;
6062 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalImport", 0);
6063 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticImport", 1);
6064 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "remoteImport", 2);
6065 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preDeclImport", 3);
6066 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "comCheckImport", 4);
6067 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::NameSpace", 0, sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 0, 0, 0, module, 4, 1);
6068 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6069 __ecereClass___ecereNameSpace__ecere__com__NameSpace = class;
6070 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6071 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "btParent", "ecere::com::NameSpace *", 4, 4, 1);
6072 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::NameSpace *", 4, 4, 1);
6073 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::NameSpace *", 4, 4, 1);
6074 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6075 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::NameSpace *", 4, 4, 1);
6076 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpaces", "ecere::sys::BinaryTree", 16, 4, 1);
6077 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classes", "ecere::sys::BinaryTree", 16, 4, 1);
6078 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defines", "ecere::sys::BinaryTree", 16, 4, 1);
6079 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "functions", "ecere::sys::BinaryTree", 16, 4, 1);
6080 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::DataValue", 0, sizeof(struct __ecereNameSpace__ecere__com__DataValue), 0, 0, 0, module, 4, 1);
6081 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6082 __ecereClass___ecereNameSpace__ecere__com__DataValue = class;
6084 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6086 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "c", "char", 1, 1, 1);
6087 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "uc", "byte", 1, 1, 1);
6088 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "s", "short", 2, 2, 1);
6089 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "us", "uint16", 2, 2, 1);
6090 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i", "int", 4, 4, 1);
6091 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui", "uint", 4, 4, 1);
6092 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "p", "void *", 4, 4, 1);
6093 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "f", "float", 4, 4, 1);
6094 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "d", "double", 8, 8, 1);
6095 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i64", "int64", 8, 8, 1);
6096 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui64", "uint64", 8, 8, 1);
6097 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6099 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DataMember", 0, sizeof(struct __ecereNameSpace__ecere__com__DataMember), 0, 0, 0, module, 4, 1);
6100 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6101 __ecereClass___ecereNameSpace__ecere__com__DataMember = class;
6102 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DataMember", 4, 4, 1);
6103 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DataMember", 4, 4, 1);
6104 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6105 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6106 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6107 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6108 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6109 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6110 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6111 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6112 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6113 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6114 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6115 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::OldList", 20, 4, 1);
6116 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAlpha", "ecere::sys::BinaryTree", 16, 4, 1);
6117 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6118 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6120 class->fixed = (unsigned int)1;
6121 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BitMember", 0, sizeof(struct __ecereNameSpace__ecere__com__BitMember), 0, 0, 0, module, 4, 1);
6122 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6123 __ecereClass___ecereNameSpace__ecere__com__BitMember = class;
6124 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::BitMember", 4, 4, 1);
6125 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::BitMember", 4, 4, 1);
6126 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6127 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6128 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6129 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6130 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", 4, 4, 1);
6131 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6132 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", 4, 4, 1);
6133 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6134 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6135 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "int", 4, 4, 1);
6136 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
6137 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "mask", "uint64", 8, 8, 1);
6139 class->fixed = (unsigned int)1;
6140 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassProperty", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassProperty), 0, 0, 0, module, 4, 1);
6141 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6142 __ecereClass___ecereNameSpace__ecere__com__ClassProperty = class;
6143 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6144 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::ClassProperty", 4, 4, 1);
6145 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::ClassProperty", 4, 4, 1);
6146 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::ClassProperty", 4, 4, 1);
6147 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6148 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void( *)(ecere::com::Class, int)", 4, 4, 1);
6149 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int( *)(ecere::com::Class)", 4, 4, 1);
6150 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6151 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6152 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
6154 class->fixed = (unsigned int)1;
6155 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DefinedExpression", 0, sizeof(struct __ecereNameSpace__ecere__com__DefinedExpression), 0, 0, 0, module, 4, 1);
6156 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6157 __ecereClass___ecereNameSpace__ecere__com__DefinedExpression = class;
6158 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DefinedExpression", 4, 4, 1);
6159 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DefinedExpression", 4, 4, 1);
6160 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6161 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "value", "char *", 4, 4, 1);
6162 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
6164 class->fixed = (unsigned int)1;
6165 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::GlobalFunction", 0, sizeof(struct __ecereNameSpace__ecere__com__GlobalFunction), 0, 0, 0, module, 4, 1);
6166 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6167 __ecereClass___ecereNameSpace__ecere__com__GlobalFunction = class;
6168 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::GlobalFunction", 4, 4, 1);
6169 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::GlobalFunction", 4, 4, 1);
6170 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6171 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int( *)()", 4, 4, 1);
6172 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", 4, 4, 1);
6173 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", 4, 4, 1);
6174 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", 4, 4, 1);
6175 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", 4, 4, 1);
6176 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", 4, 4, 1);
6178 class->fixed = (unsigned int)1;
6179 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::EnumClassData", 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), 0, 0, 0, module, 4, 1);
6180 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6181 __ecereClass___ecereNameSpace__ecere__com__EnumClassData = class;
6182 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "values", "ecere::sys::OldList", 20, 4, 1);
6183 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "largest", "int", 4, 4, 1);
6185 class->fixed = (unsigned int)1;
6186 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Watcher", 0, sizeof(struct __ecereNameSpace__ecere__com__Watcher), 0, 0, 0, module, 2, 1);
6187 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6188 __ecereClass___ecereNameSpace__ecere__com__Watcher = class;
6190 class->fixed = (unsigned int)1;
6191 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemBlock", 0, sizeof(struct __ecereNameSpace__ecere__com__MemBlock), 0, 0, 0, module, 2, 1);
6192 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6193 __ecereClass___ecereNameSpace__ecere__com__MemBlock = class;
6194 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemPart", 0, sizeof(struct __ecereNameSpace__ecere__com__MemPart), 0, 0, 0, module, 2, 1);
6195 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6196 __ecereClass___ecereNameSpace__ecere__com__MemPart = class;
6197 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::BlockPool", 0, sizeof(struct __ecereNameSpace__ecere__com__BlockPool), 0, 0, 0, module, 2, 1);
6198 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6199 __ecereClass___ecereNameSpace__ecere__com__BlockPool = class;
6200 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "ecere::com::MemBlock Add()", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add, 1);
6201 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Expand", "bool Expand(unsigned int numBlocks)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand, 1);
6202 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::com::MemBlock block)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove, 1);
6203 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "ecere::com::MemBlock", 4, 4, 1);
6204 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "ecere::com::MemBlock", 4, 4, 1);
6205 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "free", "ecere::com::MemBlock", 4, 4, 1);
6206 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSize", "uint", 4, 4, 1);
6207 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSpace", "uint", 4, 4, 1);
6208 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParts", "int", 4, 4, 1);
6209 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numBlocks", "int", 4, 4, 1);
6210 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "totalSize", "uint", 4, 4, 1);
6211 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "usedSpace", "uint", 4, 4, 1);
6212 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::log2i", "uint ecere::com::log2i(uint number)", __ecereNameSpace__ecere__com__log2i, module, 4);
6213 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::pow2i", "uint ecere::com::pow2i(uint number)", __ecereNameSpace__ecere__com__pow2i, module, 4);
6214 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::memswap", "void ecere::com::memswap(byte * a, byte * b, uint size)", __ecereNameSpace__ecere__com__memswap, module, 4);
6215 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::CheckMemory", "void ecere::com::CheckMemory(void)", __ecereNameSpace__ecere__com__CheckMemory, module, 4);
6216 __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);
6217 __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);
6218 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoi64", "int64 ecere::com::_strtoi64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoi64, module, 4);
6219 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoui64", "uint64 ecere::com::_strtoui64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoui64, module, 4);
6220 __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);
6221 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::DefaultFunction", "bool ecere::com::DefaultFunction(void)", __ecereNameSpace__ecere__com__DefaultFunction, module, 2);
6222 __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);
6223 __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);
6224 __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);
6225 __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);
6226 __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);
6227 __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);
6228 __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);
6229 __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);
6230 __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);
6231 __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);
6232 __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);
6233 __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);
6234 __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);
6235 __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);
6236 __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);
6237 __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);
6238 __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);
6239 __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);
6240 __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);
6241 __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);
6242 __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);
6243 __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);
6244 __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);
6245 __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);
6246 __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);
6247 __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);
6248 __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);
6249 __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);
6250 __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);
6251 __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);
6252 __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);
6253 __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);
6254 __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);
6255 __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);
6256 __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);
6257 __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);
6258 __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);
6259 __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);
6260 __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);
6261 __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);
6262 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New", "void * ecere::com::eSystem_New(uint size)", __ecereNameSpace__ecere__com__eSystem_New, module, 4);
6263 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New0", "void * ecere::com::eSystem_New0(uint size)", __ecereNameSpace__ecere__com__eSystem_New0, module, 4);
6264 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Delete", "void ecere::com::eSystem_Delete(void * memory)", __ecereNameSpace__ecere__com__eSystem_Delete, module, 4);
6265 __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);
6266 __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);
6267 __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);
6268 __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);
6269 __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);
6270 __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);
6271 __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);
6272 __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);
6273 __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);
6274 __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);
6275 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::LocateModule", "bool ecere::com::LocateModule(char * name, char * fileName)", __ecereNameSpace__ecere__com__LocateModule, module, 4);
6276 __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);
6277 __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);
6278 __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);
6279 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::Platform", 0, 0, 0, 0, 0, module, 4, 1);
6280 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6281 __ecereClass___ecereNameSpace__ecere__com__Platform = class;
6282 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString, 1);
6283 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString, 1);
6284 __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);
6285 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknown", 0);
6286 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "win32", 1);
6287 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "tux", 2);
6288 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "apple", 3);
6289 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetRuntimePlatform", "ecere::com::Platform ecere::com::GetRuntimePlatform(void)", __ecereNameSpace__ecere__com__GetRuntimePlatform, module, 4);
6290 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ObjectInfo", 0, sizeof(struct __ecereNameSpace__ecere__com__ObjectInfo), 0, 0, 0, module, 4, 1);
6291 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6292 __ecereClass___ecereNameSpace__ecere__com__ObjectInfo = class;
6293 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ObjectInfo", 4, 4, 1);
6294 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ObjectInfo", 4, 4, 1);
6295 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instance", "ecere::com::Instance", 4, 4, 1);
6296 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", 4, 4, 1);
6297 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instCode", "Instantiation", 4, 4, 1);
6298 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "deleted", "bool", 4, 4, 1);
6299 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "oClass", "ecere::com::ObjectInfo", 4, 4, 1);
6300 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instances", "ecere::sys::OldList", 20, 4, 1);
6301 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDefinition", "ClassDefinition", 4, 4, 1);
6302 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "bool", 4, 4, 1);
6303 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);
6304 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6305 __ecereClass___ecereNameSpace__ecere__com__DesignerBase = class;
6306 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindObject", "bool FindObject(ecere::com::Instance * instance, char * string)", 0, 1);
6307 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RenameObject", "void RenameObject(ecere::com::ObjectInfo object, char * name)", 0, 1);
6308 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObjectFromDesigner", "void SelectObjectFromDesigner(ecere::com::ObjectInfo object)", 0, 1);
6309 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CodeAddObject", "void CodeAddObject(ecere::com::Instance instance, ecere::com::ObjectInfo * object)", 0, 1);
6310 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SheetAddObject", "void SheetAddObject(ecere::com::ObjectInfo object)", 0, 1);
6311 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddToolBoxClass", "void AddToolBoxClass(ecere::com::Class _class)", 0, 1);
6312 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddDefaultMethod", "void AddDefaultMethod(ecere::com::Instance instance, ecere::com::Instance classInstance)", 0, 1);
6313 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DeleteObject", "void DeleteObject(ecere::com::ObjectInfo object)", 0, 1);
6314 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ObjectContainsCode", "bool ObjectContainsCode(ecere::com::ObjectInfo object)", 0, 1);
6315 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ModifyCode", "void ModifyCode(void)", 0, 1);
6316 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "UpdateProperties", "void UpdateProperties(void)", 0, 1);
6317 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDesigner", "ecere::com::ClassDesignerBase", 4, 4, 1);
6318 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "objectClass", "char *", 4, 4, 1);
6319 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isDragging", "bool", 4, 4, 1);
6320 __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);
6321 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6322 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6323 __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);
6324 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6325 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6326 __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);
6327 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application)
6328 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;
6329 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::ClassDesignerBase", "ecere::gui::Window", 0, 0, 0, 0, module, 4, 1);
6330 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + 12)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + 12)))->application && class)
6331 __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase = class;
6332 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Reset", "void Reset(void)", 0, 1);
6333 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddObject", "void AddObject(void)", 0, 1);
6334 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObject", "void SelectObject(ecere::com::ObjectInfo object, ecere::com::Instance control)", 0, 1);
6335 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ListToolBoxClasses", "void ListToolBoxClasses(ecere::com::DesignerBase designer)", 0, 1);
6336 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PrepareTestObject", "void ::PrepareTestObject(ecere::com::DesignerBase designer, ecere::com::Instance test)", 0, 1);
6337 __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);
6338 __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);
6339 __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);
6340 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DestroyObject", "void ::DestroyObject(ecere::com::Instance object)", 0, 1);
6341 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixProperty", "void ::FixProperty(ecere::com::Property prop, ecere::com::Instance object)", 0, 1);
6342 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateNew", "void ::CreateNew(EditBox editBox, Size clientSize, char * name, char * inherit)", 0, 1);
6343 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::SetActiveDesigner", "void ecere::com::SetActiveDesigner(ecere::com::DesignerBase designer)", __ecereNameSpace__ecere__com__SetActiveDesigner, module, 4);
6344 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetActiveDesigner", "ecere::com::DesignerBase ecere::com::GetActiveDesigner(void)", __ecereNameSpace__ecere__com__GetActiveDesigner, module, 4);
6345 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::LEAD_OFFSET", "0xD800 - (0x10000 >> 10)", module, 2);
6346 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::SURROGATE_OFFSET", "0x10000 - (0xD800 << 10) - 0xDC00", module, 2);
6347 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8Validate", "bool ecere::sys::UTF8Validate(char * source)", __ecereNameSpace__ecere__sys__UTF8Validate, module, 4);
6348 __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);
6349 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8", "char * ecere::sys::UTF16toUTF8(uint16 * source)", __ecereNameSpace__ecere__sys__UTF16toUTF8, module, 4);
6350 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8Buffer", "int ecere::sys::UTF16toUTF8Buffer(uint16 * source, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer, module, 4);
6351 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8GetChar", "ecere::com::unichar ecere::sys::UTF8GetChar(char * string, int * numBytes)", __ecereNameSpace__ecere__sys__UTF8GetChar, module, 4);
6352 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16Buffer", "int ecere::sys::UTF8toUTF16Buffer(char * source, uint16 * dest, int max)", __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer, module, 4);
6353 __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);
6354 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16", "uint16 * ecere::sys::UTF8toUTF16(char * source, int * wordCount)", __ecereNameSpace__ecere__sys__UTF8toUTF16, module, 4);
6357 void __ecereUnregisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6360 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6361 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6362 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;