2 typedef long long int64;
3 typedef unsigned long long uint64;
5 #define stdcall __attribute__((__stdcall__))
10 #elif defined(__TINYC__)
12 #define __builtin_va_list va_list
13 #define __builtin_va_start va_start
14 #define __builtin_va_end va_end
16 #define strcasecmp stricmp
17 #define strncasecmp strnicmp
18 #define __declspec(x) __attribute__((x))
19 #define stdcall __attribute__((__stdcall__))
24 typedef long long int64;
25 typedef unsigned long long uint64;
27 typedef __int64 int64;
28 typedef unsigned __int64 uint64;
31 #define __ENDIAN_PAD(x) (8 - (x))
33 #define __ENDIAN_PAD(x) 0
36 #include <sys/types.h>
38 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
44 #define arch_PointerSize sizeof(void *)
45 #define structSize_Instance (_64BIT ? 24 : 12)
46 #define structSize_Module (_64BIT ? 560 : 300)
47 #define structSize_BinaryTree (_64BIT ? 32 : 16)
48 #define structSize_OldList (_64BIT ? 32 : 20)
49 #define structSize_NamedLink64 (_64BIT ? 32 : 24)
50 #define structSize_ClassTemplateArgument (_64BIT ? 16 : 8)
51 #define structSize_ClassTemplateParameter (_64BIT ? 64 : 40)
52 #define structSize_OldLink (_64BIT ? 24 : 12)
53 #define structSize_BTNamedLink (_64BIT ? 48 : 24)
54 #define structSize_Application (_64BIT ? 800 : 428)
55 #define structSize_Watcher (_64BIT ? 32 : 16)
56 #define structSize_SelfWatcher (_64BIT ? 32 : 16)
57 #define structSize_GlobalFunction (_64BIT ? 72 : 36)
58 #define structSize_DefinedExpression (_64BIT ? 40 : 20)
59 #define structSize_BitMember (_64BIT ? 96 : 64)
60 #define structSize_NamedLink (_64BIT ? 32 : 16)
61 #define structSize_DataMember (_64BIT ? 160 : 96)
62 #define structSize_ClassProperty (_64BIT ? 80 : 40)
63 #define structSize_Method (_64BIT ? 96 : 52)
64 #define structSize_Property (_64BIT ? 152 : 88)
65 #define structSize_Class (_64BIT ? 616 : 372)
67 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
69 struct __ecereNameSpace__ecere__sys__BTNode;
71 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
73 struct __ecereNameSpace__ecere__sys__BinaryTree
75 struct __ecereNameSpace__ecere__sys__BTNode * root;
77 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
78 void (* FreeKey)(void * key);
79 } __attribute__ ((gcc_struct));
81 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
83 struct __ecereNameSpace__ecere__sys__OldList
90 } __attribute__ ((gcc_struct));
92 struct __ecereNameSpace__ecere__com__Class
94 struct __ecereNameSpace__ecere__com__Class * prev, * next;
96 int offset, structSize;
99 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
100 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
101 int offsetClass, sizeClass;
102 struct __ecereNameSpace__ecere__com__Class * base;
103 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
104 struct __ecereNameSpace__ecere__sys__BinaryTree members;
105 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
106 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
107 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
108 struct __ecereNameSpace__ecere__sys__OldList derivatives;
109 int memberID, startMemberID;
111 struct __ecereNameSpace__ecere__com__Instance * module;
112 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
113 char * dataTypeString;
114 struct __ecereNameSpace__ecere__com__Instance * dataType;
116 int defaultAlignment;
117 void (* Initialize)();
119 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
120 char * designerClass;
121 unsigned int noExpansion;
122 char * defaultProperty;
123 unsigned int comRedefinition;
125 unsigned int isRemote;
126 unsigned int internalDecl;
128 unsigned int computeSize;
130 int destructionWatchOffset;
132 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
133 int inheritanceAccess;
136 struct __ecereNameSpace__ecere__sys__OldList conversions;
137 struct __ecereNameSpace__ecere__sys__OldList templateParams;
138 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
139 struct __ecereNameSpace__ecere__com__Class * templateClass;
140 struct __ecereNameSpace__ecere__sys__OldList templatized;
142 unsigned int isInstanceClass;
143 } __attribute__ ((gcc_struct));
145 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
147 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
149 struct __ecereNameSpace__ecere__com__Instance
152 struct __ecereNameSpace__ecere__com__Class * _class;
154 } __attribute__ ((gcc_struct));
156 struct __ecereNameSpace__ecere__com__Property
158 struct __ecereNameSpace__ecere__com__Property * prev, * next;
160 unsigned int isProperty;
163 struct __ecereNameSpace__ecere__com__Class * _class;
164 char * dataTypeString;
165 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
166 struct __ecereNameSpace__ecere__com__Instance * dataType;
167 void (* Set)(void *, int);
169 unsigned int (* IsSet)(void *);
173 unsigned int conversion;
174 unsigned int watcherOffset;
176 unsigned int compiled;
177 unsigned int selfWatchable, isWatchable;
178 } __attribute__ ((gcc_struct));
180 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
182 struct __ecereNameSpace__ecere__com__DataMember
184 struct __ecereNameSpace__ecere__com__DataMember * prev, * next;
186 unsigned int isProperty;
189 struct __ecereNameSpace__ecere__com__Class * _class;
190 char * dataTypeString;
191 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
192 struct __ecereNameSpace__ecere__com__Instance * dataType;
196 struct __ecereNameSpace__ecere__sys__OldList members;
197 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
200 } __attribute__ ((gcc_struct));
202 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
204 struct __ecereNameSpace__ecere__com__Method
207 struct __ecereNameSpace__ecere__com__Method * parent, * left, * right;
212 struct __ecereNameSpace__ecere__com__Class * _class;
214 char * dataTypeString;
215 struct __ecereNameSpace__ecere__com__Instance * dataType;
217 } __attribute__ ((gcc_struct));
219 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
221 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
223 struct __ecereNameSpace__ecere__com__SerialBuffer
225 unsigned char * _buffer;
229 } __attribute__ ((gcc_struct));
231 struct __ecereNameSpace__ecere__com__DataValue
246 } __attribute__ ((gcc_struct));
247 } __attribute__ ((gcc_struct));
249 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
251 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
257 char * dataTypeString;
258 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
259 } __attribute__ ((gcc_struct));
260 struct __ecereNameSpace__ecere__com__DataValue expression;
266 struct __ecereNameSpace__ecere__com__DataMember * member;
267 struct __ecereNameSpace__ecere__com__Property * prop;
268 struct __ecereNameSpace__ecere__com__Method * method;
269 } __attribute__ ((gcc_struct));
270 } __attribute__ ((gcc_struct));
271 } __attribute__ ((gcc_struct));
272 } __attribute__ ((gcc_struct));
274 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
276 void exit(int status);
278 void * calloc(size_t nmemb, size_t size);
280 void free(void * ptr);
282 void * malloc(size_t size);
284 void * realloc(void * ptr, size_t size);
286 long int strtol(const char * nptr, char ** endptr, int base);
288 long long int strtoll(const char * nptr, char ** endptr, int base);
290 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
292 typedef __builtin_va_list va_list;
296 FILE * bsl_stdin(void);
298 FILE * bsl_stdout(void);
300 FILE * bsl_stderr(void);
302 char * fgets(char * s, int size, FILE * stream);
304 FILE * fopen(const char * path, const char * mode);
306 int fclose(FILE * fp);
308 int fflush(FILE * stream);
310 int fgetc(FILE * stream);
312 int fprintf(FILE * stream, const char * format, ...);
314 int fputc(int c, FILE * stream);
316 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
318 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
320 int vsnprintf(char *, size_t, const char *, ...);
322 int snprintf(char * str, size_t, const char * format, ...);
324 int fseek(FILE * stream, long offset, int whence);
326 long ftell(FILE * stream);
328 int feof(FILE * stream);
330 int ferror(FILE * stream);
332 int fileno(FILE * stream);
335 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
337 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
339 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
341 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
343 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
345 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
347 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
349 extern int __ecereVMethodID_class_OnGetDataFromString;
351 unsigned int Instance_LocateModule(char * name, char * fileName);
353 void Instance_COM_Initialize(int argc, char ** argv, char ** parsedCommand, int * argcPtr, char *** argvPtr);
355 void * Instance_Module_Load(const char * libLocation, const char * name, void ** Load, void ** Unload);
357 void Instance_Module_Free(void * library);
359 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__unichar;
361 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max);
363 char * __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * tempString, void * fieldData, unsigned int * needClass)
365 __ecereNameSpace__ecere__sys__UTF32toUTF8Len(&(*this), 1, tempString, 5);
369 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes);
371 unsigned int __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string)
375 (*this) = __ecereNameSpace__ecere__sys__UTF8GetChar(string, &nb);
379 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
381 void __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(char * loc)
385 void __ecereNameSpace__ecere__com__MemoryGuard_PopLoc()
389 extern unsigned int __ecereDll_Load_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
391 extern unsigned int __ecereDll_Unload_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
393 struct __ecereNameSpace__ecere__com__BTNamedLink
396 struct __ecereNameSpace__ecere__com__BTNamedLink * parent, * left, * right;
399 } __attribute__ ((gcc_struct));
401 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BTNamedLink;
403 struct __ecereNameSpace__ecere__com__SelfWatcher
405 struct __ecereNameSpace__ecere__com__SelfWatcher * prev, * next;
406 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *);
407 struct __ecereNameSpace__ecere__com__Property * _property;
408 } __attribute__ ((gcc_struct));
410 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SelfWatcher;
412 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AccessMode;
414 struct __ecereNameSpace__ecere__com__SubModule
416 struct __ecereNameSpace__ecere__com__SubModule * prev, * next;
417 struct __ecereNameSpace__ecere__com__Instance * module;
419 } __attribute__ ((gcc_struct));
421 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SubModule;
423 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMemberType;
425 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassType;
427 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Class_char__PTR_;
429 char * __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this)
434 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
436 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(char * value)
438 struct __ecereNameSpace__ecere__com__Class * theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, value);
443 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)
448 struct __ecereNameSpace__ecere__com__NameSpace
451 struct __ecereNameSpace__ecere__com__NameSpace * btParent, * left, * right;
453 struct __ecereNameSpace__ecere__com__NameSpace * parent;
454 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
455 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
456 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
457 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
458 } __attribute__ ((gcc_struct));
460 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
462 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
464 struct __ecereNameSpace__ecere__com__Module
466 struct __ecereNameSpace__ecere__com__Instance * application;
467 struct __ecereNameSpace__ecere__sys__OldList classes;
468 struct __ecereNameSpace__ecere__sys__OldList defines;
469 struct __ecereNameSpace__ecere__sys__OldList functions;
470 struct __ecereNameSpace__ecere__sys__OldList modules;
471 struct __ecereNameSpace__ecere__com__Instance * prev;
472 struct __ecereNameSpace__ecere__com__Instance * next;
478 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
479 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
480 } __attribute__ ((gcc_struct));
482 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, char * string)
484 struct __ecereNameSpace__ecere__com__Class * theClass;
486 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
488 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, string);
489 (*this) = (void *)theClass;
490 return theClass != (((void *)0));
493 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
495 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_char__PTR_;
497 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)
499 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_char__PTR_, this->fullName);
502 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this)
506 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
508 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
510 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)
512 struct __ecereNameSpace__ecere__com__Class * theClass;
515 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &string);
516 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
518 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, string);
519 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
520 (*this) = (void *)theClass;
523 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType;
525 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType;
527 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
529 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev, * next;
534 char * dataTypeString;
536 } __attribute__ ((gcc_struct));
537 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
539 } __attribute__ ((gcc_struct));
541 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
543 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MethodType;
545 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ImportType;
547 struct __ecereNameSpace__ecere__com__BitMember
549 struct __ecereNameSpace__ecere__com__BitMember * prev, * next;
551 unsigned int isProperty;
554 struct __ecereNameSpace__ecere__com__Class * _class;
555 char * dataTypeString;
556 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
557 struct __ecereNameSpace__ecere__com__Instance * dataType;
562 } __attribute__ ((gcc_struct));
564 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
566 struct __ecereNameSpace__ecere__com__ClassProperty
569 struct __ecereNameSpace__ecere__com__ClassProperty * parent, * left, * right;
571 void (* Set)(struct __ecereNameSpace__ecere__com__Class *, long long);
572 long long (* Get)(struct __ecereNameSpace__ecere__com__Class *);
573 char * dataTypeString;
574 struct __ecereNameSpace__ecere__com__Instance * dataType;
575 unsigned int constant;
576 } __attribute__ ((gcc_struct));
578 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty;
580 struct __ecereNameSpace__ecere__com__DefinedExpression
582 struct __ecereNameSpace__ecere__com__DefinedExpression * prev, * next;
585 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
586 } __attribute__ ((gcc_struct));
588 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
590 struct __ecereNameSpace__ecere__com__GlobalFunction
592 struct __ecereNameSpace__ecere__com__GlobalFunction * prev, * next;
595 struct __ecereNameSpace__ecere__com__Instance * module;
596 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
597 char * dataTypeString;
598 struct __ecereNameSpace__ecere__com__Instance * dataType;
600 } __attribute__ ((gcc_struct));
602 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
604 struct __ecereNameSpace__ecere__com__EnumClassData
606 struct __ecereNameSpace__ecere__sys__OldList values;
608 } __attribute__ ((gcc_struct));
610 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
612 struct __ecereNameSpace__ecere__com__Watcher
614 struct __ecereNameSpace__ecere__com__Watcher * prev, * next;
615 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *);
616 struct __ecereNameSpace__ecere__com__Instance * object;
617 } __attribute__ ((gcc_struct));
619 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Watcher;
621 static unsigned int __ecereNameSpace__ecere__com__TOTAL_MEM = 0;
623 static unsigned int __ecereNameSpace__ecere__com__OUTSIDE_MEM = 0;
625 struct __ecereNameSpace__ecere__com__MemBlock
627 struct __ecereNameSpace__ecere__com__MemBlock * prev, * next;
628 struct __ecereNameSpace__ecere__com__MemPart * part;
630 } __attribute__ ((gcc_struct));
632 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemBlock;
634 struct __ecereNameSpace__ecere__com__MemPart
639 struct __ecereNameSpace__ecere__com__BlockPool * pool;
640 } __attribute__ ((gcc_struct));
642 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemPart;
644 static int __ecereNameSpace__ecere__com__power15[] =
646 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
649 struct __ecereNameSpace__ecere__com__BlockPool
651 struct __ecereNameSpace__ecere__com__MemBlock * first, * last;
652 struct __ecereNameSpace__ecere__com__MemBlock * free;
653 unsigned int blockSize;
654 unsigned int blockSpace;
657 unsigned int totalSize;
658 unsigned int usedSpace;
659 } __attribute__ ((gcc_struct));
661 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BlockPool;
663 unsigned int __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(struct __ecereNameSpace__ecere__com__BlockPool * this, unsigned int numBlocks)
665 unsigned char * memory = malloc(numBlocks * this->blockSpace);
667 __ecereNameSpace__ecere__com__TOTAL_MEM += numBlocks * this->blockSpace;
671 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)memory;
672 struct __ecereNameSpace__ecere__com__MemPart * part = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__MemPart));
674 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemPart);
676 for(c = 0; c < numBlocks - 1; c++)
679 block->prev = (((void *)0));
680 block->next = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)block + this->blockSpace);
683 part->blocksUsed = 0;
685 part->memory = memory;
686 part->size = numBlocks;
688 block->prev = (((void *)0));
689 block->next = (((void *)0));
690 this->totalSize += numBlocks;
697 struct __ecereNameSpace__ecere__com__MemBlock * __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(struct __ecereNameSpace__ecere__com__BlockPool * this)
700 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
703 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(this, (__simpleStruct0 = this->numBlocks / 2, (1 > __simpleStruct0) ? 1 : __simpleStruct0));
707 block->prev = this->last;
709 block->prev->next = block;
713 this->free = block->next;
714 block->next = (((void *)0));
715 block->part->blocksUsed++;
721 void __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove(struct __ecereNameSpace__ecere__com__BlockPool * this, struct __ecereNameSpace__ecere__com__MemBlock * block)
724 block->prev->next = block->next;
726 block->next->prev = block->prev;
727 if(this->first == block)
728 this->first = block->next;
729 if(this->last == block)
730 this->last = block->prev;
731 block->next = this->free;
733 block->part->blocksUsed--;
735 (*block->part->pool).usedSpace -= block->size;
736 if(!block->part->blocksUsed && this->numBlocks && this->totalSize > this->numBlocks + this->numBlocks / 2)
738 struct __ecereNameSpace__ecere__com__MemBlock * next = this->free, * prev = (((void *)0));
739 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
741 this->free = (((void *)0));
742 this->totalSize -= part->size;
745 if(next->part != part)
757 prev->next = (((void *)0));
758 __ecereNameSpace__ecere__com__TOTAL_MEM -= part->size * this->blockSpace;
759 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemPart);
766 static struct __ecereNameSpace__ecere__com__BlockPool * __ecereNameSpace__ecere__com__pools;
768 static unsigned int __ecereNameSpace__ecere__com__PosFibonacci(unsigned int number)
771 unsigned int last = 1, prev = 0;
772 unsigned int current = 1;
774 for(pos = 0; ; pos++)
779 if(current >= number)
785 static unsigned int __ecereNameSpace__ecere__com__NthFibonacci(unsigned int number)
788 unsigned int last = 1, prev = 0;
789 unsigned int current = 1;
791 for(pos = 0; pos <= number; pos++)
800 static unsigned int __ecereNameSpace__ecere__com__NextFibonacci(unsigned int number)
803 unsigned int last = 1, prev = 0;
804 unsigned int current = 1;
806 for(pos = 0; ; pos++)
811 if(current >= number)
816 static unsigned int __ecereNameSpace__ecere__com__log1_5i(unsigned int number)
819 uint64 current = sizeof(void *);
821 for(pos = 0; pos < 31; pos++)
823 if(current >= number)
825 current = current * 3 / 2;
832 static unsigned int __ecereNameSpace__ecere__com__pow1_5(unsigned int number)
835 uint64 current = sizeof(void *);
837 for(pos = 0; pos < number; pos++)
839 current = current * 3 / 2;
843 return (unsigned int)current;
846 static unsigned int __ecereNameSpace__ecere__com__pow1_5i(unsigned int number)
849 uint64 current = sizeof(void *);
851 for(pos = 0; pos < 31; pos++)
853 if(current >= number)
854 return (unsigned int)current;
855 current = current * 3 / 2;
859 return (unsigned int)current;
862 unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number)
866 for(power = 0; power < 32; power++)
867 if((1L << power) >= number)
872 unsigned int __ecereNameSpace__ecere__com__pow2i(unsigned int number)
874 return 1 << __ecereNameSpace__ecere__com__log2i(number);
877 static unsigned int __ecereNameSpace__ecere__com__memoryInitialized = 0x0;
879 static void __ecereNameSpace__ecere__com__InitMemory()
883 __ecereNameSpace__ecere__com__memoryInitialized = 0x1;
884 __ecereNameSpace__ecere__com__pools = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__BlockPool) * 31);
885 for(c = 0; c < 31; c++)
889 __ecereNameSpace__ecere__com__pools[c].blockSize = __ecereNameSpace__ecere__com__pow1_5(c);
890 if(__ecereNameSpace__ecere__com__pools[c].blockSize % sizeof(void *))
891 __ecereNameSpace__ecere__com__pools[c].blockSize += sizeof(void *) - (__ecereNameSpace__ecere__com__pools[c].blockSize % sizeof(void *));
892 __ecereNameSpace__ecere__com__pools[c].blockSpace = __ecereNameSpace__ecere__com__pools[c].blockSize;
893 __ecereNameSpace__ecere__com__pools[c].blockSpace += sizeof(struct __ecereNameSpace__ecere__com__MemBlock);
894 expansion = (__ecereNameSpace__ecere__com__pools[c].blockSize < 128) ? 1024 : (131072 / __ecereNameSpace__ecere__com__pools[c].blockSize);
896 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(&__ecereNameSpace__ecere__com__pools[c], ((1 > expansion) ? 1 : expansion));
900 static void * __ecereNameSpace__ecere__com___mymalloc(unsigned int size)
902 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
906 unsigned int p = __ecereNameSpace__ecere__com__log1_5i(size);
908 if(!__ecereNameSpace__ecere__com__memoryInitialized)
909 __ecereNameSpace__ecere__com__InitMemory();
912 block = __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(&__ecereNameSpace__ecere__com__pools[p]);
916 __ecereNameSpace__ecere__com__pools[p].usedSpace += size;
921 block = malloc(sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
924 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
925 __ecereNameSpace__ecere__com__OUTSIDE_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
926 block->part = (((void *)0));
931 return block ? ((struct __ecereNameSpace__ecere__com__MemBlock *)block + 1) : (((void *)0));
934 extern void * memset(void * area, int value, size_t count);
936 static void * __ecereNameSpace__ecere__com___mycalloc(int n, unsigned int size)
938 void * pointer = __ecereNameSpace__ecere__com___mymalloc(n * size);
941 memset(pointer, 0, n * size);
945 static void __ecereNameSpace__ecere__com___myfree(void * pointer)
949 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock));
950 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
951 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
954 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove((&*pool), block);
957 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
958 __ecereNameSpace__ecere__com__OUTSIDE_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
964 extern void * memcpy(void * , const void * , size_t size);
966 static void * __ecereNameSpace__ecere__com___myrealloc(void * pointer, unsigned int size)
968 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
969 void * newPointer = (((void *)0));
970 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
971 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
977 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
978 unsigned int mod = ns % sizeof(void *);
981 ns += sizeof(void *) - mod;
982 if(ns == (*pool).blockSize)
984 newPointer = pointer;
985 (*pool).usedSpace += size - block->size;
991 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
995 __ecereNameSpace__ecere__com__TOTAL_MEM += size - newBlock->size;
996 __ecereNameSpace__ecere__com__OUTSIDE_MEM += size - newBlock->size;
997 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1003 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1004 if(pointer && newPointer)
1006 unsigned int __simpleStruct0;
1008 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1009 __ecereNameSpace__ecere__com___myfree(pointer);
1015 static void * __ecereNameSpace__ecere__com___mycrealloc(void * pointer, unsigned int size)
1017 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
1018 void * newPointer = (((void *)0));
1019 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
1020 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
1026 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
1027 unsigned int mod = ns % sizeof(void *);
1030 ns += sizeof(void *) - mod;
1031 if(ns == (*pool).blockSize)
1033 int extra = size - block->size;
1035 newPointer = pointer;
1036 (*pool).usedSpace += extra;
1038 memset((unsigned char *)pointer + block->size, 0, extra);
1044 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
1048 int extra = size - newBlock->size;
1050 __ecereNameSpace__ecere__com__TOTAL_MEM += extra;
1051 __ecereNameSpace__ecere__com__OUTSIDE_MEM += extra;
1052 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1054 memset((unsigned char *)newPointer + newBlock->size, 0, extra);
1055 newBlock->size = size;
1061 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1066 unsigned int __simpleStruct0;
1068 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1069 if(size > block->size)
1070 memset((unsigned char *)newPointer + block->size, 0, size - block->size);
1071 __ecereNameSpace__ecere__com___myfree(pointer);
1074 memset((unsigned char *)newPointer, 0, size);
1080 static void * __ecereNameSpace__ecere__com___malloc(unsigned int size)
1084 pointer = size ? __ecereNameSpace__ecere__com___mymalloc(size + 2 * 0) : (((void *)0));
1085 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1088 static void * __ecereNameSpace__ecere__com___calloc(int n, unsigned int size)
1092 pointer = (n * size) ? __ecereNameSpace__ecere__com___mycalloc(1, n * size + 2 * 0) : (((void *)0));
1093 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1096 static void __ecereNameSpace__ecere__com___free(void * pointer);
1098 static void * __ecereNameSpace__ecere__com___realloc(void * pointer, unsigned int size)
1102 __ecereNameSpace__ecere__com___free(pointer);
1103 return (((void *)0));
1105 pointer = __ecereNameSpace__ecere__com___myrealloc(pointer, size);
1106 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1109 static void * __ecereNameSpace__ecere__com___crealloc(void * pointer, unsigned int size)
1112 return (((void *)0));
1113 pointer = __ecereNameSpace__ecere__com___mycrealloc(pointer, size);
1114 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1117 static void __ecereNameSpace__ecere__com___free(void * pointer)
1121 __ecereNameSpace__ecere__com___myfree(pointer);
1125 void __ecereNameSpace__ecere__com__memswap(unsigned char * a, unsigned char * b, unsigned int size)
1128 unsigned char buffer[1024];
1130 for(c = 0; c < size; )
1132 int s = sizeof buffer;
1136 memcpy(buffer, a + c, s);
1137 memcpy(a + c, b + c, s);
1138 memcpy(b + c, buffer, s);
1143 void __ecereNameSpace__ecere__com__CheckMemory()
1147 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule);
1149 extern char * strchr(const char * , int);
1151 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
1153 struct __ecereNameSpace__ecere__sys__OldLink
1155 struct __ecereNameSpace__ecere__sys__OldLink * prev;
1156 struct __ecereNameSpace__ecere__sys__OldLink * next;
1158 } __attribute__ ((gcc_struct));
1160 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1162 extern void * memmove(void * , const void * , size_t size);
1164 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property);
1166 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1168 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1170 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1172 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1174 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key);
1176 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1178 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1180 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1182 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item);
1184 static void __ecereNameSpace__ecere__com__FixDerivativesBase(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Class * mod)
1186 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
1187 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1189 __ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)));
1190 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
1192 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
1193 int type = _class->type;
1195 int size = _class->structSize - _class->offset;
1196 int oldSizeClass = _class->sizeClass;
1197 int sizeClass = _class->sizeClass - _class->offsetClass;
1198 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1199 char * dataTypeString = (((void *)0));
1200 struct __ecereNameSpace__ecere__com__Class * baseClass;
1201 unsigned int offsetBefore = _class->offset;
1202 int offsetClass, totalSizeClass;
1204 for(baseClass = base; baseClass->base; baseClass = baseClass->base)
1206 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1208 if(base->type == 1 && type == 0)
1213 if(base && (_class->type == 0 || _class->type == 5 || _class->type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1222 base = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, "enum");
1225 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1226 offsetClass = base ? (base->templateClass ? base->templateClass->sizeClass : base->sizeClass) : (type == 5 ? 0 : 0);
1227 totalSizeClass = offsetClass + sizeClass;
1228 if(type == 0 || type == 5)
1229 _class->offset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : ((type == 5) ? 0 : structSize_Instance);
1232 _class->memberOffset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : 0;
1233 _class->typeSize = _class->structSize = _class->memberOffset + size;
1235 else if(type == 2 || type == 4 || type == 3)
1237 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1240 _class->typeSize = dataTypeClass->typeSize;
1241 _class->structSize = 0;
1243 else if(type == 0 || type == 5)
1245 _class->structSize = _class->offset + size;
1246 _class->typeSize = sizeof(void *);
1248 if(_class->type != 1000)
1249 _class->type = type;
1250 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1251 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1252 if(totalSizeClass != oldSizeClass)
1254 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1255 memmove((unsigned char *)_class->data + mod->offsetClass, (unsigned char *)_class->data, totalSizeClass - mod->sizeClass);
1256 if(base->type != 1000 && base->type != 4)
1257 memcpy((unsigned char *)_class->data, (unsigned char *)base->data, totalSizeClass - _class->sizeClass);
1259 memset((unsigned char *)_class->data, 0, totalSizeClass - _class->sizeClass);
1261 _class->offsetClass = offsetClass;
1262 _class->sizeClass = totalSizeClass;
1264 struct __ecereNameSpace__ecere__com__Method * method, * next;
1265 struct __ecereNameSpace__ecere__com__Class * b;
1266 unsigned int needUpdate = (mod != (base->templateClass ? base->templateClass : base) || _class->vTblSize != mod->vTblSize);
1267 int updateStart = -1, updateEnd = -1;
1269 if(mod->base && mod->base->base && mod->base->vTblSize > baseClass->vTblSize && needUpdate)
1271 _class->vTblSize += mod->base->vTblSize - baseClass->vTblSize;
1272 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
1273 memmove(_class->_vTbl + mod->base->vTblSize, _class->_vTbl + baseClass->vTblSize, (_class->vTblSize - mod->vTblSize) * sizeof(void *));
1274 updateStart = baseClass->vTblSize;
1275 updateEnd = updateStart + mod->base->vTblSize - baseClass->vTblSize;
1276 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
1278 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
1279 if(method->type == 1)
1280 method->vid += mod->base->vTblSize - baseClass->vTblSize;
1283 for(b = mod->base; b && b != (((void *)0)); b = b->base)
1285 struct __ecereNameSpace__ecere__com__Method * vMethod;
1287 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)))
1289 if(vMethod->type == 1)
1291 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, vMethod->name);
1294 if(method->function)
1295 _class->_vTbl[vMethod->vid] = method->function;
1298 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1299 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1300 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1304 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1305 method->type = vMethod->type;
1306 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(vMethod->dataTypeString);
1307 method->_class = vMethod->_class;
1310 else if((vMethod->vid >= updateStart && vMethod->vid < updateEnd) || _class->_vTbl[vMethod->vid] == b->_vTbl[vMethod->vid])
1311 _class->_vTbl[vMethod->vid] = _class->base->_vTbl[vMethod->vid];
1316 if(type == 0 || type == 5 || type == 1)
1318 struct __ecereNameSpace__ecere__com__Property * prop;
1319 struct __ecereNameSpace__ecere__com__DataMember * member;
1320 struct __ecereNameSpace__ecere__com__Class * c;
1322 for(c = mod->base; c; c = c->base)
1324 struct __ecereNameSpace__ecere__com__Property * _property;
1326 for(_property = c->membersAndProperties.first; _property; _property = _property->next)
1328 if(_property->isProperty)
1330 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
1335 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
1337 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
1339 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
1341 if(watcher->_property == prop)
1342 watcher->_property = _property;
1344 _property->selfWatchable = 0x1;
1345 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1346 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
1347 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
1348 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
1355 struct __ecereNameSpace__ecere__com__DataMember * next;
1357 for(member = _class->membersAndProperties.first; member; member = next)
1359 int offsetDiff = _class->offset - offsetBefore;
1361 next = member->next;
1362 if(!member->isProperty)
1364 if(oldType == 2 && type != 2)
1366 struct __ecereNameSpace__ecere__com__DataMember * prev = member->prev;
1368 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&_class->membersAndProperties, member);
1369 member = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eSystem_Renew0(member, sizeof(unsigned char) * (sizeof(struct __ecereNameSpace__ecere__com__DataMember)));
1370 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(&_class->membersAndProperties, prev, member);
1374 member->offset += offsetDiff;
1375 member->memberOffset += offsetDiff;
1378 member->id += mod->base->memberID;
1380 _class->memberID += mod->base->memberID;
1381 _class->startMemberID += mod->base->memberID;
1384 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, mod);
1386 struct __ecereNameSpace__ecere__com__Class * c;
1388 for(c = mod->base; c; c = c->base)
1390 struct __ecereNameSpace__ecere__com__ClassProperty * _property;
1392 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)))
1394 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
1400 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1402 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
1404 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
1405 char * templateParams = strchr(template->name, '<');
1407 template->base = base->base;
1408 template->_vTbl = base->_vTbl;
1409 template->data = base->data;
1410 template->offset = base->offset;
1411 template->offsetClass = base->offsetClass;
1412 template->sizeClass = base->sizeClass;
1413 template->structSize = base->structSize;
1414 template->vTblSize = base->vTblSize;
1415 __ecereNameSpace__ecere__com__FixDerivativesBase(template, mod);
1420 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
1422 struct __ecereNameSpace__ecere__com__Application
1427 unsigned int isGUIApp;
1428 struct __ecereNameSpace__ecere__sys__OldList allModules;
1429 char * parsedCommand;
1430 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1431 } __attribute__ ((gcc_struct));
1433 extern int strcmp(const char * , const char * );
1435 extern char * strncpy(char * , const char * , size_t n);
1437 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base);
1439 extern int printf(char * , ...);
1441 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace);
1443 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset);
1445 extern char * strcpy(char * , const char * );
1447 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template);
1449 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg);
1451 extern char * strstr(const char * , const char * );
1453 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b);
1455 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1457 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data);
1459 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1461 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)
1464 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
1465 unsigned int force64Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 2) ? 0x1 : 0x0;
1466 unsigned int force32Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 4) ? 0x1 : 0x0;
1467 unsigned int inCompiler = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 8) ? 0x1 : 0x0;
1468 unsigned int crossBits = force32Bits || force64Bits;
1469 unsigned int fixed = 0x0;
1471 if(inCompiler && crossBits)
1473 struct __ecereNameSpace__ecere__com__Class * c = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, name);
1477 else if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name && !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name, "ecereCOM"))
1481 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
1483 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
1485 for(c = 0; name[c]; c++)
1487 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
1489 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
1490 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
1492 strncpy(spaceName, name + start, c - start);
1493 spaceName[c - start] = '\0';
1494 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
1497 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
1498 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1499 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1500 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1501 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1502 (*newSpace).name = spaceName;
1503 (*newSpace).parent = nameSpace;
1504 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
1507 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
1508 nameSpace = newSpace;
1520 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (((void *)0));
1521 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
1522 char * dataTypeString = (((void *)0));
1523 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1524 struct __ecereNameSpace__ecere__com__Class * base = (baseName && baseName[0]) ? __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName) : (((void *)0));
1525 unsigned int refine = 0x0;
1527 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1529 if(base->type == 1 && type == 0)
1534 if(base && (type == 0 || type == 5 || type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1538 if(!base || base->type == 1000 || base->isInstanceClass)
1542 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"))
1544 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1545 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1549 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1550 base->internalDecl = 0x1;
1552 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1555 else if(type == 1 && (!baseName || !baseName[0]))
1557 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "struct");
1558 dataTypeString = name + start;
1563 dataTypeString = "struct __ecereNameSpace__ecere__com__Instance";
1565 dataTypeString = "void *";
1567 dataTypeString = (baseName && baseName[0]) ? baseName : "unsigned int";
1569 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1571 dataTypeString = name + start;
1572 if(base || (!baseName || !baseName[0]) || type == 2 || type == 3)
1574 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"))
1576 if(type == 0 && strcmp(name, "ecere::com::Instance") && strcmp(name, "enum") && strcmp(name, "struct"))
1577 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1579 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1594 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1597 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1599 offsetClass = base ? base->sizeClass : (type == 5 ? 0 : 0);
1600 totalSizeClass = offsetClass + sizeClass;
1601 if((_class = __ecereNameSpace__ecere__com__eSystem_FindClass(module, name)))
1603 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1604 if(!_class->internalDecl)
1607 printf("error: Redefinition of class %s\n", name);
1610 _class->comRedefinition = 0x1;
1613 return (((void *)0));
1615 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, name + start);
1616 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1618 struct __ecereNameSpace__ecere__sys__OldLink * t;
1620 for(t = _class->templatized.first; t; t = t->next)
1622 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1624 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1625 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1629 struct __ecereNameSpace__ecere__com__NameSpace * ns = _class->nameSpace;
1631 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))
1633 struct __ecereNameSpace__ecere__com__NameSpace * parent = (*ns).parent;
1635 __ecereNameSpace__ecere__com__NameSpace_Free(ns);
1636 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*parent).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)ns);
1644 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->privateNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1646 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->publicNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1648 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->privateNameSpace, name + start, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1650 classLink = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Instance)))->publicNameSpace, name + start, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1652 _class = classLink->data;
1653 if(_class && _class->internalDecl)
1655 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1656 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1658 struct __ecereNameSpace__ecere__sys__OldLink * t;
1660 for(t = _class->templatized.first; t; t = t->next)
1662 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1664 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1665 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1669 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
1670 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1674 _class = __ecereNameSpace__ecere__com___calloc(1, sizeof(struct __ecereNameSpace__ecere__com__Class));
1675 _class->methods.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1676 _class->members.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1677 _class->prop.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1678 _class->classProperties.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1679 _class->name = __ecereNameSpace__ecere__sys__CopyString(name + start);
1680 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1685 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
1686 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
1688 __ecereInstance1->name = _class->name, __ecereInstance1->data = _class, __ecereInstance1;
1691 struct __ecereNameSpace__ecere__sys__OldLink * t;
1693 for(t = _class->templatized.first; t; t = t->next)
1695 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1697 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
1698 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
1700 __ecereInstance1->name = template->name, __ecereInstance1->data = template, __ecereInstance1;
1707 if(!base && baseName && strcmp(baseName, name))
1709 if(strchr(baseName, '<'))
1711 char templateClassName[1024];
1712 struct __ecereNameSpace__ecere__com__Class * templateBase;
1714 strcpy(templateClassName, baseName);
1715 *strchr(templateClassName, '<') = '\0';
1716 templateBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, templateClassName);
1719 templateBase = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, templateClassName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1720 templateBase->internalDecl = 0x1;
1722 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName);
1726 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1727 base->internalDecl = 0x1;
1731 _class->internalDecl = 0x0;
1734 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1735 if(base && base->type != 1000 && base->type != 4)
1736 memcpy(_class->data, base->data, offsetClass);
1738 memset(_class->data, 0, offsetClass);
1739 memset((unsigned char *)_class->data + offsetClass, 0, sizeClass);
1741 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1742 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1743 _class->defaultAlignment = base ? base->defaultAlignment : 0;
1746 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->classes, _class);
1750 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1751 struct __ecereNameSpace__ecere__sys__OldLink * deriv = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(&base->derivatives, _class);
1753 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1757 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes, _class);
1759 _class->nameSpace = nameSpace;
1761 struct __ecereNameSpace__ecere__sys__OldLink * t;
1763 for(t = _class->templatized.first; t; t = t->next)
1765 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1767 template->nameSpace = nameSpace;
1770 _class->module = module;
1771 _class->base = base;
1775 struct __ecereNameSpace__ecere__com__Class * sClass;
1777 for(sClass = base; sClass; sClass = sClass->base)
1779 if(sClass->templateClass)
1780 sClass = sClass->templateClass;
1781 numParams += sClass->templateParams.count;
1785 if(_class->templateArgs)
1787 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1789 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1790 _class->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
1791 _class->numParams = numParams;
1792 for(sClass = _class; sClass; sClass = sClass->base)
1794 struct __ecereNameSpace__ecere__com__Class * prevClass;
1795 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1798 if(sClass->templateClass)
1799 sClass = sClass->templateClass;
1800 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
1802 if(prevClass->templateClass)
1803 prevClass = prevClass->templateClass;
1804 id += prevClass->templateParams.count;
1806 if(base->templateArgs)
1808 for(param = sClass->templateParams.first; param; param = param->next)
1810 _class->templateArgs[id] = base->templateArgs[id];
1811 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &_class->templateArgs[id]);
1818 _class->memberID = _class->startMemberID = (base && (type == 0 || type == 5 || type == 1)) ? base->memberID : 0;
1819 if(type == 0 || type == 5)
1820 _class->offset = (base && base->structSize && base->type != 1000) ? base->structSize : ((type == 5) ? 0 : ((force64Bits && inCompiler && fixed) ? 24 : (force32Bits && inCompiler && fixed) ? 12 : structSize_Instance));
1823 if(strstr(name, "ecere::sys::EARHeader") || strstr(name, "AnchorValue") || !strcmp(name, "ecere::com::CustomAVLTree") || !strcmp(name, "ecere::com::Array") || !strcmp(name, "ecere::gui::Window") || !strcmp(name, "ecere::sys::Mutex"))
1827 if(!strcmp(name, "ecere::sys::FileListing"))
1829 size = 3 * (force32Bits ? 4 : 8);
1830 _class->structAlignment = force32Bits ? 4 : 8;
1832 else if(!strcmp(name, "ecere::com::Class"))
1834 else if(!strcmp(name, "ecere::com::ClassProperty"))
1836 else if(!strcmp(name, "ecere::com::NameSpace"))
1838 else if(!strcmp(name, "ecere::sys::BufferedFile"))
1840 else if(!strcmp(name, "ecere::sys::BTNode"))
1842 else if(!strcmp(name, "ecere::sys::StringBTNode"))
1844 else if(!strcmp(name, "ecere::sys::OldList"))
1846 else if(!strcmp(name, "ecere::sys::Item"))
1848 else if(!strcmp(name, "ecere::sys::NamedLink"))
1850 else if(!strcmp(name, "ecere::sys::OldLink"))
1852 else if(!strcmp(name, "ecere::sys::NamedItem"))
1854 else if(!strcmp(name, "ecere::sys::NamedItem64"))
1856 else if(!strcmp(name, "ecere::sys::BinaryTree"))
1858 else if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application && inCompiler)
1860 if(fixed || type == 1)
1867 _class->memberOffset = (base && base->structSize && base->type != 1000) ? base->structSize : 0;
1868 _class->typeSize = _class->structSize = _class->memberOffset + size;
1870 else if(type == 2 || type == 4 || type == 3)
1872 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1875 _class->typeSize = dataTypeClass->typeSize;
1876 _class->structSize = 0;
1878 else if(type == 0 || type == 5)
1880 _class->structSize = _class->offset + size;
1881 _class->typeSize = sizeof(void *);
1883 _class->offsetClass = offsetClass;
1884 _class->sizeClass = totalSizeClass;
1885 _class->Constructor = (void *)Constructor;
1886 _class->Destructor = Destructor;
1887 if(_class->type != 1000)
1888 _class->type = type;
1890 _class->computeSize = 0x1;
1892 _class->computeSize = 0x0;
1893 _class->inheritanceAccess = inheritanceAccess;
1897 _class->base = base = enumBase;
1899 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1901 if(base && base->type != 4)
1904 data->largest = ((struct __ecereNameSpace__ecere__com__EnumClassData *)base->data)->largest;
1907 if(base && base->vTblSize && _class->vTblSize < base->vTblSize)
1909 _class->vTblSize = base->vTblSize;
1910 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
1911 _class->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(int (*)()) * _class->vTblSize);
1912 memcpy(_class->_vTbl, base->_vTbl, sizeof(int (*)()) * _class->vTblSize);
1916 struct __ecereNameSpace__ecere__sys__OldLink * link = (link = __ecereNameSpace__ecere__com__eSystem_New0(structSize_OldLink), link->data = _class, link);
1918 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->base->derivatives, link);
1920 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
1924 return (((void *)0));
1927 static void __ecereNameSpace__ecere__com__DataMember_Free(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
1929 struct __ecereNameSpace__ecere__com__DataMember * member;
1930 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1932 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->name), parentMember->name = 0);
1933 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->dataTypeString), parentMember->dataTypeString = 0);
1934 while((member = parentMember->members.first))
1936 __ecereNameSpace__ecere__com__DataMember_Free(member);
1937 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&parentMember->members, member);
1939 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentMember->membersAlpha)))
1941 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentMember->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1945 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1947 struct __ecereNameSpace__ecere__sys__NamedLink
1949 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
1950 struct __ecereNameSpace__ecere__sys__NamedLink * next;
1953 } __attribute__ ((gcc_struct));
1955 static void __ecereNameSpace__ecere__com__FreeEnumValue(struct __ecereNameSpace__ecere__sys__NamedLink * value)
1957 (__ecereNameSpace__ecere__com__eSystem_Delete(value->name), value->name = 0);
1960 static void __ecereNameSpace__ecere__com__FreeTemplateArg(struct __ecereNameSpace__ecere__com__Class * template, struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, int id)
1965 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1968 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1975 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template)
1977 if(template->templateArgs)
1979 struct __ecereNameSpace__ecere__com__Class * _class;
1981 for(_class = template; _class; _class = _class->base)
1983 struct __ecereNameSpace__ecere__com__Class * prevClass;
1984 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1987 if(_class->templateClass)
1988 _class = _class->templateClass;
1989 for(prevClass = _class->base; prevClass; prevClass = prevClass->base)
1991 if(prevClass->templateClass)
1992 prevClass = prevClass->templateClass;
1993 id += prevClass->templateParams.count;
1995 if(id < template->numParams)
1997 for(param = _class->templateParams.first; param; param = param->next)
2002 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
2005 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
2017 static void __ecereNameSpace__ecere__com__FreeTemplate(struct __ecereNameSpace__ecere__com__Class * template)
2019 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
2021 if(template->nameSpace)
2023 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
2025 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2027 __ecereNameSpace__ecere__com__FreeTemplateArgs(template);
2028 (__ecereNameSpace__ecere__com__eSystem_Delete(template->fullName), template->fullName = 0);
2029 (__ecereNameSpace__ecere__com__eSystem_Delete(template->name), template->name = 0);
2030 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs), template->templateArgs = 0);
2031 (__ecereNameSpace__ecere__com__eSystem_Delete(template->dataTypeString), template->dataTypeString = 0);
2032 while((deriv = template->derivatives.first))
2034 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2035 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&template->derivatives, deriv);
2037 __ecereNameSpace__ecere__com___free(template);
2040 static void __ecereNameSpace__ecere__com__FreeTemplates(struct __ecereNameSpace__ecere__com__Class * _class)
2042 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
2044 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
2046 __ecereNameSpace__ecere__com__FreeTemplates(deriv->data);
2048 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
2049 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
2050 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2051 while((template = _class->templatized.first))
2053 __ecereNameSpace__ecere__com__FreeTemplates(template->data);
2054 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
2055 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
2059 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
2061 void __ecereNameSpace__ecere__com__eClass_Unregister(struct __ecereNameSpace__ecere__com__Class * _class)
2063 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
2064 struct __ecereNameSpace__ecere__com__DataMember * member;
2065 struct __ecereNameSpace__ecere__com__Method * method;
2066 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
2067 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
2068 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2070 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
2071 __ecereNameSpace__ecere__com__FreeTemplates(_class);
2072 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
2073 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
2074 while((template = _class->templatized.first))
2076 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
2077 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
2079 while((member = _class->membersAndProperties.first))
2081 if(!member->isProperty && (member->type == 1 || member->type == 2))
2082 __ecereNameSpace__ecere__com__DataMember_Free(member);
2083 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
2084 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
2085 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, member);
2087 while((member = _class->conversions.first))
2089 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
2090 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
2091 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->conversions, member);
2093 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->prop)))
2095 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
2097 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->members)))
2099 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
2101 while((classProp = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->classProperties)))
2103 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->name), classProp->name = 0);
2104 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->dataTypeString), classProp->dataTypeString = 0);
2105 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)classProp);
2107 while((method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods)))
2109 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
2110 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
2111 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
2113 if(_class->type == 4)
2115 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
2117 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&data->values, (void *)__ecereNameSpace__ecere__com__FreeEnumValue);
2119 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->delayedCPValues, (((void *)0)));
2120 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->selfWatchers, (((void *)0)));
2123 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
2125 for(deriv = base->derivatives.first; deriv; deriv = deriv->next)
2127 if(deriv->data == _class)
2131 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
2133 while((deriv = _class->derivatives.first))
2135 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2136 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->derivatives, deriv);
2138 if(_class->nameSpace)
2140 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
2142 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2144 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->name), _class->name = 0);
2145 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
2146 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2147 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->data), _class->data = 0);
2148 while((param = _class->templateParams.first))
2153 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.dataTypeString), param->defaultArg.dataTypeString = 0);
2156 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.memberString), param->defaultArg.memberString = 0);
2161 if(param->type != 1)
2162 (__ecereNameSpace__ecere__com__eSystem_Delete(param->dataTypeString), param->dataTypeString = 0);
2163 (__ecereNameSpace__ecere__com__eSystem_Delete(param->name), param->name = 0);
2164 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templateParams, param);
2166 __ecereNameSpace__ecere__com___free(_class);
2169 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, uintptr_t key);
2171 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__ScanNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2173 struct __ecereNameSpace__ecere__sys__BinaryTree * tree = (struct __ecereNameSpace__ecere__sys__BinaryTree *)((unsigned char *)nameSpace + (unsigned int)listOffset);
2174 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find((&*tree), (uintptr_t)name);
2175 struct __ecereNameSpace__ecere__com__NameSpace * child;
2179 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)))
2181 link = __ecereNameSpace__ecere__com__ScanNameSpace(child, name, listOffset);
2189 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2195 for(c = 0; (ch = name[c]); c++)
2201 if(level == 0 && (ch == '.' || (ch == ':' && name[c + 1] == ':')))
2203 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
2204 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
2206 memcpy(spaceName, name + start, c - start);
2207 spaceName[c - start] = '\0';
2208 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&nameSpace->nameSpaces, spaceName);
2209 __ecereNameSpace__ecere__com___free(spaceName);
2211 return (((void *)0));
2212 nameSpace = newSpace;
2213 if(level == 0 && ch == ':')
2220 return __ecereNameSpace__ecere__com__ScanNameSpace(nameSpace, name + start, listOffset);
2222 return (((void *)0));
2225 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchModule(struct __ecereNameSpace__ecere__com__Instance * module, char * name, void * listOffset, unsigned int searchPrivate)
2227 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2228 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2232 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace, name, listOffset);
2236 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace, name, listOffset);
2239 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.first; subModule; subModule = subModule->next)
2241 if(searchPrivate || subModule->importMode == 1)
2243 link = __ecereNameSpace__ecere__com__SearchModule(subModule->module, name, listOffset, 0x0);
2248 return (((void *)0));
2251 extern int isspace(int c);
2253 long long __ecereNameSpace__ecere__com___strtoi64(char * string, char ** endString, int base)
2255 long long value = 0;
2260 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2272 if(ch == '0' && string[c + 1] == 'x')
2285 for(; (ch = string[c]); c++)
2287 if(ch >= '0' && ch <= '9')
2289 else if(ch >= 'a' && ch <= 'z')
2291 else if(ch >= 'A' && ch <= 'Z')
2296 *endString = string + c;
2307 *endString = string + c;
2311 return sign * value;
2314 uint64 __ecereNameSpace__ecere__com___strtoui64(char * string, char ** endString, int base)
2321 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2333 if(ch == '0' && string[c + 1] == 'x')
2346 for(; (ch = string[c]); c++)
2348 if(ch >= '0' && ch <= '9')
2350 else if(ch >= 'a' && ch <= 'z')
2352 else if(ch >= 'A' && ch <= 'Z')
2357 *endString = string + c;
2368 *endString = string + c;
2372 return sign * value;
2375 extern char * strcat(char * , const char * );
2377 extern size_t strlen(const char * );
2379 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
2383 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2385 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2388 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2392 char noTemplateName[1024];
2393 char * templateParams = strchr(name, '<');
2397 strncpy(noTemplateName, name, templateParams - name);
2398 noTemplateName[templateParams - name] = '\0';
2401 strcpy(noTemplateName, name);
2402 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2404 link = __ecereNameSpace__ecere__com__SearchModule(module, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2407 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
2408 struct __ecereNameSpace__ecere__com__Class * templatedClass = (((void *)0));
2409 char className[1024];
2411 strcpy(className, _class->fullName);
2412 strcat(className, templateParams);
2413 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
2416 link = __ecereNameSpace__ecere__com__SearchModule(module, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2419 if(_class && templateParams)
2421 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct1 =
2425 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct0 =
2430 templatedClass = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Class);
2431 *templatedClass = *_class;
2432 templatedClass->templateClass = _class;
2433 templatedClass->fullName = __ecereNameSpace__ecere__sys__CopyString(className);
2434 templatedClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(_class->dataTypeString);
2435 templatedClass->name = __ecereNameSpace__ecere__sys__CopyString(templatedClass->fullName + strlen(_class->fullName) - strlen(_class->name));
2436 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*templatedClass->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
2437 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
2439 __ecereInstance1->name = templatedClass->name, __ecereInstance1->data = templatedClass, __ecereInstance1;
2441 templatedClass->templateArgs = (((void *)0));
2442 templatedClass->numParams = 0;
2443 templatedClass->derivatives = __simpleStruct0;
2444 templatedClass->templatized = __simpleStruct1;
2445 __ecereNameSpace__ecere__com__ComputeClassParameters(templatedClass, templateParams, module);
2446 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templatized, __extension__ ({
2447 struct __ecereNameSpace__ecere__sys__OldLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_OldLink);
2449 __ecereInstance1->data = templatedClass, __ecereInstance1;
2452 return templatedClass;
2456 return (((void *)0));
2459 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg)
2464 arg->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(arg->dataTypeString);
2469 arg->memberString = __ecereNameSpace__ecere__sys__CopyString(arg->memberString);
2474 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
2476 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
2478 extern double strtod(char * , char * * );
2480 extern int sprintf(char * , char * , ...);
2482 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);
2484 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2486 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2488 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule)
2491 char * nextParamStart = templateParams ? (templateParams + 1) : (((void *)0));
2492 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam = (((void *)0));
2493 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0)), * sClass;
2496 struct __ecereNameSpace__ecere__com__Class * _class = templatedClass->templateClass ? templatedClass->templateClass : templatedClass;
2498 for(sClass = _class; sClass; sClass = sClass->base)
2500 if(sClass->templateClass)
2501 sClass = sClass->templateClass;
2502 numParams += sClass->templateParams.count;
2504 if(templatedClass->templateArgs)
2505 __ecereNameSpace__ecere__com__FreeTemplateArgs(templatedClass);
2506 (__ecereNameSpace__ecere__com__eSystem_Delete(templatedClass->templateArgs), templatedClass->templateArgs = 0);
2507 templatedClass->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
2508 templatedClass->numParams = numParams;
2509 if(_class != templatedClass)
2512 if(templatedClass->base && templatedClass->base->templateArgs && _class == templatedClass)
2514 struct __ecereNameSpace__ecere__com__Class * sClass;
2516 memcpy(templatedClass->templateArgs, templatedClass->base->templateArgs, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams - templatedClass->templateParams.count));
2517 for(sClass = templatedClass->base; sClass; sClass = sClass->base)
2519 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2520 struct __ecereNameSpace__ecere__com__Class * prevClass;
2523 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
2525 if(prevClass->templateClass)
2526 prevClass = prevClass->templateClass;
2527 id += prevClass->templateParams.count;
2529 if(sClass->templateClass)
2530 sClass = sClass->templateClass;
2531 for(param = sClass->templateParams.first; param; param = param->next)
2532 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[id++]);
2535 while(nextParamStart)
2537 char * paramStart = nextParamStart;
2541 while(*paramStart == ' ')
2543 paramEnd = paramStart;
2544 while((ch = *paramEnd, ch && (level > 0 || (ch != '>' && ch != ','))))
2552 nextParamStart = (ch == ',') ? (paramEnd + 1) : (((void *)0));
2553 while(*paramEnd == ' ')
2555 if(paramEnd > paramStart)
2557 char * ptr, * equal = (((void *)0));
2559 for(ptr = paramStart; ptr <= paramEnd; ptr++)
2569 char * end = equal - 1;
2574 strncpy(ident, paramStart, end + 1 - paramStart);
2575 ident[end + 1 - paramStart] = (char)0;
2576 for(sClass = _class; sClass; sClass = sClass->base)
2578 if(sClass->templateClass)
2579 sClass = sClass->templateClass;
2580 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
2582 if(!strcmp(curParam->name, ident))
2587 struct __ecereNameSpace__ecere__com__Class * nextClass;
2588 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prevParam;
2591 for(prevParam = curParam->prev; prevParam; prevParam = prevParam->prev)
2593 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2595 if(nextClass->templateClass)
2596 nextClass = nextClass->templateClass;
2597 curParamID += nextClass->templateParams.count;
2608 curParam = curParam->next;
2613 for(sClass = lastClass ? lastClass->base : _class; sClass; sClass = sClass->base)
2615 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2618 if(sClass->templateClass)
2619 sClass = sClass->templateClass;
2620 for(param = sClass->templateParams.first; param; param = param->next, curParamID++)
2627 struct __ecereNameSpace__ecere__com__Class * nextClass;
2629 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2631 if(nextClass->templateClass)
2632 nextClass = nextClass->templateClass;
2633 curParamID += nextClass->templateParams.count;
2643 struct __ecereNameSpace__ecere__com__ClassTemplateArgument argument =
2652 while(*equal == ' ')
2654 memcpy(value, equal, paramEnd - equal);
2655 value[paramEnd - equal] = (char)0;
2659 memcpy(value, paramStart, paramEnd - paramStart);
2660 value[paramEnd - paramStart] = (char)0;
2662 __ecereNameSpace__ecere__sys__TrimRSpaces(value, value);
2663 switch(curParam->type)
2666 argument.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value);
2667 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, value);
2668 if(!argument.dataTypeClass)
2669 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application, value);
2670 if(!argument.dataTypeClass)
2671 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, value);
2675 struct __ecereNameSpace__ecere__com__Class * expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, curParam->dataTypeString);
2678 expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application, curParam->dataTypeString);
2681 ((unsigned int (*)(void *, void *, const char *))(void *)expClass->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(expClass, &argument.expression, value);
2683 else if(value[0] == '\"')
2685 char * endQuote = value + strlen(value) - 1;
2687 if(*endQuote != '\"')
2690 argument.expression.p = __ecereNameSpace__ecere__sys__CopyString(value + 1);
2692 else if(value[0] == '\'')
2695 unsigned int ch = __ecereNameSpace__ecere__sys__UTF8GetChar(value + 1, &nb);
2697 argument.expression.ui = ch;
2699 else if(!strcmp(curParam->dataTypeString, "uint"))
2701 argument.expression.ui = strtoul(value, (((void *)0)), 0);
2703 else if(!strcmp(curParam->dataTypeString, "char"))
2705 argument.expression.c = (char)strtol(value, (((void *)0)), 0);
2707 else if(!strcmp(curParam->dataTypeString, "byte"))
2709 argument.expression.uc = (unsigned char)strtoul(value, (((void *)0)), 0);
2711 else if(!strcmp(curParam->dataTypeString, "short"))
2713 argument.expression.s = (short)strtol(value, (((void *)0)), 0);
2715 else if(!strcmp(curParam->dataTypeString, "uint16"))
2717 argument.expression.us = (unsigned short)strtoul(value, (((void *)0)), 0);
2719 else if(!strcmp(curParam->dataTypeString, "int64"))
2721 argument.expression.i64 = __ecereNameSpace__ecere__com___strtoi64(value, (((void *)0)), 0);
2723 else if(!strcmp(curParam->dataTypeString, "uint64"))
2725 argument.expression.ui64 = __ecereNameSpace__ecere__com___strtoui64(value, (((void *)0)), 0);
2727 else if(!strcmp(curParam->dataTypeString, "float"))
2729 argument.expression.f = (float)strtod(value, (((void *)0)));
2731 else if(!strcmp(curParam->dataTypeString, "double"))
2733 argument.expression.d = strtod(value, (((void *)0)));
2737 argument.expression.i = strtol(value, (((void *)0)), 0);
2742 argument.memberString = __ecereNameSpace__ecere__sys__CopyString(value);
2745 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, curParam, curParamID);
2746 templatedClass->templateArgs[curParamID] = argument;
2750 if(templatedClass == _class)
2752 struct __ecereNameSpace__ecere__com__Class * sClass = _class;
2754 struct __ecereNameSpace__ecere__com__Class * nextClass;
2755 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2757 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2759 if(nextClass->templateClass)
2760 nextClass = nextClass->templateClass;
2761 curParamID += nextClass->templateParams.count;
2763 for(param = sClass->templateParams.first; param; param = param->next)
2765 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2767 templatedClass->templateArgs[curParamID] = param->defaultArg;
2768 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2769 if(param->type == 0 && param->defaultArg.dataTypeString)
2771 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2772 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2773 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, param->defaultArg.dataTypeString);
2774 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2775 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2781 if(templatedClass->base && templatedClass->base->templateArgs && numParams - _class->templateParams.count)
2783 int c = numParams - _class->templateParams.count - 1;
2785 for(sClass = _class->base; sClass; sClass = sClass->base)
2787 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2789 if(sClass->templateClass)
2790 sClass = sClass->templateClass;
2791 for(param = sClass->templateParams.last; param; param = param->prev)
2793 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2794 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * baseArg = &templatedClass->base->templateArgs[c];
2796 if(!(*arg).dataTypeString)
2798 *arg = templatedClass->base->templateArgs[c];
2799 __ecereNameSpace__ecere__com__CopyTemplateArg(param, arg);
2800 if(param->type == 0)
2802 if((*arg).dataTypeClass && strchr((*arg).dataTypeString, '<') && (*arg).dataTypeClass->templateArgs)
2804 struct __ecereNameSpace__ecere__com__Class * expClass = (*arg).dataTypeClass;
2805 struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0));
2808 char templateString[1024];
2810 sprintf(templateString, "%s<", expClass->templateClass->fullName);
2811 for(cClass = expClass; cClass; cClass = cClass->base)
2814 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2816 for(param = cClass->templateParams.first; param; param = param->next)
2819 struct __ecereNameSpace__ecere__com__Class * sClass;
2820 struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg;
2822 for(sClass = expClass->base; sClass; sClass = sClass->base)
2823 id += sClass->templateParams.count;
2824 arg = expClass->templateArgs[id];
2826 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2827 int p = numParams - _class->templateParams.count;
2829 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2831 if(cParam->type == 0 && arg.dataTypeString && !strcmp(cParam->name, arg.dataTypeString))
2833 arg.dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2834 arg.dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2851 strcat(argument, arg.member->name);
2856 if(arg.dataTypeString)
2857 strcat(argument, arg.dataTypeString);
2864 strcat(templateString, ", ");
2865 if(lastParam != p - 1)
2867 strcat(templateString, param->name);
2868 strcat(templateString, " = ");
2870 strcat(templateString, argument);
2879 int len = strlen(templateString);
2881 if(templateString[len - 1] == '>')
2882 templateString[len++] = ' ';
2883 templateString[len++] = '>';
2884 templateString[len++] = '\0';
2886 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2887 (*arg).dataTypeString = __ecereNameSpace__ecere__sys__CopyString(templateString);
2888 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, templateString);
2889 if(!(*arg).dataTypeClass)
2890 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, templateString);
2894 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2895 int p = numParams - _class->templateParams.count;
2897 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2899 if(cParam->type == 0 && (*baseArg).dataTypeString && !strcmp(cParam->name, (*baseArg).dataTypeString))
2901 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2902 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2903 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2904 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2916 struct __ecereNameSpace__ecere__com__Class * sClass;
2918 for(sClass = _class; sClass; sClass = sClass->base)
2921 struct __ecereNameSpace__ecere__com__Class * nextClass;
2922 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2924 if(sClass->templateClass)
2925 sClass = sClass->templateClass;
2926 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2928 if(nextClass->templateClass)
2929 nextClass = nextClass->templateClass;
2930 curParamID += nextClass->templateParams.count;
2932 for(param = sClass->templateParams.first; param; param = param->next)
2934 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2936 templatedClass->templateArgs[curParamID] = param->defaultArg;
2937 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2938 if(param->type == 0 && param->defaultArg.dataTypeString)
2940 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2941 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2942 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, param->defaultArg.dataTypeString);
2943 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2944 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2952 int c = numParams - 1;
2954 for(sClass = _class; sClass; sClass = sClass->base)
2956 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2958 if(sClass->templateClass)
2959 sClass = sClass->templateClass;
2960 for(param = sClass->templateParams.last; param; param = param->prev)
2962 if(param->type == 0)
2964 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2965 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2966 struct __ecereNameSpace__ecere__com__Class * dClass;
2967 int p = numParams - 1;
2969 for(dClass = _class; dClass; dClass = dClass->base)
2971 if(dClass->templateClass)
2972 dClass = dClass->templateClass;
2973 for(cParam = dClass->templateParams.last; cParam; cParam = cParam->prev, p--)
2975 if(cParam->type == 0 && (*arg).dataTypeString && !strcmp(cParam->name, (*arg).dataTypeString))
2977 if(templatedClass->templateArgs[p].dataTypeString && c != p)
2979 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2980 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2981 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2982 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2993 struct __ecereNameSpace__ecere__com__Class * tClass;
2994 int c = numParams - 1;
2996 for(tClass = _class; tClass; tClass = tClass->base)
2998 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
3000 if(tClass->templateClass)
3001 tClass = tClass->templateClass;
3002 for(param = tClass->templateParams.last; param; param = param->prev)
3004 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
3006 if(param->type == 1 && (*arg).memberString)
3008 struct __ecereNameSpace__ecere__com__Class * memberClass = templatedClass;
3009 char * memberString = (*arg).memberString;
3010 char * colon = strstr(memberString, "::");
3011 char * memberName = memberString;
3014 memberName = colon + 2;
3017 memberString = param->defaultArg.memberString;
3018 colon = memberString ? strstr(memberString, "::") : (((void *)0));
3022 char className[1024];
3023 struct __ecereNameSpace__ecere__com__Class * sClass;
3025 memcpy(className, memberString, colon - memberString);
3026 className[colon - memberString] = '\0';
3027 for(sClass = _class; sClass; sClass = sClass->base)
3029 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
3030 struct __ecereNameSpace__ecere__com__Class * nextClass;
3033 if(sClass->templateClass)
3034 sClass = sClass->templateClass;
3035 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
3037 if(nextClass->templateClass)
3038 nextClass = nextClass->templateClass;
3039 id += nextClass->templateParams.count;
3041 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
3043 if(cParam->type == 0 && !strcmp(cParam->name, className) && templatedClass->templateArgs[id].dataTypeString)
3045 strcpy(className, templatedClass->templateArgs[id].dataTypeString);
3050 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, className);
3052 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, className);
3054 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, className);
3058 switch(param->memberType)
3061 (*arg).member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
3064 (*arg).method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
3067 (*arg).prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
3078 unsigned int __ecereNameSpace__ecere__com__DefaultFunction()
3083 unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3085 if(!_class && !from)
3087 if(_class && from && (_class->templateClass || from->templateClass))
3089 if(__ecereNameSpace__ecere__com__eClass_IsDerived(_class->templateClass ? _class->templateClass : _class, from->templateClass ? from->templateClass : from))
3091 if(!from->templateClass)
3093 else if(!_class->templateClass && _class == from->templateClass)
3097 struct __ecereNameSpace__ecere__com__Class * sClass;
3099 for(sClass = from; sClass; sClass = sClass->base)
3101 if(sClass->templateParams.first)
3103 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
3104 struct __ecereNameSpace__ecere__com__Class * nextClass;
3107 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
3108 p += nextClass->templateParams.count;
3109 for(param = sClass->templateParams.first; param; param = param->next, p++)
3111 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &_class->templateArgs[p];
3112 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * fArg = &from->templateArgs[p];
3114 if(param->type == 0)
3116 if((*arg).dataTypeString != (*fArg).dataTypeString && (*arg).dataTypeString && (*fArg).dataTypeString && strcmp((*arg).dataTypeString, (*fArg).dataTypeString))
3119 else if(param->type == 1)
3121 if((*arg).member != (*fArg).member)
3124 else if(param->type == 2)
3126 if((*arg).expression.ui64 != (*fArg).expression.ui64)
3140 for(; _class && from; _class = _class->base)
3142 if(_class == from || _class->templateClass == from || ((_class->type == 1000 || (_class->type == 0 && _class->isInstanceClass)) && from->name && !strcmp(_class->name, from->name)))
3149 static void __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(struct __ecereNameSpace__ecere__com__Class * base, char * name, int vid, void * origFunction, char * type)
3151 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3153 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3155 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3156 struct __ecereNameSpace__ecere__com__Method * method, * next;
3157 void * function = origFunction;
3160 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3161 memmove(_class->_vTbl + vid + 1, _class->_vTbl + vid, (_class->vTblSize - vid - 1) * sizeof(void *));
3162 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3165 if(method->function)
3166 function = method->function;
3169 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
3170 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3171 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3175 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3177 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type);
3178 method->_class = base;
3181 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
3183 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
3184 if(method->type == 1)
3187 _class->_vTbl[vid] = function;
3189 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3191 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3193 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3195 template->_vTbl = _class->_vTbl;
3198 if(_class->derivatives.first || _class->templatized.first)
3199 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, vid, function, type);
3202 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3204 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
3206 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3208 template->_vTbl = base->_vTbl;
3209 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(template, name, vid, origFunction, type);
3214 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3218 struct __ecereNameSpace__ecere__com__Class * base;
3220 for(base = _class; base; base = base->base)
3222 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3226 if(method->type == 1)
3228 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3229 void * oldFunction = _class->_vTbl[method->vid];
3231 if(method->vid >= _class->vTblSize)
3232 printf("error: virtual methods overriding failure\n");
3234 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3235 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3237 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3239 if(derivClass->_vTbl[method->vid] == oldFunction)
3240 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3243 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3245 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3247 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3249 for(deriv = template->derivatives.first; deriv; deriv = deriv->next)
3251 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3253 if(derivClass->_vTbl[method->vid] == oldFunction)
3254 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3265 base = (((void *)0));
3273 struct __ecereNameSpace__ecere__com__Method * method = (method = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Method), method->name = __ecereNameSpace__ecere__sys__CopyString(name), method->function = function ? function : __ecereNameSpace__ecere__com__DefaultFunction, method->_class = _class, method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), method->memberAccess = declMode, method);
3275 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3279 return (((void *)0));
3282 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3286 struct __ecereNameSpace__ecere__com__Class * base;
3288 for(base = _class; base; base = base->base)
3290 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3294 if(method->type == 1)
3296 if(method->vid >= _class->vTblSize)
3297 printf("error: virtual methods overriding failure\n");
3299 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3302 base = (((void *)0));
3308 struct __ecereNameSpace__ecere__com__Method * method = (method = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Method), method->name = __ecereNameSpace__ecere__sys__CopyString(name), method->function = function ? function : __ecereNameSpace__ecere__com__DefaultFunction, method->type = 1, method->_class = _class, method->vid = _class->vTblSize++, method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), method->memberAccess = declMode, method);
3310 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3311 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3312 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3313 if(_class->derivatives.first || _class->templatized.first)
3314 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, method->vid, function ? function : (void *)__ecereNameSpace__ecere__com__DefaultFunction, type);
3318 return (((void *)0));
3321 static void __ecereNameSpace__ecere__com__FixDerivativeProperty(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Property * _property)
3323 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3325 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3327 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3328 struct __ecereNameSpace__ecere__com__Property * prop;
3329 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
3334 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
3336 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
3338 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
3340 if(watcher->_property == prop)
3341 watcher->_property = _property;
3343 _property->selfWatchable = 0x1;
3344 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
3345 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
3346 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
3347 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
3350 for(prop = _class->membersAndProperties.first; prop; prop = prop->next)
3353 _class->startMemberID++;
3354 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3358 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)
3360 struct __ecereNameSpace__ecere__com__Property * _property = (((void *)0));
3364 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name ? name : dataType);
3367 _property = link->data;
3370 _property = __extension__ ({
3371 struct __ecereNameSpace__ecere__com__Property * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Property);
3373 __ecereInstance1->isProperty = 0x1, __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name ? name : dataType), __ecereInstance1->id = (name && (setStmt || getStmt || dataType)) ? _class->memberID++ : 0, __ecereInstance1->Set = setStmt, __ecereInstance1->Get = getStmt, __ecereInstance1->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataType), __ecereInstance1->_class = _class, __ecereInstance1->compiled = 0x1, __ecereInstance1->conversion = name ? 0x0 : 0x1, __ecereInstance1->memberAccess = declMode, __ecereInstance1;
3376 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, _property);
3378 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->conversions, _property);
3379 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
3380 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
3382 __ecereInstance1->name = _property->name, __ecereInstance1->data = _property, __ecereInstance1;
3384 if(!_property->conversion)
3386 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3393 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink64;
3395 struct __ecereNameSpace__ecere__sys__NamedLink64
3397 struct __ecereNameSpace__ecere__sys__NamedLink64 * prev;
3398 struct __ecereNameSpace__ecere__sys__NamedLink64 * next;
3401 } __attribute__ ((gcc_struct));
3403 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property)
3405 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3406 struct __ecereNameSpace__ecere__sys__NamedLink64 * value, * next;
3408 for(value = _class->delayedCPValues.first; value; value = next)
3411 if(!strcmp(value->name, _property->name))
3413 _property->Set(_class, value->data);
3414 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->delayedCPValues, value);
3417 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3419 __ecereNameSpace__ecere__com__SetDelayedCPValues(deriv->data, _property);
3423 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt)
3425 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name))
3427 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (_property = __ecereNameSpace__ecere__com__eSystem_New0(structSize_ClassProperty), _property->name = __ecereNameSpace__ecere__sys__CopyString(name), _property->Set = setStmt, _property->Get = getStmt, _property->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataType), _property);
3429 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)_property);
3430 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
3433 return (((void *)0));
3436 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3438 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (((void *)0));
3442 struct __ecereNameSpace__ecere__com__Class * origClass = _class;
3444 for(; _class; _class = _class->base)
3446 _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name);
3450 if(!_property && origClass->type == 4)
3452 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(origClass->module, "enum");
3454 _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(enumClass, name);
3460 long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3462 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3464 if(_property && _property->Get && _property->Get != (void *)1)
3466 long long result = _property->Get(_class);
3473 void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, long long value)
3475 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3480 ((void (*)(void *, long long))_property->Set)(_class, value);
3484 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->delayedCPValues, __extension__ ({
3485 struct __ecereNameSpace__ecere__sys__NamedLink64 * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink64);
3487 __ecereInstance1->name = name, __ecereInstance1->data = value, __ecereInstance1;
3492 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3496 for(; _class; _class = _class->base)
3498 struct __ecereNameSpace__ecere__com__Method * method;
3500 if(_class->templateClass)
3501 _class = _class->templateClass;
3502 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3503 if(method && (method->memberAccess == 1 || _class->module == module || !method->dataTypeString))
3505 if(!method->dataTypeString)
3507 if(_class->module != module)
3509 if(method->memberAccess == 1)
3510 module = _class->module;
3513 return (((void *)0));
3522 if(_class->inheritanceAccess == 2 && _class->module != module)
3526 return (((void *)0));
3529 static unsigned int __ecereNameSpace__ecere__com__ConstructInstance(void * instance, struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3531 if(_class->templateClass)
3532 _class = _class->templateClass;
3533 if(_class->base && from != _class->base)
3535 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class->base, from))
3538 if(_class->Initialize)
3540 void (* Initialize)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)_class->Initialize;
3542 _class->Initialize = (((void *)0));
3543 Initialize(_class->module);
3545 if(_class->Constructor)
3547 if(!_class->Constructor(instance))
3549 for(; _class; _class = _class->base)
3551 if(_class->templateClass)
3552 _class = _class->templateClass;
3553 if(_class->Destructor)
3554 _class->Destructor(instance);
3559 (_class->templateClass ? _class->templateClass : _class)->count++;
3563 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class)
3565 struct __ecereNameSpace__ecere__com__Instance * instance = (((void *)0));
3570 int size = _class->structSize;
3571 int flags = (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application + structSize_Module)))->isGUIApp;
3572 unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
3573 unsigned int force32Bits = (flags & 4) ? 0x1 : 0x0;
3575 if(force32Bits && inCompiler)
3577 if(!strcmp(_class->name, "Module"))
3579 else if(_class->templateClass && !strcmp(_class->templateClass->name, "Map"))
3584 instance = __ecereNameSpace__ecere__com___calloc(1, size);
3586 if(_class->type == 0)
3588 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3589 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3591 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, (((void *)0))))
3593 __ecereNameSpace__ecere__com___free(instance);
3594 instance = (((void *)0));
3600 void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance ** instancePtr, struct __ecereNameSpace__ecere__com__Class * _class)
3602 if(_class && instancePtr && *instancePtr)
3604 unsigned int wasApp = 0x0, wasGuiApp = 0x0;
3605 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eSystem_Renew(*instancePtr, sizeof(unsigned char) * (_class->structSize));
3606 struct __ecereNameSpace__ecere__com__Class * fromClass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3608 *instancePtr = instance;
3609 memset(((unsigned char *)instance) + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->structSize, 0, _class->structSize - ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->structSize);
3610 if((wasApp = !strcmp(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->name, "Application")) || (wasGuiApp = !strcmp(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->name, "GuiApplication")))
3612 struct __ecereNameSpace__ecere__com__Instance * module;
3613 struct __ecereNameSpace__ecere__com__Instance * app = (struct __ecereNameSpace__ecere__com__Instance *)instance;
3614 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3615 struct __ecereNameSpace__ecere__com__Class * _class;
3616 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
3618 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
3619 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = app;
3620 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3622 struct __ecereNameSpace__ecere__sys__OldLink * t;
3624 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3625 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3627 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3629 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3632 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3634 struct __ecereNameSpace__ecere__sys__OldLink * t;
3636 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3637 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3639 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3641 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3644 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3645 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3646 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3647 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3648 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3649 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3650 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3651 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3652 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3653 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3654 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3655 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3656 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.classes); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3658 struct __ecereNameSpace__ecere__sys__OldLink * t;
3660 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3661 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3663 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3665 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3668 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.defines); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3669 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3670 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3671 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3672 for(link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions); link; link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)link)))
3673 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3674 for(nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.nameSpaces); nameSpace; nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace)))
3675 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3676 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->classes.first; _class; _class = _class->next)
3678 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3680 _class->module = (struct __ecereNameSpace__ecere__com__Instance *)app;
3681 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3683 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3685 template->module = _class->module;
3688 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
3690 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes.first; _class; _class = _class->next)
3692 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3694 _class->module = module;
3695 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3697 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3699 template->module = _class->module;
3703 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->application = app;
3706 struct __ecereNameSpace__ecere__com__Class * base;
3708 for(base = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; base && base->type == 0 && base->count; base = base->base)
3709 (base->templateClass ? base->templateClass : base)->count--;
3711 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3712 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3713 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, fromClass))
3715 __ecereNameSpace__ecere__com___free(instance);
3716 *instancePtr = (((void *)0));
3721 void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance)
3725 struct __ecereNameSpace__ecere__com__Class * _class, * base;
3726 unsigned int ownVtbl;
3728 ownVtbl = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl != ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl;
3729 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3731 if(_class->templateClass)
3732 _class = _class->templateClass;
3733 if(_class->destructionWatchOffset)
3735 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
3736 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
3738 for(watcher = (*watchers).first; watcher; watcher = next)
3740 next = watcher->next;
3741 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*watchers), watcher);
3742 watcher->callback(watcher->object, instance);
3743 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
3746 base = _class->base;
3747 if(base && (base->type == 1000 || base->isInstanceClass))
3748 base = (((void *)0));
3749 if(_class->Destructor)
3750 _class->Destructor(instance);
3752 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3754 if(_class->templateClass)
3755 _class = _class->templateClass;
3756 base = _class->base;
3757 (_class->templateClass ? _class->templateClass : _class)->count--;
3758 if(_class->type == 0 && !_class->count && !_class->module)
3760 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
3765 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl), ((struct __ecereNameSpace__ecere__com__Instance * )(char * )instance)->_vTbl = 0);
3767 __ecereNameSpace__ecere__com___free(instance);
3771 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3775 for(; _class; _class = _class->base)
3777 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3779 if(_class->templateClass)
3780 _class = _class->templateClass;
3781 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name);
3784 struct __ecereNameSpace__ecere__com__Property * _property = (struct __ecereNameSpace__ecere__com__Property *)link->data;
3786 if(_property->memberAccess == 1 || _class->module == module || !_property->dataTypeString)
3788 if(!_property->dataTypeString)
3790 if(_class->module != module)
3792 if(_property->memberAccess == 1)
3793 module = _class->module;
3796 return (((void *)0));
3806 if(_class->inheritanceAccess == 2 && _class->module != module)
3810 return (((void *)0));
3813 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)
3815 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3816 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3818 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(alist, name);
3821 dataMember = link->data;
3822 if(dataMember->type == 0 && (dataMember->memberAccess == 1 || searchPrivate || !dataMember->dataTypeString))
3825 *offset += dataMember->offset;
3827 *id = dataMember->id;
3830 return (((void *)0));
3832 for(dataMember = list->first; dataMember; dataMember = dataMember->next)
3834 if(!dataMember->isProperty && (dataMember->memberAccess == 1 || searchPrivate) && !dataMember->name && (dataMember->type == 1 || dataMember->type == 2))
3836 struct __ecereNameSpace__ecere__com__DataMember * childMember;
3838 if(subMemberStackPos)
3839 subMemberStack[(*subMemberStackPos)++] = dataMember;
3840 childMember = __ecereNameSpace__ecere__com__FindDataMember(&dataMember->members, &dataMember->membersAlpha, name, offset, id, searchPrivate, subMemberStack, subMemberStackPos);
3844 *offset += dataMember->offset;
3846 *id += dataMember->id;
3849 if(subMemberStackPos)
3850 (*subMemberStackPos)--;
3853 return (((void *)0));
3856 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)
3858 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3860 if(subMemberStackPos)
3861 *subMemberStackPos = 0;
3864 for(; _class; _class = _class->base)
3866 if(_class->templateClass)
3867 _class = _class->templateClass;
3868 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3871 if(!dataMember->dataTypeString)
3873 if(_class->module != module)
3875 if(dataMember->memberAccess == 1)
3876 module = _class->module;
3879 return (((void *)0));
3882 dataMember = (((void *)0));
3886 dataMember->_class = _class->templateClass ? _class->templateClass : _class;
3890 if(_class->inheritanceAccess == 2 && _class->module != module)
3897 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)
3899 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3901 if(subMemberStackPos)
3902 *subMemberStackPos = 0;
3907 for(; _class; _class = _class->base)
3909 if(_class->templateClass)
3910 _class = _class->templateClass;
3911 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, offset, (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3914 if(!dataMember->dataTypeString)
3916 if(_class->module != module)
3918 if(dataMember->memberAccess == 1)
3919 module = _class->module;
3922 return (((void *)0));
3925 dataMember = (((void *)0));
3929 dataMember->_class = _class;
3933 if(_class->inheritanceAccess == 2 && _class->module != module)
3940 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)
3942 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3944 if(subMemberStackPos)
3945 *subMemberStackPos = 0;
3948 for(; _class; _class = _class->base)
3950 if(_class->templateClass)
3951 _class = _class->templateClass;
3952 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), id, _class->module == module, subMemberStack, subMemberStackPos);
3955 if(!dataMember->dataTypeString)
3957 if(_class->module != module)
3959 if(dataMember->memberAccess == 1)
3960 module = _class->module;
3963 return (((void *)0));
3966 dataMember = (((void *)0));
3970 dataMember->_class = _class;
3974 if(_class->inheritanceAccess == 2 && _class->module != module)
3981 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)
3985 *curMember = (*curMember)->next;
3986 if(subMemberStackPos && *subMemberStackPos > 0 && subMemberStack[*subMemberStackPos - 1]->type == 1)
3988 *curMember = subMemberStack[--(*subMemberStackPos)];
3989 *curMember = (*curMember)->next;
3991 if(subMemberStackPos && *subMemberStackPos > 0)
3993 while(*curMember && ((*curMember)->memberAccess == 2))
3994 *curMember = (*curMember)->next;
3997 while(*curMember && (*curMember)->name)
3999 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
4002 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
4003 if(dataMember && dataMember->memberAccess != 2)
4005 *curMember = dataMember;
4009 *curMember = (*curMember)->next;
4011 if(subMemberStackPos)
4013 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
4015 subMemberStack[(*subMemberStackPos)++] = *curMember;
4016 *curMember = (*curMember)->members.first;
4017 while(*curMember && ((*curMember)->memberAccess == 2))
4018 *curMember = (*curMember)->next;
4026 if(subMemberStackPos && *subMemberStackPos)
4028 *curMember = subMemberStack[--(*subMemberStackPos)];
4029 *curMember = (*curMember)->next;
4033 struct __ecereNameSpace__ecere__com__Class * lastCurClass = *curClass;
4035 if(*curClass == _class)
4037 for(*curClass = _class; (*curClass)->base != lastCurClass && (*curClass)->base->type != 1000 && (*curClass)->inheritanceAccess != 2; *curClass = (*curClass)->base)
4039 *curMember = (*curClass)->membersAndProperties.first;
4041 if(subMemberStackPos && *subMemberStackPos > 0)
4043 while(*curMember && ((*curMember)->memberAccess == 2))
4044 *curMember = (*curMember)->next;
4047 while(*curMember && (*curMember)->name)
4049 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
4052 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
4053 if(dataMember && dataMember->memberAccess != 2 && dataMember->id >= 0)
4055 *curMember = dataMember;
4059 *curMember = (*curMember)->next;
4061 if(subMemberStackPos)
4063 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
4065 subMemberStack[(*subMemberStackPos)++] = *curMember;
4066 *curMember = (*curMember)->members.first;
4067 while(*curMember && (*curMember)->memberAccess == 2)
4068 *curMember = (*curMember)->next;
4075 void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function)
4077 if(instance && name)
4079 struct __ecereNameSpace__ecere__com__Class * _class;
4081 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4083 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
4085 if(method && method->type == 1)
4087 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl == ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl)
4089 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(void *) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
4090 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);
4092 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
4098 unsigned int __ecereNameSpace__ecere__com__eInstance_IsDerived(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Class * from)
4102 struct __ecereNameSpace__ecere__com__Class * _class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
4104 for(; _class; _class = _class->base)
4113 void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance)
4116 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount++;
4119 void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance)
4123 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount--;
4124 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount <= 0)
4126 __ecereNameSpace__ecere__com__eInstance_Delete(instance);
4131 static void __ecereNameSpace__ecere__com__FixOffsets(struct __ecereNameSpace__ecere__com__Class * _class)
4133 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
4135 _class->structSize += _class->base->structSize - _class->offset;
4136 _class->offset = _class->base->structSize;
4137 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
4138 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
4141 void __ecereNameSpace__ecere__com__eClass_Resize(struct __ecereNameSpace__ecere__com__Class * _class, int newSize)
4143 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
4145 _class->structSize = newSize;
4146 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
4147 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
4150 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)
4154 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4156 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4160 int __simpleStruct0;
4162 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4163 if(_class->memberOffset % alignment)
4164 _class->memberOffset += alignment - (_class->memberOffset % alignment);
4166 dataMember = __extension__ ({
4167 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4169 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), __ecereInstance1->id = _class->memberID++, __ecereInstance1->_class = _class, __ecereInstance1->offset = _class->memberOffset, __ecereInstance1->memberOffset = size, __ecereInstance1->memberAccess = declMode, __ecereInstance1->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, __ecereInstance1;
4171 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4172 _class->memberOffset += size;
4173 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4174 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4176 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4181 return (((void *)0));
4184 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)
4186 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&member->membersAlpha, name))
4188 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4192 int __simpleStruct0;
4194 member->structAlignment = (__simpleStruct0 = member->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4195 if(member->memberOffset % alignment)
4196 member->memberOffset += alignment - (member->memberOffset % alignment);
4198 dataMember = __extension__ ({
4199 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4201 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->_class = member->_class, __ecereInstance1->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), __ecereInstance1->id = member->memberID++, __ecereInstance1->offset = (member->type == 1) ? 0 : member->memberOffset, __ecereInstance1->memberAccess = declMode, __ecereInstance1->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, __ecereInstance1;
4203 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&member->members, dataMember);
4204 if(member->type == 1)
4206 if(size > member->memberOffset)
4207 member->memberOffset = size;
4210 member->memberOffset += size;
4211 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&member->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4212 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4214 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4218 return (((void *)0));
4221 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode)
4223 return __extension__ ({
4224 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4226 __ecereInstance1->type = type, __ecereInstance1->memberAccess = declMode, __ecereInstance1->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, __ecereInstance1;
4230 static void __ecereNameSpace__ecere__com__SetMemberClass(struct __ecereNameSpace__ecere__com__DataMember * member, struct __ecereNameSpace__ecere__com__Class * _class)
4232 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4234 member->_class = _class;
4235 for(dataMember = member->members.first; dataMember; dataMember = dataMember->next)
4236 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4239 unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4241 int __simpleStruct0, __simpleStruct1;
4243 if(dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&addTo->membersAlpha, dataMember->name))
4245 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&addTo->members, dataMember);
4246 if(dataMember->name)
4247 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&addTo->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4248 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4250 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4252 dataMember->_class = addTo->_class;
4253 dataMember->id = addTo->memberID;
4254 if(dataMember->type == 1)
4255 addTo->memberID += 1;
4257 addTo->memberID += dataMember->memberID;
4258 addTo->structAlignment = (__simpleStruct0 = addTo->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4259 dataMember->offset = (addTo->type == 1) ? 0 : addTo->memberOffset;
4260 if(addTo->type == 1)
4262 if(dataMember->memberOffset > addTo->memberOffset)
4263 addTo->memberOffset = dataMember->memberOffset;
4266 addTo->memberOffset += dataMember->memberOffset;
4270 unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4272 int __simpleStruct0, __simpleStruct1;
4274 if(!_class || _class->comRedefinition || (dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, dataMember->name)))
4276 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4277 if(dataMember->name)
4278 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4279 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4281 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4283 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4284 dataMember->id = _class->memberID;
4285 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4286 if(dataMember->type == 1)
4287 _class->memberID += 1;
4289 _class->memberID += dataMember->memberID;
4290 dataMember->offset = _class->memberOffset;
4291 _class->memberOffset += dataMember->memberOffset;
4295 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)
4297 if(_class && name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4301 struct __ecereNameSpace__ecere__com__BitMember * bitMember = (bitMember = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BitMember), bitMember->name = __ecereNameSpace__ecere__sys__CopyString(name), bitMember->_class = _class, bitMember->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), bitMember->id = _class->memberID++, bitMember->memberAccess = declMode, bitMember);
4303 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, bitMember);
4306 bitMember->pos = (bitPos == -1) ? _class->memberOffset : bitPos;
4307 bitMember->size = bitSize;
4308 _class->memberOffset = bitMember->pos + bitMember->size;
4309 for(c = 0; c < bitSize; c++)
4315 bitMember->mask = mask << bitMember->pos;
4317 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4318 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4320 __ecereInstance1->name = bitMember->name, __ecereInstance1->data = bitMember, __ecereInstance1;
4324 return (((void *)0));
4327 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__Module_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int ensureCOM)
4329 unsigned int (stdcall * Load)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4330 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4331 struct __ecereNameSpace__ecere__com__Instance * module;
4333 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4335 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4338 if(ensureCOM && (!strcmp(name, "ecereCOM") || !strcmp(name, "ecere")))
4340 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4342 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecere") || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM"))
4348 void * library = (((void *)0));
4350 if(ensureCOM && !strcmp(name, "ecereCOM"))
4352 Load = __ecereDll_Load_ecere;
4353 Unload = __ecereDll_Unload_ecere;
4357 char * libLocation = (((void *)0));
4359 library = Instance_Module_Load(libLocation, name, &Load, &Unload);
4363 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4364 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4365 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library = library;
4366 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4367 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = Unload;
4368 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType = 0;
4371 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4372 module = (((void *)0));
4375 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4377 if(ensureCOM && !strcmp(name, "ecere") && module)
4379 name = !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM") ? "ecere" : "ecereCOM";
4380 if((!Load && !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM")) || (Load && (!__thisModule || !((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name || !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name, "ecereCOM")) && Load != __ecereDll_Load_ecere))
4382 struct __ecereNameSpace__ecere__com__Instance * module;
4384 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4386 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4391 Load = __ecereDll_Load_ecere;
4392 Unload = __ecereDll_Unload_ecere;
4393 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4394 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4395 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library = (((void *)0));
4396 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4397 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = Unload;
4400 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4401 module = (((void *)0));
4403 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4409 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4410 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4412 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4415 module->_refCount++;
4423 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4424 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4426 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4429 module->_refCount++;
4434 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4436 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x1);
4439 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4441 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x0);
4444 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))
4446 struct __ecereNameSpace__ecere__com__Instance * module;
4448 for(module = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules.first; module; module = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->next)
4450 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4457 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4458 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4459 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4460 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType = 1;
4461 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = (void *)Unload;
4464 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4465 module = (((void *)0));
4468 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4474 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4475 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4477 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4480 module->_refCount++;
4485 void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module)
4487 struct __ecereNameSpace__ecere__sys__OldLink * m;
4489 for(m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules.first; m; m = m->next)
4491 if(m->data == module)
4496 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, m);
4497 (__ecereNameSpace__ecere__com__eInstance_DecRef(module), module = 0);
4501 void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value)
4503 if(_class && _class->type == 4)
4505 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4506 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4508 for(item = data->values.first; item; item = item->next)
4509 if(!strcmp(item->name, string))
4513 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, __extension__ ({
4514 struct __ecereNameSpace__ecere__sys__NamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink);
4516 __ecereInstance1->data = (void *)value, __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1;
4518 if(value > data->largest)
4519 data->largest = value;
4524 int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
4526 if(_class && _class->type == 4)
4528 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4529 int value = data->largest + 1;
4530 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4532 for(item = data->values.first; item; item = item->next)
4533 if(!strcmp(item->name, string))
4537 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, __extension__ ({
4538 struct __ecereNameSpace__ecere__sys__NamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink);
4540 __ecereInstance1->data = (void *)value, __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1;
4542 if(value > data->largest)
4543 data->largest = value;
4550 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace)
4552 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
4554 (__ecereNameSpace__ecere__com__eSystem_Delete(parentNameSpace->name), parentNameSpace->name = 0);
4555 while((nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentNameSpace->nameSpaces)))
4557 __ecereNameSpace__ecere__com__NameSpace_Free(nameSpace);
4558 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentNameSpace->nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace);
4562 static void __ecereNameSpace__ecere__com__Application_Destructor(struct __ecereNameSpace__ecere__com__Instance * app)
4564 if(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand)
4566 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argv), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + structSize_Module)))->argv = 0);
4567 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand), ((struct __ecereNameSpace__ecere__com__Application * )(((char * )app + structSize_Module)))->parsedCommand = 0);
4571 static unsigned int __ecereNameSpace__ecere__com__Module_Constructor(struct __ecereNameSpace__ecere__com__Instance * module)
4573 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4574 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4575 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4576 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4577 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4578 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4579 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4580 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4584 static void __ecereNameSpace__ecere__com__Module_Destructor(struct __ecereNameSpace__ecere__com__Instance * module)
4586 struct __ecereNameSpace__ecere__com__Class * _class;
4587 struct __ecereNameSpace__ecere__com__DefinedExpression * def;
4588 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
4589 struct __ecereNameSpace__ecere__com__Instance * m;
4590 struct __ecereNameSpace__ecere__com__SubModule * handle;
4592 for(m = ((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->allModules.first; m; m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->next)
4594 struct __ecereNameSpace__ecere__com__SubModule * next;
4596 for(handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->modules.first; handle; handle = next)
4598 next = handle->next;
4599 if(handle->module == module)
4600 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->modules, handle);
4603 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload)
4605 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType == 1)
4607 unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload;
4613 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload;
4619 struct __ecereNameSpace__ecere__com__Instance * ourWorld = __ecereClass___ecereNameSpace__ecere__com__Class->module;
4620 void * ourHandle = (((void *)0));
4622 while((handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.last))
4624 struct __ecereNameSpace__ecere__com__Instance * depModule = handle->module;
4626 if(depModule == ourWorld)
4628 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules, handle);
4633 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules, handle);
4634 (__ecereNameSpace__ecere__com__eInstance_DecRef(depModule), depModule = 0);
4639 (__ecereNameSpace__ecere__com__eSystem_Delete(ourHandle), ourHandle = 0);
4640 (__ecereNameSpace__ecere__com__eInstance_DecRef(ourWorld), ourWorld = 0);
4643 for(; (_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes.first); )
4645 if(_class->nameSpace)
4647 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
4648 struct __ecereNameSpace__ecere__sys__OldLink * t;
4650 for(t = _class->templatized.first; t; t = t->next)
4652 struct __ecereNameSpace__ecere__com__Class * template = t->data;
4653 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4655 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
4656 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
4657 template->nameSpace = (((void *)0));
4659 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
4660 _class->nameSpace = (((void *)0));
4662 _class->module = (((void *)0));
4663 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes, _class);
4664 if(_class->count <= 0 || _class->type != 0 || _class->isInstanceClass)
4665 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
4670 for(; (def = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines.first); )
4674 struct __ecereNameSpace__ecere__com__BTNamedLink * defLink;
4676 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)))
4677 if(defLink->data == def)
4679 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*def->nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)defLink);
4683 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
4684 (__ecereNameSpace__ecere__com__eSystem_Delete(def->value), def->value = 0);
4685 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines, def);
4687 for(; (function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions.first); )
4689 if(function->nameSpace)
4691 struct __ecereNameSpace__ecere__com__BTNamedLink * functionLink;
4693 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)))
4694 if(functionLink->data == function)
4696 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*function->nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)functionLink);
4700 (__ecereNameSpace__ecere__com__eSystem_Delete(function->name), function->name = 0);
4701 (__ecereNameSpace__ecere__com__eSystem_Delete(function->dataTypeString), function->dataTypeString = 0);
4702 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions, function);
4704 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name), ((struct __ecereNameSpace__ecere__com__Module * )(((char * )module + structSize_Instance)))->name = 0);
4705 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace);
4706 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace);
4707 if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application)
4708 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->allModules, module);
4710 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace);
4711 Instance_Module_Free(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library);
4714 static long long __ecereNameSpace__ecere__com__GetEnumSize(struct __ecereNameSpace__ecere__com__Class * _class)
4716 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4718 return data->largest + 1;
4721 char * strlwr(char * string)
4725 for(c = 0; string[c]; c++)
4726 if(string[c] >= 'A' && string[c] <= 'Z')
4727 string[c] += 'a' - 'A';
4731 char * strupr(char * string)
4735 for(c = 0; string[c]; c++)
4736 if(string[c] >= 'a' && string[c] <= 'z')
4737 string[c] -= 'a' - 'A';
4741 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4743 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4746 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
4748 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
4751 for(c = 0; name[c]; c++)
4753 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4755 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4756 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4758 strncpy(spaceName, name + start, c - start);
4759 spaceName[c - start] = '\0';
4760 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4763 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4764 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4765 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4766 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4767 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4768 (*newSpace).name = spaceName;
4769 (*newSpace).parent = nameSpace;
4770 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4773 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4774 nameSpace = newSpace;
4783 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).defines, name + start))
4785 struct __ecereNameSpace__ecere__com__DefinedExpression * def = (def = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DefinedExpression), def->name = __ecereNameSpace__ecere__sys__CopyString(name), def->nameSpace = nameSpace, def->value = __ecereNameSpace__ecere__sys__CopyString(value), def);
4787 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4788 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4790 __ecereInstance1->name = def->name + start, __ecereInstance1->data = def, __ecereInstance1;
4792 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines, def);
4795 return (((void *)0));
4798 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4800 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4803 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
4805 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
4808 for(c = 0; name[c]; c++)
4810 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4812 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4813 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4815 strncpy(spaceName, name + start, c - start);
4816 spaceName[c - start] = '\0';
4817 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4820 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4821 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4822 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4823 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4824 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4825 (*newSpace).name = spaceName;
4826 (*newSpace).parent = nameSpace;
4827 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4830 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4831 nameSpace = newSpace;
4840 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).functions, name + start))
4842 struct __ecereNameSpace__ecere__com__GlobalFunction * function = (function = __ecereNameSpace__ecere__com__eSystem_New0(structSize_GlobalFunction), function->name = __ecereNameSpace__ecere__sys__CopyString(name), function->nameSpace = nameSpace, function->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type), function->function = func, function->module = module, function);
4844 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4845 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4847 __ecereInstance1->name = function->name + start, __ecereInstance1->data = function, __ecereInstance1;
4849 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions, function);
4852 return (((void *)0));
4855 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4859 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4861 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines);
4864 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines, 0x1);
4868 return (((void *)0));
4871 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4875 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4877 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions);
4880 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions, 0x1);
4884 return (((void *)0));
4887 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size)
4889 return __ecereNameSpace__ecere__com___realloc(memory, size);
4892 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size)
4894 return __ecereNameSpace__ecere__com___crealloc(memory, size);
4897 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size)
4899 return __ecereNameSpace__ecere__com___malloc(size);
4902 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size)
4904 return __ecereNameSpace__ecere__com___calloc(1, size);
4907 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory)
4910 __ecereNameSpace__ecere__com___free(memory);
4913 void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4915 if(instance && _property && _property->selfWatchable)
4917 struct __ecereNameSpace__ecere__com__Class * _class;
4919 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4921 struct __ecereNameSpace__ecere__com__SelfWatcher * selfWatcher, * next;
4923 for(selfWatcher = _class->selfWatchers.first; selfWatcher; selfWatcher = next)
4925 next = selfWatcher->next;
4926 if(selfWatcher->_property == _property)
4927 selfWatcher->callback(instance);
4933 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4935 if(instance && _property && _property->isWatchable)
4937 struct __ecereNameSpace__ecere__com__Instance * module = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class ? ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->module : (((void *)0));
4938 struct __ecereNameSpace__ecere__com__Instance * application = module ? ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application : (((void *)0));
4939 int flags = application ? (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)application + structSize_Module)))->isGUIApp : 0;
4940 unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
4941 unsigned int force32Bits = (flags & 4) ? 0x1 : 0x0;
4943 if(!force32Bits || !inCompiler)
4945 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4946 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
4948 for(watcher = (*watchers).first; watcher; watcher = next)
4950 next = watcher->next;
4951 watcher->callback(watcher->object, instance);
4957 void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property)
4959 if(!_property->isWatchable)
4961 struct __ecereNameSpace__ecere__com__Class * _class = _property->_class;
4963 if(!_class->computeSize)
4965 _property->watcherOffset = _class->structSize;
4966 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4967 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4969 _property->isWatchable = 0x1;
4973 void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(struct __ecereNameSpace__ecere__com__Class * _class)
4975 if(!_class->destructionWatchOffset)
4977 _class->destructionWatchOffset = _class->structSize;
4978 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4979 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4983 void __ecereNameSpace__ecere__com__eProperty_SelfWatch(struct __ecereNameSpace__ecere__com__Class * _class, char * name, void (* callback)(void *))
4987 struct __ecereNameSpace__ecere__com__Property * _property = __ecereNameSpace__ecere__com__eClass_FindProperty(_class, name, _class->module);
4990 _property = __ecereNameSpace__ecere__com__eClass_AddProperty(_class, name, (((void *)0)), (((void *)0)), (((void *)0)), 4);
4991 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->selfWatchers, __extension__ ({
4992 struct __ecereNameSpace__ecere__com__SelfWatcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_SelfWatcher);
4994 __ecereInstance1->_property = _property, __ecereInstance1->callback = callback, __ecereInstance1;
4996 _property->selfWatchable = 0x1;
5000 void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void *, void *))
5002 if(_property->isWatchable)
5004 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5006 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), __extension__ ({
5007 struct __ecereNameSpace__ecere__com__Watcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Watcher);
5009 __ecereInstance1->callback = callback, __ecereInstance1->object = object, __ecereInstance1;
5014 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 *))
5016 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->destructionWatchOffset);
5018 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), __extension__ ({
5019 struct __ecereNameSpace__ecere__com__Watcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Watcher);
5021 __ecereInstance1->callback = callback, __ecereInstance1->object = object, __ecereInstance1;
5025 void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object)
5027 if(instance && (!_property || _property->isWatchable))
5031 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5032 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5034 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5035 if(watcher->object == object)
5037 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5043 struct __ecereNameSpace__ecere__com__Class * _class, * base;
5045 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
5047 if(_class->destructionWatchOffset)
5049 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
5050 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5052 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5054 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5058 for(_property = (struct __ecereNameSpace__ecere__com__Property *)_class->membersAndProperties.first; _property; _property = _property->next)
5060 if(_property->isProperty && _property->isWatchable)
5062 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5063 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5065 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5066 if(watcher->object == object)
5068 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5073 base = _class->base;
5074 if(base && (base->type == 1000 || base->isInstanceClass))
5075 base = (((void *)0));
5081 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eClass_GetDesigner(struct __ecereNameSpace__ecere__com__Class * _class)
5083 for(; _class; _class = _class->base)
5085 if(_class->designerClass)
5086 return (struct __ecereNameSpace__ecere__com__Class *)__ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->designerClass);
5088 return (((void *)0));
5091 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eInstance_GetDesigner(struct __ecereNameSpace__ecere__com__Instance * instance)
5094 return __ecereNameSpace__ecere__com__eClass_GetDesigner(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class);
5095 return (((void *)0));
5098 unsigned int __ecereNameSpace__ecere__com__LocateModule(char * name, char * fileName)
5100 return Instance_LocateModule(name, fileName);
5103 extern void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module);
5105 extern void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module);
5107 extern double sin(struct __ecereNameSpace__ecere__com__Instance * number);
5109 extern double sinh(struct __ecereNameSpace__ecere__com__Instance * number);
5111 extern double cosh(struct __ecereNameSpace__ecere__com__Instance * number);
5113 extern double tanh(struct __ecereNameSpace__ecere__com__Instance * number);
5115 extern double sqrt(double number);
5117 extern double cos(struct __ecereNameSpace__ecere__com__Instance * number);
5119 extern double tan(struct __ecereNameSpace__ecere__com__Instance * number);
5121 extern struct __ecereNameSpace__ecere__com__Instance * atan2(double y, double x);
5123 extern struct __ecereNameSpace__ecere__com__Instance * asin(double number);
5125 extern struct __ecereNameSpace__ecere__com__Instance * acos(double number);
5127 extern struct __ecereNameSpace__ecere__com__Instance * atan(double number);
5129 extern double pow(double number, double number2);
5131 extern double fmod(double x, double y);
5133 extern double fabs(double number);
5135 extern double log(double number);
5137 extern double log10(double number);
5139 extern double ceil(double number);
5141 extern double floor(double number);
5143 extern double exp(double number);
5145 extern void qsort(void * , size_t, size_t, int (* )(void * , void * ));
5147 extern int system(const char * );
5149 extern int atoi(const char * );
5151 extern double atof(const char * );
5153 extern int tolower(int);
5155 extern int toupper(int);
5157 extern unsigned int isdigit(int);
5159 extern char * getenv(const char * name);
5161 extern int rename(const char * oldpath, const char * newpath);
5163 extern char * strncat(char * , const char * , size_t n);
5165 extern int strcasecmp(const char * , const char * );
5167 extern int strncasecmp(const char * , const char * , size_t n);
5169 extern int strncmp(const char * , const char * , size_t n);
5171 extern int vsprintf(char * , const char * , __builtin_va_list);
5173 extern int puts(char * );
5175 extern int fputs(char * , void * stream);
5177 extern int isalnum(int c);
5179 extern int isalpha(int c);
5181 extern int islower(int c);
5183 extern int isupper(int c);
5185 extern int isprint(int c);
5187 static void __ecereNameSpace__ecere__com__LoadCOM(struct __ecereNameSpace__ecere__com__Instance * module)
5189 unsigned int force64Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 2) ? 0x1 : 0x0;
5190 unsigned int force32Bits = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 4) ? 0x1 : 0x0;
5191 unsigned int inCompiler = ((unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->isGUIApp & 8) ? 0x1 : 0x0;
5192 int pointerSize = force64Bits ? 8 : force32Bits ? 4 : sizeof(void *);
5193 struct __ecereNameSpace__ecere__com__Class * applicationClass;
5194 struct __ecereNameSpace__ecere__com__Class * enumClass, * structClass, * boolClass;
5195 struct __ecereNameSpace__ecere__com__Class * moduleClass;
5196 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "class", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5198 baseClass->type = 1000;
5199 baseClass->memberOffset = 0;
5200 baseClass->offset = 0;
5201 baseClass->structSize = 0;
5202 baseClass->typeSize = 0;
5204 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);
5206 instanceClass->type = 0;
5207 instanceClass->isInstanceClass = 0x1;
5208 instanceClass->fixed = 0x1;
5209 instanceClass->memberOffset = 0;
5210 instanceClass->offset = 0;
5211 instanceClass->memberID = -3;
5212 instanceClass->startMemberID = -3;
5213 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_vTbl", "int (**)()", pointerSize, pointerSize, 1);
5214 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_class", "ecere::com::Class", pointerSize, pointerSize, 1);
5215 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_refCount", "int", sizeof(int), sizeof(int), 1);
5217 __ecereNameSpace__ecere__com__InitializeDataTypes1(module);
5218 enumClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "enum", (((void *)0)), 0, force64Bits ? 40 : sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), (((void *)0)), (((void *)0)), module, 4, 1);
5219 __ecereNameSpace__ecere__com__eClass_AddClassProperty(enumClass, "enumSize", "int", (((void *)0)), __ecereNameSpace__ecere__com__GetEnumSize)->constant = 0x1;
5220 enumClass->type = 1000;
5221 (__ecereNameSpace__ecere__com__eSystem_Delete(enumClass->dataTypeString), enumClass->dataTypeString = 0);
5222 enumClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
5223 structClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "struct", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5224 structClass->type = 1000;
5225 structClass->memberOffset = 0;
5226 structClass->offset = 0;
5227 structClass->structSize = 0;
5228 structClass->typeSize = 0;
5229 __ecereNameSpace__ecere__com__InitializeDataTypes(module);
5230 boolClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "bool", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5231 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "true", (unsigned int)0x1);
5232 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "false", (unsigned int)0x0);
5233 moduleClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Module", (((void *)0)), force64Bits ? 8 + 32 + 32 + 32 + 32 + 8 + 8 + 8 + 8 + 8 + 4 + 4 + (32 + 8 + 8 + 4 * 32) + (32 + 8 + 8 + 4 * 32) : sizeof(struct __ecereNameSpace__ecere__com__Module), 0, (void *)__ecereNameSpace__ecere__com__Module_Constructor, (void *)__ecereNameSpace__ecere__com__Module_Destructor, module, 4, 1);
5234 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnLoad", "bool()", (((void *)0)), 1);
5235 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnUnload", "void()", (((void *)0)), 1);
5236 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Load", "Module(char * name, AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, 1);
5237 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Unload", "void(Module module)", __ecereNameSpace__ecere__com__eModule_Unload, 1);
5238 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "application", "Application", pointerSize, pointerSize, 1);
5239 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "classes", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5240 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "defines", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5241 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "functions", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5242 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "modules", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5243 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "prev", "Module", pointerSize, pointerSize, 1);
5244 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "next", "Module", pointerSize, pointerSize, 1);
5245 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "name", "char *", pointerSize, pointerSize, 1);
5246 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "library", "void *", pointerSize, pointerSize, 1);
5247 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "Unload", "void *", pointerSize, pointerSize, 1);
5248 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "importType", "ImportType", sizeof(int), 4, 1);
5249 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "origImportType", "ImportType", sizeof(int), 4, 1);
5250 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "privateNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5251 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "publicNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5252 moduleClass->fixed = 0x1;
5253 moduleClass->count++;
5254 if(inCompiler && force32Bits)
5255 moduleClass->structSize = 12 + 4 + 20 + 20 + 20 + 20 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + (16 + 4 + 4 + 4 * 16) + (16 + 4 + 4 + 4 * 16);
5256 applicationClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::Application", "Module", force64Bits ? (8 + 8 + 4 + 4 + 32 + 8 + 176) : sizeof(struct __ecereNameSpace__ecere__com__Application), 0, (((void *)0)), (void *)__ecereNameSpace__ecere__com__Application_Destructor, module, 4, 1);
5257 if(inCompiler && force32Bits)
5259 applicationClass->offset = 12 + 4 + 20 + 20 + 20 + 20 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + (16 + 4 + 4 + 4 * 16) + (16 + 4 + 4 + 4 * 16);
5260 applicationClass->structSize = applicationClass->offset + (4 + 4 + 4 + 4 + 20 + 4 + 88);
5262 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(applicationClass, "Main", "void()", (((void *)0)), 1);
5263 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argc", "int", sizeof(int), 4, 1);
5264 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argv", "char **", pointerSize, pointerSize, 1);
5265 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "exitCode", "int", sizeof(int), 4, 1);
5266 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "isGUIApp", "bool", sizeof(unsigned int), 4, 1);
5267 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "allModules", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5268 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "parsedCommand", "char *", pointerSize, pointerSize, 1);
5269 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "systemNameSpace", "NameSpace", force64Bits ? (32 + 8 + 8 + 4 * 32) : force32Bits ? (16 + 4 + 4 + 4 * 16) : sizeof(struct __ecereNameSpace__ecere__com__NameSpace), pointerSize, 1);
5270 applicationClass->fixed = 0x1;
5271 applicationClass->count++;
5272 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sin", "double sin(Angle number)", sin, module, 4);
5273 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sinh", "double sinh(Angle number)", sinh, module, 4);
5274 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cosh", "double cosh(Angle number)", cosh, module, 4);
5275 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tanh", "double tanh(Angle number)", tanh, module, 4);
5276 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sqrt", "double sqrt(double number)", sqrt, module, 4);
5277 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cos", "double cos(Angle number)", cos, module, 4);
5278 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tan", "double tan(Angle number)", tan, module, 4);
5279 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan2", "Angle atan2(double y, double x)", atan2, module, 4);
5280 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("asin", "Angle asin(double number)", asin, module, 4);
5281 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("acos", "Angle acos(double number)", acos, module, 4);
5282 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan", "Angle atan(double number)", atan, module, 4);
5283 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("pow", "double pow(double number, double number2)", pow, module, 4);
5284 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fmod", "double fmod(double x, double y)", fmod, module, 4);
5285 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fabs", "double fabs(double number)", fabs, module, 4);
5286 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log", "double log(double number)", log, module, 4);
5287 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log10", "double log10(double number)", log10, module, 4);
5288 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ceil", "double ceil(double number)", ceil, module, 4);
5289 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("floor", "double floor(double number)", floor, module, 4);
5290 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("exp", "double exp(double number)", exp, module, 4);
5291 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("qsort", "void qsort(void *, uintsize, uintsize, int (*)(void *, void *))", qsort, module, 4);
5292 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtod", "double strtod(char*, char**)", strtod, module, 4);
5293 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtol", "int strtol(char*, char**, int base)", strtol, module, 4);
5294 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("system", "int system(const char*)", system, module, 4);
5295 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atoi", "int atoi(const char*)", atoi, module, 4);
5296 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atof", "double atof(const char*)", atof, module, 4);
5297 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tolower", "int tolower(int)", tolower, module, 4);
5298 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("toupper", "int toupper(int)", toupper, module, 4);
5299 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isdigit", "bool isdigit(int)", isdigit, module, 4);
5300 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memset", "void * memset(void * area, int value, uintsize count)", memset, module, 4);
5301 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("getenv", "char * getenv(const char * name)", getenv, module, 4);
5302 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("rename", "int rename(const char *oldpath, const char *newpath)", rename, module, 4);
5303 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlen", "uintsize strlen(const char *)", strlen, module, 4);
5304 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcat", "char * strcat(char *, const char *)", strcat, module, 4);
5305 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncat", "char * strncat(char *, const char *, uintsize n)", strncat, module, 4);
5306 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strchr", "char * strchr(const char *, int)", strchr, module, 4);
5307 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strstr", "char * strstr(const char *, const char *)", strstr, module, 4);
5308 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("fstrcmp", "(GetRuntimePlatform() == win32) ? strcmpi : strcmp", module, 4);
5309 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strcmpi", "strcasecmp", module, 4);
5310 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strnicmp", "strncasecmp", module, 4);
5311 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcasecmp", "int strcasecmp(const char *, const char *)", strcasecmp, module, 4);
5312 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncasecmp", "int strncasecmp(const char *, const char *, uintsize n)", strncasecmp, module, 4);
5313 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcmp", "int strcmp(const char *, const char *)", strcmp, module, 4);
5314 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncmp", "int strncmp(const char *, const char *, uintsize n)", strncmp, module, 4);
5315 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlwr", "char * strlwr(char *)", strlwr, module, 4);
5316 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strupr", "char * strupr(char *)", strupr, module, 4);
5317 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcpy", "char * strcpy(char *, const char *)", strcpy, module, 4);
5318 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncpy", "char * strncpy(char *, const char *, uintsize n)", strncpy, module, 4);
5319 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memcpy", "void * memcpy(void *, const void *, uintsize size)", memcpy, module, 4);
5320 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memmove", "void * memmove(void *, const void *, uintsize size)", memmove, module, 4);
5321 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sprintf", "int sprintf(char *, char *, ...)", sprintf, module, 4);
5322 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("snprintf", "int sprintf(char *, uintsize, char *, ...)", snprintf, module, 4);
5323 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("printf", "int printf(char *, ...)", printf, module, 4);
5324 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsprintf", "int vsprintf(char*, const char*, __builtin_va_list)", vsprintf, module, 4);
5325 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsnprintf", "int vsnprintf(char*, uintsize, const char*, __builtin_va_list)", vsnprintf, module, 4);
5326 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("puts", "int puts(char *)", puts, module, 4);
5327 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fputs", "int fputs(char *, void * stream)", fputs, module, 4);
5328 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalnum", "int isalnum(int c)", isalnum, module, 4);
5329 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isspace", "int isspace(int c)", isspace, module, 4);
5330 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalpha", "int isalpha(int c)", isalpha, module, 4);
5331 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("islower", "int islower(int c)", islower, module, 4);
5332 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isupper", "int isupper(int c)", isupper, module, 4);
5333 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isprint", "int isprint(int c)", isprint, module, 4);
5334 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoul", "unsigned long strtoul(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5337 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[])
5339 struct __ecereNameSpace__ecere__com__Instance * app;
5341 app = __ecereNameSpace__ecere__com___calloc(1, structSize_Application);
5342 __ecereNameSpace__ecere__com__Module_Constructor(app);
5343 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5344 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5345 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5346 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5347 Instance_COM_Initialize(argc, argv, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argc, &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->argv);
5348 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->application = app;
5349 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.offset = structSize_Instance + (unsigned int)&(*((struct __ecereNameSpace__ecere__com__Module *)0)).prev;
5350 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->isGUIApp = guiApp;
5351 __ecereNameSpace__ecere__com__LoadCOM(app);
5352 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)app)->_class = __ecereNameSpace__ecere__com__eSystem_FindClass(app, "Application");
5356 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)
5360 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5362 for(param = _class->templateParams.first; param; param = param->next)
5364 if(!strcmp(param->name, name))
5367 param = __extension__ ({
5368 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_ClassTemplateParameter);
5370 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->type = type, __ecereInstance1->dataTypeString = (type == 1) ? info : __ecereNameSpace__ecere__sys__CopyString(info), __ecereInstance1;
5372 if(defaultArg != (((void *)0)))
5374 param->defaultArg = *defaultArg;
5375 __ecereNameSpace__ecere__com__CopyTemplateArg(param, ¶m->defaultArg);
5377 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templateParams, param);
5380 return (((void *)0));
5383 void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base)
5387 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
5388 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5391 void * first = base->templateParams.first;
5392 int count = base->templateParams.count;
5394 base->templateParams.first = (((void *)0));
5395 base->templateParams.count = 0;
5396 __ecereNameSpace__ecere__com__FreeTemplateArgs(base);
5397 (__ecereNameSpace__ecere__com__eSystem_Delete(base->templateArgs), base->templateArgs = 0);
5398 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(base);
5399 base->templateParams.first = first;
5400 base->templateParams.count = count;
5402 for(param = base->templateParams.first; param; param = param->next)
5404 if(param->type == 1 && param->defaultArg.memberString)
5406 struct __ecereNameSpace__ecere__com__Class * memberClass = base;
5407 char * colon = strstr(param->defaultArg.memberString, "::");
5412 char className[1024];
5413 struct __ecereNameSpace__ecere__com__Class * sClass;
5415 memcpy(className, param->defaultArg.memberString, colon - param->defaultArg.memberString);
5416 className[colon - param->defaultArg.memberString] = '\0';
5417 memberName = colon + 2;
5418 for(sClass = base; sClass; sClass = sClass->base)
5420 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
5421 struct __ecereNameSpace__ecere__com__Class * nextClass;
5424 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
5425 id += nextClass->templateParams.count;
5426 if(sClass == base || base->templateArgs)
5428 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
5430 if(cParam->type == 0 && !strcmp(cParam->name, className))
5431 strcpy(className, (sClass == base) ? cParam->defaultArg.dataTypeString : base->templateArgs[id].dataTypeString);
5436 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(base->module, className);
5438 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)base->module + structSize_Instance)))->application, className);
5441 memberName = param->defaultArg.memberString;
5444 switch(param->memberType)
5447 param->defaultArg.member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
5450 param->defaultArg.method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
5453 param->defaultArg.prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
5459 __ecereNameSpace__ecere__com__FixDerivativesBase(base, base);
5463 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base)
5465 struct __ecereNameSpace__ecere__sys__OldLink * derivative, * templateLink;
5467 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
5469 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
5471 if(_class->templateArgs)
5473 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5474 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5476 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5478 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
5480 struct __ecereNameSpace__ecere__com__Class * _class = templateLink->data;
5482 if(_class->templateArgs)
5484 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5485 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5487 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5491 static const char * __ecereNameSpace__ecere__com__platformNames[4] =
5493 "", "win32", "linux", "apple"
5496 static const int __ecereNameSpace__ecere__com__firstPlatform = 1;
5498 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Platform_char__PTR_;
5500 static const int __ecereNameSpace__ecere__com__lastPlatform = 3;
5502 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Platform;
5504 int __ecereVMethodID_class_OnGetString;
5506 char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this)
5508 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)));
5511 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(char * value)
5517 for(c = __ecereNameSpace__ecere__com__firstPlatform; c <= __ecereNameSpace__ecere__com__lastPlatform; c++)
5518 if(!strcasecmp(value, __ecereNameSpace__ecere__com__platformNames[c]))
5524 char * __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * tempString, void * fieldData, unsigned int * needClass)
5526 if((*this) >= __ecereNameSpace__ecere__com__firstPlatform && (*this) <= __ecereNameSpace__ecere__com__lastPlatform)
5529 strcpy(tempString, __ecereNameSpace__ecere__com__platformNames[*(int *)this]);
5530 return __ecereNameSpace__ecere__com__platformNames[*(int *)this];
5532 if(tempString && tempString[0])
5533 tempString[0] = '\0';
5534 return (((void *)0));
5537 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * string)
5539 (*this) = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(string);
5540 return (unsigned int)*(int *)this;
5543 extern int runtimePlatform;
5545 int __ecereNameSpace__ecere__com__GetRuntimePlatform()
5547 return runtimePlatform;
5550 struct __ecereNameSpace__ecere__com__ObjectInfo
5552 struct __ecereNameSpace__ecere__com__ObjectInfo * prev, * next;
5553 struct __ecereNameSpace__ecere__com__Instance * instance;
5555 struct __ecereNameSpace__ecere__com__Instance * instCode;
5556 unsigned int deleted;
5557 struct __ecereNameSpace__ecere__com__ObjectInfo * oClass;
5558 struct __ecereNameSpace__ecere__sys__OldList instances;
5559 struct __ecereNameSpace__ecere__com__Instance * classDefinition;
5560 unsigned int modified;
5561 } __attribute__ ((gcc_struct));
5563 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ObjectInfo;
5565 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner;
5567 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass;
5569 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging;
5571 struct __ecereNameSpace__ecere__com__DesignerBase
5573 struct __ecereNameSpace__ecere__com__Instance * classDesigner;
5575 unsigned int isDragging;
5576 } __attribute__ ((gcc_struct));
5578 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DesignerBase;
5580 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this)
5582 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);
5584 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner;
5587 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
5589 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);
5591 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner = value;
5592 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner);
5595 char * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass(struct __ecereNameSpace__ecere__com__Instance * this)
5597 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);
5599 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass;
5602 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass(struct __ecereNameSpace__ecere__com__Instance * this, char * value)
5604 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);
5606 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass = value;
5607 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass);
5610 unsigned int __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging(struct __ecereNameSpace__ecere__com__Instance * this)
5612 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);
5614 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging;
5617 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
5619 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);
5621 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging = value;
5622 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging);
5625 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase;
5627 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__activeDesigner;
5629 void __ecereNameSpace__ecere__com__SetActiveDesigner(struct __ecereNameSpace__ecere__com__Instance * designer)
5631 __ecereNameSpace__ecere__com__activeDesigner = designer;
5634 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__GetActiveDesigner()
5636 return __ecereNameSpace__ecere__com__activeDesigner;
5641 unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source)
5647 for(c = 0; source[c]; )
5649 unsigned char ch = source[c];
5650 unsigned int codePoint = 0;
5653 unsigned char mask = (unsigned char)0x7F;
5655 if(ch & (unsigned char)0x80)
5657 if(ch & (unsigned char)0x40)
5661 if(ch & (unsigned char)0x20)
5665 if(ch & (unsigned char)0x10)
5667 if(ch & (unsigned char)0x08)
5677 for(i = 0; i < numBytes && (ch = source[c]); i++, c++)
5680 codePoint |= ch & mask;
5681 mask = (unsigned char)0x3F;
5684 if(!(ch & (unsigned char)0x80) || (ch & (unsigned char)0x40))
5690 if(codePoint > 0x10FFFF || (codePoint >= 0xD800 && codePoint <= 0xDFFF) || (codePoint < 0x80 && numBytes > 1) || (codePoint < 0x800 && numBytes > 2) || (codePoint < 0x10000 && numBytes > 3))
5697 int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max)
5702 for(c = 0; source[c]; c++)
5704 unsigned int ch = ((unsigned char *)source)[c];
5710 dest[d++] = (char)ch;
5716 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5717 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5719 else if(ch < 0x10000)
5723 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5724 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5725 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5731 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5732 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5733 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5734 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5741 char * __ecereNameSpace__ecere__sys__UTF16toUTF8(unsigned short * source)
5748 unsigned int invert = 0x0;
5750 for(len = 0; source[len]; len++)
5752 dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len * 3 + 1));
5753 for(c = 0; (u16 = source[c]); c++)
5757 if(!c && (u16 == (unsigned short)0xFFFE || u16 == (unsigned short)0xFEFF))
5759 if(u16 == (unsigned short)0xFFFE)
5765 u16 = ((u16 & (unsigned short)0xFF00) >> (unsigned short)8) | ((u16 & (unsigned short)0x00FF) << (unsigned short)8);
5767 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5770 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5773 dest[d++] = (char)ch;
5777 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5778 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5780 else if(ch < 0x10000)
5782 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5783 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5784 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5788 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5789 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5790 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5791 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5795 dest = __ecereNameSpace__ecere__com__eSystem_Renew(dest, sizeof(char) * (d + 1));
5799 int __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer(unsigned short * source, unsigned char * dest, int max)
5805 for(c = 0; (u16 = source[c]); c++)
5809 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5812 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5817 dest[d++] = (char)ch;
5823 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5824 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5826 else if(ch < 0x10000)
5830 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5831 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5832 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5838 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5839 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5840 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5841 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5844 dest[d] = (unsigned char)0;
5848 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes)
5851 unsigned char b = ((unsigned char *)string)[0];
5853 unsigned char mask = (unsigned char)0x7F;
5857 if(b & (unsigned char)0x80)
5859 if(b & (unsigned char)0x40)
5863 if(b & (unsigned char)0x20)
5867 if(b & (unsigned char)0x10)
5869 if(b & (unsigned char)0x08)
5881 for(i = 0; i < nb; i++)
5884 ch |= (b = ((unsigned char *)string)[i]) & mask;
5885 mask = (unsigned char)0x3F;
5886 if(i > 1 && (!(b & (unsigned char)0x80) || (b & (unsigned char)0x40)))
5892 if(i < nb || ch > 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF) || (ch < 0x80 && nb > 1) || (ch < 0x800 && nb > 2) || (ch < 0x10000 && nb > 3))
5902 int __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer(char * source, unsigned short * dest, int max)
5909 for(c = 0; source[c]; )
5911 unsigned char ch = source[c];
5912 unsigned int codePoint = 0;
5915 unsigned char mask = (unsigned char)0x7F;
5917 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5921 if(ch & (unsigned char)0x20)
5925 if(ch & (unsigned char)0x10)
5932 for(i = 0; i < numBytes; i++)
5935 codePoint |= source[c++] & mask;
5936 mask = (unsigned char)0x3F;
5938 if(codePoint > 0xFFFF)
5940 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5941 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5952 dest[d++] = (unsigned short)codePoint;
5955 dest[d] = (unsigned short)0;
5961 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max)
5967 for(c = 0; c < count && (ch = source[c]); c++)
5973 dest[d++] = (char)ch;
5979 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5980 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5982 else if(ch < 0x10000)
5986 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5987 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5988 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5994 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5995 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5996 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5997 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
6000 dest[d] = (unsigned char)0;
6004 unsigned short * __ecereNameSpace__ecere__sys__UTF8toUTF16(char * source, int * wordCount)
6008 int len = strlen(source);
6009 unsigned short * dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned short) * (len + 1));
6013 for(c = 0; source[c]; )
6015 unsigned char ch = source[c];
6016 unsigned int codePoint = 0;
6019 unsigned char mask = (unsigned char)0x7F;
6021 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
6025 if(ch & (unsigned char)0x20)
6029 if(ch & (unsigned char)0x10)
6036 for(i = 0; i < numBytes; i++)
6039 codePoint |= source[c++] & mask;
6040 mask = (unsigned char)0x3F;
6042 if(codePoint > 0xFFFF)
6044 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
6045 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
6052 dest[d++] = (unsigned short)codePoint;
6055 dest[d] = (unsigned short)0;
6060 return (((void *)0));
6063 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_FindObject;
6065 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_RenameObject;
6067 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SelectObjectFromDesigner;
6069 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_CodeAddObject;
6071 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SheetAddObject;
6073 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddToolBoxClass;
6075 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddDefaultMethod;
6077 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_DeleteObject;
6079 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ObjectContainsCode;
6081 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ModifyCode;
6083 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_UpdateProperties;
6085 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_Reset;
6087 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_AddObject;
6089 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_SelectObject;
6091 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_ListToolBoxClasses;
6093 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PrepareTestObject;
6095 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateObject;
6097 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PostCreateObject;
6099 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DroppedObject;
6101 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DestroyObject;
6103 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_FixProperty;
6105 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew;
6107 void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6109 struct __ecereNameSpace__ecere__com__Class * class;
6111 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4);
6112 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::unichar", "uint", 0, 0, 0, 0, module, 4, 1);
6113 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6114 __ecereClass___ecereNameSpace__ecere__com__unichar = class;
6115 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString, 1);
6116 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString, 1);
6117 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Property", 0, sizeof(struct __ecereNameSpace__ecere__com__Property), 0, 0, 0, module, 4, 1);
6118 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6119 __ecereClass___ecereNameSpace__ecere__com__Property = class;
6120 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6121 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6122 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6123 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6124 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6125 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6126 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6127 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6128 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6129 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6130 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void (*)(void *, int)", arch_PointerSize, arch_PointerSize, 1);
6131 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int (*)(void *)", arch_PointerSize, arch_PointerSize, 1);
6132 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "IsSet", "bool (*)(void *)", arch_PointerSize, arch_PointerSize, 1);
6133 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6134 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6135 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6136 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
6137 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "watcherOffset", "uint", 4, 4, 1);
6138 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "char *", arch_PointerSize, arch_PointerSize, 1);
6139 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "compiled", "bool", 4, 4, 1);
6140 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchable", "bool", 4, 4, 1);
6141 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
6143 class->fixed = (unsigned int)1;
6145 class->noExpansion = (unsigned int)1;
6146 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PushLoc", "void ecere::com::MemoryGuard_PushLoc(char * loc)", __ecereNameSpace__ecere__com__MemoryGuard_PushLoc, module, 4);
6147 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PopLoc", "void ecere::com::MemoryGuard_PopLoc(void)", __ecereNameSpace__ecere__com__MemoryGuard_PopLoc, module, 4);
6148 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BTNamedLink", 0, sizeof(struct __ecereNameSpace__ecere__com__BTNamedLink), 0, 0, 0, module, 4, 1);
6149 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6150 __ecereClass___ecereNameSpace__ecere__com__BTNamedLink = class;
6151 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6152 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6153 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6154 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6155 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6156 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6158 class->fixed = (unsigned int)1;
6159 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SelfWatcher", 0, sizeof(struct __ecereNameSpace__ecere__com__SelfWatcher), 0, 0, 0, module, 2, 1);
6160 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6161 __ecereClass___ecereNameSpace__ecere__com__SelfWatcher = class;
6163 class->fixed = (unsigned int)1;
6164 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::AccessMode", 0, 0, 0, 0, 0, module, 4, 1);
6165 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6166 __ecereClass___ecereNameSpace__ecere__com__AccessMode = class;
6167 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "defaultAccess", 0);
6168 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "publicAccess", 1);
6169 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "privateAccess", 2);
6170 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticAccess", 3);
6171 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "baseSystemAccess", 4);
6172 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SubModule", 0, sizeof(struct __ecereNameSpace__ecere__com__SubModule), 0, 0, 0, module, 4, 1);
6173 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6174 __ecereClass___ecereNameSpace__ecere__com__SubModule = class;
6175 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::SubModule", arch_PointerSize, arch_PointerSize, 1);
6176 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::SubModule", arch_PointerSize, arch_PointerSize, 1);
6177 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6178 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "importMode", "ecere::com::AccessMode", 4, 4, 1);
6179 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::DataMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6180 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6181 __ecereClass___ecereNameSpace__ecere__com__DataMemberType = class;
6182 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMember", 0);
6183 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionMember", 1);
6184 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMember", 2);
6185 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ClassType", 0, 0, 0, 0, 0, module, 4, 1);
6186 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6187 __ecereClass___ecereNameSpace__ecere__com__ClassType = class;
6188 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalClass", 0);
6189 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structClass", 1);
6190 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "bitClass", 2);
6191 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unitClass", 3);
6192 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "enumClass", 4);
6193 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noHeadClass", 5);
6194 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionClass", 6);
6195 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "systemClass", 1000);
6196 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Class", 0, sizeof(struct __ecereNameSpace__ecere__com__Class), 0, 0, 0, module, 4, 1);
6197 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6198 __ecereClass___ecereNameSpace__ecere__com__Class = class;
6199 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree, 1);
6200 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString, 1);
6201 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString, 1);
6202 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize, 1);
6203 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize, 1);
6204 __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);
6205 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6206 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6207 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6208 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6209 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structSize", "int", 4, 4, 1);
6210 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_vTbl", "int (* *)()", arch_PointerSize, arch_PointerSize, 1);
6211 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vTblSize", "int", 4, 4, 1);
6212 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Constructor", "int (*)(ecere::com::Instance)", arch_PointerSize, arch_PointerSize, 1);
6213 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Destructor", "void (*)(ecere::com::Instance)", arch_PointerSize, arch_PointerSize, 1);
6214 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offsetClass", "int", 4, 4, 1);
6215 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "sizeClass", "int", 4, 4, 1);
6216 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "base", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6217 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6218 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6219 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prop", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6220 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAndProperties", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6221 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classProperties", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6222 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "derivatives", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6223 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6224 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "startMemberID", "int", 4, 4, 1);
6225 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::ClassType", 4, 4, 1);
6226 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6227 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6228 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6229 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6230 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeSize", "int", 4, 4, 1);
6231 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultAlignment", "int", 4, 4, 1);
6232 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Initialize", "void (*)()", arch_PointerSize, arch_PointerSize, 1);
6233 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6234 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchers", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6235 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "designerClass", "char *", arch_PointerSize, arch_PointerSize, 1);
6236 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "noExpansion", "bool", 4, 4, 1);
6237 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultProperty", "char *", arch_PointerSize, arch_PointerSize, 1);
6238 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "comRedefinition", "bool", 4, 4, 1);
6239 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
6240 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
6241 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "internalDecl", "bool", 4, 4, 1);
6242 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6243 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computeSize", "bool", 4, 4, 1);
6244 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6245 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "destructionWatchOffset", "int", 4, 4, 1);
6246 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fixed", "bool", 4, 4, 1);
6247 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "delayedCPValues", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6248 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "inheritanceAccess", "ecere::com::AccessMode", 4, 4, 1);
6249 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fullName", "char *", arch_PointerSize, arch_PointerSize, 1);
6250 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6251 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversions", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6252 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateParams", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6253 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateArgs", "ecere::com::ClassTemplateArgument *", arch_PointerSize, arch_PointerSize, 1);
6254 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6255 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templatized", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6256 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParams", "int", 4, 4, 1);
6257 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isInstanceClass", "bool", 4, 4, 1);
6259 class->fixed = (unsigned int)1;
6261 class->noExpansion = (unsigned int)1;
6262 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateParameterType", 0, 0, 0, 0, 0, module, 4, 1);
6263 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6264 __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType = class;
6265 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "type", 0);
6266 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 1);
6267 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "expression", 2);
6268 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6269 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6270 __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType = class;
6271 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dataMember", 0);
6272 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "method", 1);
6273 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "prop", 2);
6274 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::ClassTemplateArgument", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument), 0, 0, 0, module, 4, 1);
6275 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6276 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument = class;
6278 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6281 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6283 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6284 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6285 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6287 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expression", "ecere::com::DataValue", 8, 8, 1);
6289 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6291 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "memberString", "char *", arch_PointerSize, arch_PointerSize, 1);
6293 struct __ecereNameSpace__ecere__com__DataMember * dataMember2 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6295 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "member", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6296 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "prop", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6297 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "method", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6298 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember1, dataMember2);
6300 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6302 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6304 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassTemplateParameter", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateParameter), 0, 0, 0, module, 4, 1);
6305 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6306 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter = class;
6307 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ClassTemplateParameter", arch_PointerSize, arch_PointerSize, 1);
6308 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ClassTemplateParameter", arch_PointerSize, arch_PointerSize, 1);
6309 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6310 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::TemplateParameterType", 4, 4, 1);
6312 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6314 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6315 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "ecere::com::TemplateMemberType", 4, 4, 1);
6316 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6318 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArg", "ecere::com::ClassTemplateArgument", structSize_ClassTemplateArgument, 8, 1);
6319 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "param", "void *", arch_PointerSize, arch_PointerSize, 1);
6321 class->fixed = (unsigned int)1;
6322 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::MethodType", 0, 0, 0, 0, 0, module, 4, 1);
6323 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6324 __ecereClass___ecereNameSpace__ecere__com__MethodType = class;
6325 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMethod", 0);
6326 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "virtualMethod", 1);
6327 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Method", 0, sizeof(struct __ecereNameSpace__ecere__com__Method), 0, 0, 0, module, 4, 1);
6328 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6329 __ecereClass___ecereNameSpace__ecere__com__Method = class;
6330 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6331 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6332 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6333 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6334 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6335 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int (*)()", arch_PointerSize, arch_PointerSize, 1);
6336 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6337 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::MethodType", 4, 4, 1);
6338 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6339 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6340 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6341 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6342 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6344 class->fixed = (unsigned int)1;
6345 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ImportType", 0, 0, 0, 0, 0, module, 4, 1);
6346 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6347 __ecereClass___ecereNameSpace__ecere__com__ImportType = class;
6348 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalImport", 0);
6349 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticImport", 1);
6350 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "remoteImport", 2);
6351 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preDeclImport", 3);
6352 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "comCheckImport", 4);
6353 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::NameSpace", 0, sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 0, 0, 0, module, 4, 1);
6354 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6355 __ecereClass___ecereNameSpace__ecere__com__NameSpace = class;
6356 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6357 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "btParent", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6358 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6359 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6360 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6361 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6362 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpaces", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6363 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classes", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6364 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defines", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6365 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "functions", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6366 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::DataValue", 0, sizeof(struct __ecereNameSpace__ecere__com__DataValue), 0, 0, 0, module, 4, 1);
6367 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6368 __ecereClass___ecereNameSpace__ecere__com__DataValue = class;
6370 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6372 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "c", "char", 1, 1, 1);
6373 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "uc", "byte", 1, 1, 1);
6374 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "s", "short", 2, 2, 1);
6375 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "us", "uint16", 2, 2, 1);
6376 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i", "int", 4, 4, 1);
6377 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui", "uint", 4, 4, 1);
6378 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "p", "void *", arch_PointerSize, arch_PointerSize, 1);
6379 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "f", "float", 4, 4, 1);
6380 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "d", "double", 8, 8, 1);
6381 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i64", "int64", 8, 8, 1);
6382 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui64", "uint64", 8, 8, 1);
6383 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6385 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DataMember", 0, sizeof(struct __ecereNameSpace__ecere__com__DataMember), 0, 0, 0, module, 4, 1);
6386 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6387 __ecereClass___ecereNameSpace__ecere__com__DataMember = class;
6388 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6389 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6390 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6391 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6392 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6393 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6394 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6395 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6396 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6397 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6398 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6399 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6400 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6401 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6402 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAlpha", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6403 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6404 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6406 class->fixed = (unsigned int)1;
6407 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BitMember", 0, sizeof(struct __ecereNameSpace__ecere__com__BitMember), 0, 0, 0, module, 4, 1);
6408 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6409 __ecereClass___ecereNameSpace__ecere__com__BitMember = class;
6410 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::BitMember", arch_PointerSize, arch_PointerSize, 1);
6411 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::BitMember", arch_PointerSize, arch_PointerSize, 1);
6412 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6413 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6414 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6415 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6416 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6417 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6418 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6419 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6420 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6421 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "int", 4, 4, 1);
6422 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
6423 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "mask", "uint64", 8, 8, 1);
6425 class->fixed = (unsigned int)1;
6426 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassProperty", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassProperty), 0, 0, 0, module, 4, 1);
6427 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6428 __ecereClass___ecereNameSpace__ecere__com__ClassProperty = class;
6429 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6430 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6431 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6432 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6433 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6434 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void (*)(ecere::com::Class, int64)", arch_PointerSize, arch_PointerSize, 1);
6435 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int64 (*)(ecere::com::Class)", arch_PointerSize, arch_PointerSize, 1);
6436 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6437 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6438 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
6440 class->fixed = (unsigned int)1;
6441 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DefinedExpression", 0, sizeof(struct __ecereNameSpace__ecere__com__DefinedExpression), 0, 0, 0, module, 4, 1);
6442 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6443 __ecereClass___ecereNameSpace__ecere__com__DefinedExpression = class;
6444 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DefinedExpression", arch_PointerSize, arch_PointerSize, 1);
6445 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DefinedExpression", arch_PointerSize, arch_PointerSize, 1);
6446 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6447 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "value", "char *", arch_PointerSize, arch_PointerSize, 1);
6448 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6450 class->fixed = (unsigned int)1;
6451 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::GlobalFunction", 0, sizeof(struct __ecereNameSpace__ecere__com__GlobalFunction), 0, 0, 0, module, 4, 1);
6452 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6453 __ecereClass___ecereNameSpace__ecere__com__GlobalFunction = class;
6454 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::GlobalFunction", arch_PointerSize, arch_PointerSize, 1);
6455 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::GlobalFunction", arch_PointerSize, arch_PointerSize, 1);
6456 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6457 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int (*)()", arch_PointerSize, arch_PointerSize, 1);
6458 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6459 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6460 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6461 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6462 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6464 class->fixed = (unsigned int)1;
6465 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::EnumClassData", 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), 0, 0, 0, module, 4, 1);
6466 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6467 __ecereClass___ecereNameSpace__ecere__com__EnumClassData = class;
6468 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "values", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6469 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "largest", "int", 4, 4, 1);
6471 class->fixed = (unsigned int)1;
6472 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Watcher", 0, sizeof(struct __ecereNameSpace__ecere__com__Watcher), 0, 0, 0, module, 2, 1);
6473 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6474 __ecereClass___ecereNameSpace__ecere__com__Watcher = class;
6476 class->fixed = (unsigned int)1;
6477 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemBlock", 0, sizeof(struct __ecereNameSpace__ecere__com__MemBlock), 0, 0, 0, module, 2, 1);
6478 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6479 __ecereClass___ecereNameSpace__ecere__com__MemBlock = class;
6480 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemPart", 0, sizeof(struct __ecereNameSpace__ecere__com__MemPart), 0, 0, 0, module, 2, 1);
6481 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6482 __ecereClass___ecereNameSpace__ecere__com__MemPart = class;
6483 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::BlockPool", 0, sizeof(struct __ecereNameSpace__ecere__com__BlockPool), 0, 0, 0, module, 2, 1);
6484 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6485 __ecereClass___ecereNameSpace__ecere__com__BlockPool = class;
6486 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "ecere::com::MemBlock Add()", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add, 1);
6487 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Expand", "bool Expand(unsigned int numBlocks)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand, 1);
6488 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::com::MemBlock block)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove, 1);
6489 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6490 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6491 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "free", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6492 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSize", "uint", 4, 4, 1);
6493 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSpace", "uint", 4, 4, 1);
6494 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParts", "int", 4, 4, 1);
6495 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numBlocks", "int", 4, 4, 1);
6496 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "totalSize", "uint", 4, 4, 1);
6497 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "usedSpace", "uint", 4, 4, 1);
6498 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::log2i", "uint ecere::com::log2i(uint number)", __ecereNameSpace__ecere__com__log2i, module, 4);
6499 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::pow2i", "uint ecere::com::pow2i(uint number)", __ecereNameSpace__ecere__com__pow2i, module, 4);
6500 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::memswap", "void ecere::com::memswap(byte * a, byte * b, uint size)", __ecereNameSpace__ecere__com__memswap, module, 4);
6501 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::CheckMemory", "void ecere::com::CheckMemory(void)", __ecereNameSpace__ecere__com__CheckMemory, module, 4);
6502 __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 (* Constructor)(void *), void (* Destructor)(void *), ecere::com::Module module, ecere::com::AccessMode declMode, ecere::com::AccessMode inheritanceAccess)", __ecereNameSpace__ecere__com__eSystem_RegisterClass, module, 4);
6503 __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);
6504 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoi64", "int64 ecere::com::_strtoi64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoi64, module, 4);
6505 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoui64", "uint64 ecere::com::_strtoui64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoui64, module, 4);
6506 __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);
6507 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::DefaultFunction", "bool ecere::com::DefaultFunction(void)", __ecereNameSpace__ecere__com__DefaultFunction, module, 2);
6508 __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);
6509 __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);
6510 __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);
6511 __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);
6512 __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);
6513 __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);
6514 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_GetProperty", "int64 ecere::com::eClass_GetProperty(ecere::com::Class _class, char * name)", __ecereNameSpace__ecere__com__eClass_GetProperty, module, 4);
6515 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eClass_SetProperty", "void ecere::com::eClass_SetProperty(ecere::com::Class _class, char * name, int64 value)", __ecereNameSpace__ecere__com__eClass_SetProperty, module, 4);
6516 __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);
6517 __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);
6518 __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);
6519 __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);
6520 __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);
6521 __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);
6522 __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);
6523 __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);
6524 __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);
6525 __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);
6526 __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);
6527 __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);
6528 __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);
6529 __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);
6530 __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);
6531 __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);
6532 __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);
6533 __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);
6534 __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);
6535 __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);
6536 __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);
6537 __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);
6538 __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 (* Load)(ecere::com::Module module), bool (* Unload)(ecere::com::Module module))", __ecereNameSpace__ecere__com__eModule_LoadStatic, module, 4);
6539 __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);
6540 __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);
6541 __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);
6542 __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);
6543 __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);
6544 __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);
6545 __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);
6546 __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);
6547 __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);
6548 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New", "void * ecere::com::eSystem_New(uint size)", __ecereNameSpace__ecere__com__eSystem_New, module, 4);
6549 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New0", "void * ecere::com::eSystem_New0(uint size)", __ecereNameSpace__ecere__com__eSystem_New0, module, 4);
6550 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Delete", "void ecere::com::eSystem_Delete(void * memory)", __ecereNameSpace__ecere__com__eSystem_Delete, module, 4);
6551 __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);
6552 __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);
6553 __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);
6554 __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);
6555 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eProperty_SelfWatch", "void ecere::com::eProperty_SelfWatch(ecere::com::Class _class, char * name, void (* callback)(void *))", __ecereNameSpace__ecere__com__eProperty_SelfWatch, module, 4);
6556 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_Watch", "void ecere::com::eInstance_Watch(void * instance, ecere::com::Property _property, void * object, void (* callback)(void *, void *))", __ecereNameSpace__ecere__com__eInstance_Watch, module, 4);
6557 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eInstance_WatchDestruction", "void ecere::com::eInstance_WatchDestruction(ecere::com::Instance instance, ecere::com::Instance object, void (* callback)(ecere::com::Instance, ecere::com::Instance))", __ecereNameSpace__ecere__com__eInstance_WatchDestruction, module, 4);
6558 __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);
6559 __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);
6560 __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);
6561 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::LocateModule", "bool ecere::com::LocateModule(char * name, char * fileName)", __ecereNameSpace__ecere__com__LocateModule, module, 4);
6562 __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);
6563 __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);
6564 __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);
6565 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::Platform", 0, 0, 0, 0, 0, module, 4, 1);
6566 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6567 __ecereClass___ecereNameSpace__ecere__com__Platform = class;
6568 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString, 1);
6569 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString, 1);
6570 __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);
6571 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknown", 0);
6572 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "win32", 1);
6573 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "tux", 2);
6574 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "apple", 3);
6575 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetRuntimePlatform", "ecere::com::Platform ecere::com::GetRuntimePlatform(void)", __ecereNameSpace__ecere__com__GetRuntimePlatform, module, 4);
6576 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ObjectInfo", 0, sizeof(struct __ecereNameSpace__ecere__com__ObjectInfo), 0, 0, 0, module, 4, 1);
6577 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6578 __ecereClass___ecereNameSpace__ecere__com__ObjectInfo = class;
6579 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6580 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6581 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instance", "ecere::com::Instance", arch_PointerSize, arch_PointerSize, 1);
6582 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6583 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instCode", "Instantiation", arch_PointerSize, arch_PointerSize, 1);
6584 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "deleted", "bool", 4, 4, 1);
6585 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "oClass", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6586 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instances", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6587 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDefinition", "ClassDefinition", arch_PointerSize, arch_PointerSize, 1);
6588 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "bool", 4, 4, 1);
6589 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);
6590 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6591 __ecereClass___ecereNameSpace__ecere__com__DesignerBase = class;
6592 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindObject", "bool FindObject(ecere::com::Instance * instance, char * string)", 0, 1);
6593 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RenameObject", "void RenameObject(ecere::com::ObjectInfo object, char * name)", 0, 1);
6594 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObjectFromDesigner", "void SelectObjectFromDesigner(ecere::com::ObjectInfo object)", 0, 1);
6595 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CodeAddObject", "void CodeAddObject(ecere::com::Instance instance, ecere::com::ObjectInfo * object)", 0, 1);
6596 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SheetAddObject", "void SheetAddObject(ecere::com::ObjectInfo object)", 0, 1);
6597 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddToolBoxClass", "void AddToolBoxClass(ecere::com::Class _class)", 0, 1);
6598 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddDefaultMethod", "void AddDefaultMethod(ecere::com::Instance instance, ecere::com::Instance classInstance)", 0, 1);
6599 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DeleteObject", "void DeleteObject(ecere::com::ObjectInfo object)", 0, 1);
6600 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ObjectContainsCode", "bool ObjectContainsCode(ecere::com::ObjectInfo object)", 0, 1);
6601 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ModifyCode", "void ModifyCode(void)", 0, 1);
6602 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "UpdateProperties", "void UpdateProperties(void)", 0, 1);
6603 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDesigner", "ecere::com::ClassDesignerBase", arch_PointerSize, arch_PointerSize, 1);
6604 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "objectClass", "char *", arch_PointerSize, arch_PointerSize, 1);
6605 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isDragging", "bool", 4, 4, 1);
6606 __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);
6607 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6608 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6609 __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);
6610 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6611 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6612 __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);
6613 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6614 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;
6615 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::ClassDesignerBase", "ecere::gui::Window", 0, 0, 0, 0, module, 4, 1);
6616 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6617 __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase = class;
6618 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Reset", "void Reset(void)", 0, 1);
6619 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddObject", "void AddObject(void)", 0, 1);
6620 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObject", "void SelectObject(ecere::com::ObjectInfo object, ecere::com::Instance control)", 0, 1);
6621 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ListToolBoxClasses", "void ListToolBoxClasses(ecere::com::DesignerBase designer)", 0, 1);
6622 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PrepareTestObject", "void ::PrepareTestObject(ecere::com::DesignerBase designer, ecere::com::Instance test)", 0, 1);
6623 __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);
6624 __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);
6625 __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);
6626 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DestroyObject", "void ::DestroyObject(ecere::com::Instance object)", 0, 1);
6627 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixProperty", "void ::FixProperty(ecere::com::Property prop, ecere::com::Instance object)", 0, 1);
6628 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateNew", "void ::CreateNew(EditBox editBox, Size clientSize, char * name, char * inherit)", 0, 1);
6629 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::SetActiveDesigner", "void ecere::com::SetActiveDesigner(ecere::com::DesignerBase designer)", __ecereNameSpace__ecere__com__SetActiveDesigner, module, 4);
6630 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetActiveDesigner", "ecere::com::DesignerBase ecere::com::GetActiveDesigner(void)", __ecereNameSpace__ecere__com__GetActiveDesigner, module, 4);
6631 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::LEAD_OFFSET", "0xD800 - (0x10000 >> 10)", module, 2);
6632 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::SURROGATE_OFFSET", "0x10000 - (0xD800 << 10) - 0xDC00", module, 2);
6633 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8Validate", "bool ecere::sys::UTF8Validate(char * source)", __ecereNameSpace__ecere__sys__UTF8Validate, module, 4);
6634 __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);
6635 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8", "char * ecere::sys::UTF16toUTF8(uint16 * source)", __ecereNameSpace__ecere__sys__UTF16toUTF8, module, 4);
6636 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8Buffer", "int ecere::sys::UTF16toUTF8Buffer(uint16 * source, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer, module, 4);
6637 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8GetChar", "ecere::com::unichar ecere::sys::UTF8GetChar(char * string, int * numBytes)", __ecereNameSpace__ecere__sys__UTF8GetChar, module, 4);
6638 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16Buffer", "int ecere::sys::UTF8toUTF16Buffer(char * source, uint16 * dest, int max)", __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer, module, 4);
6639 __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);
6640 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16", "uint16 * ecere::sys::UTF8toUTF16(char * source, int * wordCount)", __ecereNameSpace__ecere__sys__UTF8toUTF16, module, 4);
6643 void __ecereUnregisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6646 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6647 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6648 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;