1 /* Code generated from eC source file: instance.ec */
3 typedef long long int64;
4 typedef unsigned long long uint64;
6 #define stdcall __attribute__((__stdcall__))
11 #elif defined(__TINYC__)
13 #define __builtin_va_list va_list
14 #define __builtin_va_start va_start
15 #define __builtin_va_end va_end
17 #define strcasecmp stricmp
18 #define strncasecmp strnicmp
19 #define __declspec(x) __attribute__((x))
20 #define stdcall __attribute__((__stdcall__))
25 typedef long long int64;
26 typedef unsigned long long uint64;
28 typedef __int64 int64;
29 typedef unsigned __int64 uint64;
32 #define __ENDIAN_PAD(x) (8 - (x))
34 #define __ENDIAN_PAD(x) 0
37 #include <sys/types.h>
39 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
45 #define arch_PointerSize sizeof(void *)
46 #define structSize_Instance (_64BIT ? 24 : 12)
47 #define structSize_Module (_64BIT ? 560 : 300)
48 #define structSize_BinaryTree (_64BIT ? 32 : 16)
49 #define structSize_OldList (_64BIT ? 32 : 20)
50 #define structSize_NamedLink64 (_64BIT ? 32 : 24)
51 #define structSize_ClassTemplateArgument (_64BIT ? 16 : 8)
52 #define structSize_ClassTemplateParameter (_64BIT ? 64 : 40)
53 #define structSize_OldLink (_64BIT ? 24 : 12)
54 #define structSize_BTNamedLink (_64BIT ? 48 : 24)
55 #define structSize_Application (_64BIT ? 800 : 428)
56 #define structSize_Watcher (_64BIT ? 32 : 16)
57 #define structSize_SelfWatcher (_64BIT ? 32 : 16)
58 #define structSize_GlobalFunction (_64BIT ? 72 : 36)
59 #define structSize_DefinedExpression (_64BIT ? 40 : 20)
60 #define structSize_BitMember (_64BIT ? 96 : 64)
61 #define structSize_NamedLink (_64BIT ? 32 : 16)
62 #define structSize_DataMember (_64BIT ? 160 : 96)
63 #define structSize_ClassProperty (_64BIT ? 80 : 40)
64 #define structSize_Method (_64BIT ? 96 : 52)
65 #define structSize_Property (_64BIT ? 152 : 88)
66 #define structSize_Class (_64BIT ? 616 : 372)
68 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
70 struct __ecereNameSpace__ecere__sys__BTNode;
72 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
74 struct __ecereNameSpace__ecere__sys__BinaryTree
76 struct __ecereNameSpace__ecere__sys__BTNode * root;
78 int (* CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
79 void (* FreeKey)(void * key);
80 } __attribute__ ((gcc_struct));
82 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
84 struct __ecereNameSpace__ecere__sys__OldList
91 } __attribute__ ((gcc_struct));
93 struct __ecereNameSpace__ecere__com__Class
95 struct __ecereNameSpace__ecere__com__Class * prev, * next;
97 int offset, structSize;
100 int (* Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
101 void (* Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
102 int offsetClass, sizeClass;
103 struct __ecereNameSpace__ecere__com__Class * base;
104 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
105 struct __ecereNameSpace__ecere__sys__BinaryTree members;
106 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
107 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
108 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
109 struct __ecereNameSpace__ecere__sys__OldList derivatives;
110 int memberID, startMemberID;
112 struct __ecereNameSpace__ecere__com__Instance * module;
113 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
114 char * dataTypeString;
115 struct __ecereNameSpace__ecere__com__Instance * dataType;
117 int defaultAlignment;
118 void (* Initialize)();
120 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
121 char * designerClass;
122 unsigned int noExpansion;
123 char * defaultProperty;
124 unsigned int comRedefinition;
126 unsigned int isRemote;
127 unsigned int internalDecl;
129 unsigned int computeSize;
131 int destructionWatchOffset;
133 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
134 int inheritanceAccess;
137 struct __ecereNameSpace__ecere__sys__OldList conversions;
138 struct __ecereNameSpace__ecere__sys__OldList templateParams;
139 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * templateArgs;
140 struct __ecereNameSpace__ecere__com__Class * templateClass;
141 struct __ecereNameSpace__ecere__sys__OldList templatized;
143 unsigned int isInstanceClass;
144 } __attribute__ ((gcc_struct));
146 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
148 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
150 struct __ecereNameSpace__ecere__com__Instance
153 struct __ecereNameSpace__ecere__com__Class * _class;
155 } __attribute__ ((gcc_struct));
157 struct __ecereNameSpace__ecere__com__Property
159 struct __ecereNameSpace__ecere__com__Property * prev, * next;
161 unsigned int isProperty;
164 struct __ecereNameSpace__ecere__com__Class * _class;
165 char * dataTypeString;
166 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
167 struct __ecereNameSpace__ecere__com__Instance * dataType;
168 void (* Set)(void *, int);
170 unsigned int (* IsSet)(void *);
174 unsigned int conversion;
175 unsigned int watcherOffset;
177 unsigned int compiled;
178 unsigned int selfWatchable, isWatchable;
179 } __attribute__ ((gcc_struct));
181 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
183 struct __ecereNameSpace__ecere__com__DataMember
185 struct __ecereNameSpace__ecere__com__DataMember * prev, * next;
187 unsigned int isProperty;
190 struct __ecereNameSpace__ecere__com__Class * _class;
191 char * dataTypeString;
192 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
193 struct __ecereNameSpace__ecere__com__Instance * dataType;
197 struct __ecereNameSpace__ecere__sys__OldList members;
198 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
201 } __attribute__ ((gcc_struct));
203 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
205 struct __ecereNameSpace__ecere__com__Method
208 struct __ecereNameSpace__ecere__com__Method * parent, * left, * right;
213 struct __ecereNameSpace__ecere__com__Class * _class;
215 char * dataTypeString;
216 struct __ecereNameSpace__ecere__com__Instance * dataType;
218 } __attribute__ ((gcc_struct));
220 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
222 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
224 struct __ecereNameSpace__ecere__com__SerialBuffer
226 unsigned char * _buffer;
230 } __attribute__ ((gcc_struct));
232 struct __ecereNameSpace__ecere__com__DataValue
247 } __attribute__ ((gcc_struct));
248 } __attribute__ ((gcc_struct));
250 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
252 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
258 char * dataTypeString;
259 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
260 } __attribute__ ((gcc_struct));
261 struct __ecereNameSpace__ecere__com__DataValue expression;
267 struct __ecereNameSpace__ecere__com__DataMember * member;
268 struct __ecereNameSpace__ecere__com__Property * prop;
269 struct __ecereNameSpace__ecere__com__Method * method;
270 } __attribute__ ((gcc_struct));
271 } __attribute__ ((gcc_struct));
272 } __attribute__ ((gcc_struct));
273 } __attribute__ ((gcc_struct));
275 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
277 void exit(int status);
279 void * calloc(size_t nmemb, size_t size);
281 void free(void * ptr);
283 void * malloc(size_t size);
285 void * realloc(void * ptr, size_t size);
287 long int strtol(const char * nptr, char ** endptr, int base);
289 long long int strtoll(const char * nptr, char ** endptr, int base);
291 unsigned long long int strtoull(const char * nptr, char ** endptr, int base);
293 typedef __builtin_va_list va_list;
297 FILE * bsl_stdin(void);
299 FILE * bsl_stdout(void);
301 FILE * bsl_stderr(void);
303 char * fgets(char * s, int size, FILE * stream);
305 FILE * fopen(const char * path, const char * mode);
307 int fclose(FILE * fp);
309 int fflush(FILE * stream);
311 int fgetc(FILE * stream);
313 int fprintf(FILE * stream, const char * format, ...);
315 int fputc(int c, FILE * stream);
317 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
319 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
321 int vsnprintf(char *, size_t, const char *, ...);
323 int snprintf(char * str, size_t, const char * format, ...);
325 int fseek(FILE * stream, long offset, int whence);
327 long ftell(FILE * stream);
329 int feof(FILE * stream);
331 int ferror(FILE * stream);
333 int fileno(FILE * stream);
336 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name);
338 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size);
340 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size);
342 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
344 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
346 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory);
348 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class);
350 extern int __ecereVMethodID_class_OnGetDataFromString;
352 unsigned int Instance_LocateModule(char * name, char * fileName);
354 void Instance_COM_Initialize(int argc, char ** argv, char ** parsedCommand, int * argcPtr, char *** argvPtr);
356 void * Instance_Module_Load(const char * libLocation, const char * name, void ** Load, void ** Unload);
358 void Instance_Module_Free(void * library);
360 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__unichar;
362 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max);
364 char * __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * tempString, void * fieldData, unsigned int * needClass)
366 __ecereNameSpace__ecere__sys__UTF32toUTF8Len(&(*this), 1, tempString, 5);
370 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes);
372 unsigned int __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, unsigned int * this, char * string)
376 (*this) = __ecereNameSpace__ecere__sys__UTF8GetChar(string, &nb);
380 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
382 void __ecereNameSpace__ecere__com__MemoryGuard_PushLoc(char * loc)
386 void __ecereNameSpace__ecere__com__MemoryGuard_PopLoc()
390 extern unsigned int __ecereDll_Load_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
392 extern unsigned int __ecereDll_Unload_ecere(struct __ecereNameSpace__ecere__com__Instance * module);
394 struct __ecereNameSpace__ecere__com__BTNamedLink
397 struct __ecereNameSpace__ecere__com__BTNamedLink * parent, * left, * right;
400 } __attribute__ ((gcc_struct));
402 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BTNamedLink;
404 struct __ecereNameSpace__ecere__com__SelfWatcher
406 struct __ecereNameSpace__ecere__com__SelfWatcher * prev, * next;
407 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *);
408 struct __ecereNameSpace__ecere__com__Property * _property;
409 } __attribute__ ((gcc_struct));
411 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SelfWatcher;
413 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AccessMode;
415 struct __ecereNameSpace__ecere__com__SubModule
417 struct __ecereNameSpace__ecere__com__SubModule * prev, * next;
418 struct __ecereNameSpace__ecere__com__Instance * module;
420 } __attribute__ ((gcc_struct));
422 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SubModule;
424 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMemberType;
426 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassType;
428 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Class_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Class_char__PTR_;
430 char * __ecereProp___ecereNameSpace__ecere__com__Class_Get_char__PTR_(struct __ecereNameSpace__ecere__com__Class * this)
435 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
437 struct __ecereNameSpace__ecere__com__Class * __ecereProp___ecereNameSpace__ecere__com__Class_Set_char__PTR_(char * value)
439 struct __ecereNameSpace__ecere__com__Class * theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, value);
444 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)
449 struct __ecereNameSpace__ecere__com__NameSpace
452 struct __ecereNameSpace__ecere__com__NameSpace * btParent, * left, * right;
454 struct __ecereNameSpace__ecere__com__NameSpace * parent;
455 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
456 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
457 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
458 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
459 } __attribute__ ((gcc_struct));
461 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
463 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
465 struct __ecereNameSpace__ecere__com__Module
467 struct __ecereNameSpace__ecere__com__Instance * application;
468 struct __ecereNameSpace__ecere__sys__OldList classes;
469 struct __ecereNameSpace__ecere__sys__OldList defines;
470 struct __ecereNameSpace__ecere__sys__OldList functions;
471 struct __ecereNameSpace__ecere__sys__OldList modules;
472 struct __ecereNameSpace__ecere__com__Instance * prev;
473 struct __ecereNameSpace__ecere__com__Instance * next;
479 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
480 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
481 } __attribute__ ((gcc_struct));
483 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class ** this, char * string)
485 struct __ecereNameSpace__ecere__com__Class * theClass;
487 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
489 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, string);
490 (*this) = (void *)theClass;
491 return theClass != (((void *)0));
494 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * data);
496 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_char__PTR_;
498 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)
500 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Serialize(channel, __ecereClass_char__PTR_, this->fullName);
503 void __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree(struct __ecereNameSpace__ecere__com__Class * class, struct __ecereNameSpace__ecere__com__Class * this)
507 void __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Class * class, void * * data);
509 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_String;
511 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)
513 struct __ecereNameSpace__ecere__com__Class * theClass;
516 __ecereMethod___ecereNameSpace__ecere__com__IOChannel_Unserialize(channel, __ecereClass_String, &string);
517 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(__thisModule, string);
519 theClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, string);
520 (__ecereNameSpace__ecere__com__eSystem_Delete(string), string = 0);
521 (*this) = (void *)theClass;
524 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType;
526 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType;
528 struct __ecereNameSpace__ecere__com__ClassTemplateParameter
530 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prev, * next;
535 char * dataTypeString;
537 } __attribute__ ((gcc_struct));
538 struct __ecereNameSpace__ecere__com__ClassTemplateArgument defaultArg;
540 } __attribute__ ((gcc_struct));
542 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
544 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MethodType;
546 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ImportType;
548 struct __ecereNameSpace__ecere__com__BitMember
550 struct __ecereNameSpace__ecere__com__BitMember * prev, * next;
552 unsigned int isProperty;
555 struct __ecereNameSpace__ecere__com__Class * _class;
556 char * dataTypeString;
557 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
558 struct __ecereNameSpace__ecere__com__Instance * dataType;
563 } __attribute__ ((gcc_struct));
565 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BitMember;
567 struct __ecereNameSpace__ecere__com__ClassProperty
570 struct __ecereNameSpace__ecere__com__ClassProperty * parent, * left, * right;
572 void (* Set)(struct __ecereNameSpace__ecere__com__Class *, long long);
573 long long (* Get)(struct __ecereNameSpace__ecere__com__Class *);
574 char * dataTypeString;
575 struct __ecereNameSpace__ecere__com__Instance * dataType;
576 unsigned int constant;
577 } __attribute__ ((gcc_struct));
579 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassProperty;
581 struct __ecereNameSpace__ecere__com__DefinedExpression
583 struct __ecereNameSpace__ecere__com__DefinedExpression * prev, * next;
586 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
587 } __attribute__ ((gcc_struct));
589 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
591 struct __ecereNameSpace__ecere__com__GlobalFunction
593 struct __ecereNameSpace__ecere__com__GlobalFunction * prev, * next;
596 struct __ecereNameSpace__ecere__com__Instance * module;
597 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
598 char * dataTypeString;
599 struct __ecereNameSpace__ecere__com__Instance * dataType;
601 } __attribute__ ((gcc_struct));
603 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__GlobalFunction;
605 struct __ecereNameSpace__ecere__com__EnumClassData
607 struct __ecereNameSpace__ecere__sys__OldList values;
609 } __attribute__ ((gcc_struct));
611 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__EnumClassData;
613 struct __ecereNameSpace__ecere__com__Watcher
615 struct __ecereNameSpace__ecere__com__Watcher * prev, * next;
616 void (* callback)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__Instance *);
617 struct __ecereNameSpace__ecere__com__Instance * object;
618 } __attribute__ ((gcc_struct));
620 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Watcher;
622 static unsigned int __ecereNameSpace__ecere__com__TOTAL_MEM = 0;
624 static unsigned int __ecereNameSpace__ecere__com__OUTSIDE_MEM = 0;
626 struct __ecereNameSpace__ecere__com__MemBlock
628 struct __ecereNameSpace__ecere__com__MemBlock * prev, * next;
629 struct __ecereNameSpace__ecere__com__MemPart * part;
631 } __attribute__ ((gcc_struct));
633 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemBlock;
635 struct __ecereNameSpace__ecere__com__MemPart
640 struct __ecereNameSpace__ecere__com__BlockPool * pool;
641 } __attribute__ ((gcc_struct));
643 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__MemPart;
645 static int __ecereNameSpace__ecere__com__power15[] =
647 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
650 struct __ecereNameSpace__ecere__com__BlockPool
652 struct __ecereNameSpace__ecere__com__MemBlock * first, * last;
653 struct __ecereNameSpace__ecere__com__MemBlock * free;
654 unsigned int blockSize;
655 unsigned int blockSpace;
658 unsigned int totalSize;
659 unsigned int usedSpace;
660 } __attribute__ ((gcc_struct));
662 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__BlockPool;
664 unsigned int __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(struct __ecereNameSpace__ecere__com__BlockPool * this, unsigned int numBlocks)
666 unsigned char * memory = malloc(numBlocks * this->blockSpace);
668 __ecereNameSpace__ecere__com__TOTAL_MEM += numBlocks * this->blockSpace;
672 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)memory;
673 struct __ecereNameSpace__ecere__com__MemPart * part = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__MemPart));
675 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemPart);
677 for(c = 0; c < numBlocks - 1; c++)
680 block->prev = (((void *)0));
681 block->next = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)block + this->blockSpace);
684 part->blocksUsed = 0;
686 part->memory = memory;
687 part->size = numBlocks;
689 block->prev = (((void *)0));
690 block->next = (((void *)0));
691 this->totalSize += numBlocks;
698 struct __ecereNameSpace__ecere__com__MemBlock * __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(struct __ecereNameSpace__ecere__com__BlockPool * this)
701 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
704 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(this, (__simpleStruct0 = this->numBlocks / 2, (1 > __simpleStruct0) ? 1 : __simpleStruct0));
708 block->prev = this->last;
710 block->prev->next = block;
714 this->free = block->next;
715 block->next = (((void *)0));
716 block->part->blocksUsed++;
722 void __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove(struct __ecereNameSpace__ecere__com__BlockPool * this, struct __ecereNameSpace__ecere__com__MemBlock * block)
725 block->prev->next = block->next;
727 block->next->prev = block->prev;
728 if(this->first == block)
729 this->first = block->next;
730 if(this->last == block)
731 this->last = block->prev;
732 block->next = this->free;
734 block->part->blocksUsed--;
736 (*block->part->pool).usedSpace -= block->size;
737 if(!block->part->blocksUsed && this->numBlocks && this->totalSize > this->numBlocks + this->numBlocks / 2)
739 struct __ecereNameSpace__ecere__com__MemBlock * next = this->free, * prev = (((void *)0));
740 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
742 this->free = (((void *)0));
743 this->totalSize -= part->size;
746 if(next->part != part)
758 prev->next = (((void *)0));
759 __ecereNameSpace__ecere__com__TOTAL_MEM -= part->size * this->blockSpace;
760 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemPart);
767 static struct __ecereNameSpace__ecere__com__BlockPool * __ecereNameSpace__ecere__com__pools;
769 static unsigned int __ecereNameSpace__ecere__com__PosFibonacci(unsigned int number)
772 unsigned int last = 1, prev = 0;
773 unsigned int current = 1;
775 for(pos = 0; ; pos++)
780 if(current >= number)
786 static unsigned int __ecereNameSpace__ecere__com__NthFibonacci(unsigned int number)
789 unsigned int last = 1, prev = 0;
790 unsigned int current = 1;
792 for(pos = 0; pos <= number; pos++)
801 static unsigned int __ecereNameSpace__ecere__com__NextFibonacci(unsigned int number)
804 unsigned int last = 1, prev = 0;
805 unsigned int current = 1;
807 for(pos = 0; ; pos++)
812 if(current >= number)
817 static unsigned int __ecereNameSpace__ecere__com__log1_5i(unsigned int number)
820 uint64 current = sizeof(void *);
822 for(pos = 0; pos < 31; pos++)
824 if(current >= number)
826 current = current * 3 / 2;
833 static unsigned int __ecereNameSpace__ecere__com__pow1_5(unsigned int number)
836 uint64 current = sizeof(void *);
838 for(pos = 0; pos < number; pos++)
840 current = current * 3 / 2;
844 return (unsigned int)current;
847 static unsigned int __ecereNameSpace__ecere__com__pow1_5i(unsigned int number)
850 uint64 current = sizeof(void *);
852 for(pos = 0; pos < 31; pos++)
854 if(current >= number)
855 return (unsigned int)current;
856 current = current * 3 / 2;
860 return (unsigned int)current;
863 unsigned int __ecereNameSpace__ecere__com__log2i(unsigned int number)
867 for(power = 0; power < 32; power++)
868 if((1L << power) >= number)
873 unsigned int __ecereNameSpace__ecere__com__pow2i(unsigned int number)
875 return 1 << __ecereNameSpace__ecere__com__log2i(number);
878 static unsigned int __ecereNameSpace__ecere__com__memoryInitialized = 0x0;
880 static void __ecereNameSpace__ecere__com__InitMemory()
884 __ecereNameSpace__ecere__com__memoryInitialized = 0x1;
885 __ecereNameSpace__ecere__com__pools = calloc(1, sizeof(struct __ecereNameSpace__ecere__com__BlockPool) * 31);
886 for(c = 0; c < 31; c++)
890 __ecereNameSpace__ecere__com__pools[c].blockSize = __ecereNameSpace__ecere__com__pow1_5(c);
891 if(__ecereNameSpace__ecere__com__pools[c].blockSize % sizeof(void *))
892 __ecereNameSpace__ecere__com__pools[c].blockSize += sizeof(void *) - (__ecereNameSpace__ecere__com__pools[c].blockSize % sizeof(void *));
893 __ecereNameSpace__ecere__com__pools[c].blockSpace = __ecereNameSpace__ecere__com__pools[c].blockSize;
894 __ecereNameSpace__ecere__com__pools[c].blockSpace += sizeof(struct __ecereNameSpace__ecere__com__MemBlock);
895 expansion = (__ecereNameSpace__ecere__com__pools[c].blockSize < 128) ? 1024 : (131072 / __ecereNameSpace__ecere__com__pools[c].blockSize);
897 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand(&__ecereNameSpace__ecere__com__pools[c], ((1 > expansion) ? 1 : expansion));
901 unsigned int __ecereNameSpace__ecere__com__poolingDisabled;
903 static void * __ecereNameSpace__ecere__com___mymalloc(unsigned int size)
905 struct __ecereNameSpace__ecere__com__MemBlock * block = (((void *)0));
909 unsigned int p = __ecereNameSpace__ecere__com__log1_5i(size);
911 if(!__ecereNameSpace__ecere__com__memoryInitialized)
912 __ecereNameSpace__ecere__com__InitMemory();
913 if(!__ecereNameSpace__ecere__com__poolingDisabled && p < 31)
915 block = __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add(&__ecereNameSpace__ecere__com__pools[p]);
919 __ecereNameSpace__ecere__com__pools[p].usedSpace += size;
924 block = malloc(sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
927 __ecereNameSpace__ecere__com__TOTAL_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
928 __ecereNameSpace__ecere__com__OUTSIDE_MEM += sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size;
929 block->part = (((void *)0));
934 return block ? ((struct __ecereNameSpace__ecere__com__MemBlock *)block + 1) : (((void *)0));
937 extern void * memset(void * area, int value, size_t count);
939 static void * __ecereNameSpace__ecere__com___mycalloc(int n, unsigned int size)
941 void * pointer = __ecereNameSpace__ecere__com___mymalloc(n * size);
944 memset(pointer, 0, n * size);
948 static void __ecereNameSpace__ecere__com___myfree(void * pointer)
952 struct __ecereNameSpace__ecere__com__MemBlock * block = (struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock));
953 struct __ecereNameSpace__ecere__com__MemPart * part = block->part;
954 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
957 __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove((&*pool), block);
960 __ecereNameSpace__ecere__com__TOTAL_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
961 __ecereNameSpace__ecere__com__OUTSIDE_MEM -= sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + block->size;
967 extern void * memcpy(void * , const void * , size_t size);
969 static void * __ecereNameSpace__ecere__com___myrealloc(void * pointer, unsigned int size)
971 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
972 void * newPointer = (((void *)0));
973 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
974 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
980 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
981 unsigned int mod = ns % sizeof(void *);
984 ns += sizeof(void *) - mod;
985 if(ns == (*pool).blockSize)
987 newPointer = pointer;
988 (*pool).usedSpace += size - block->size;
994 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
998 __ecereNameSpace__ecere__com__TOTAL_MEM += size - newBlock->size;
999 __ecereNameSpace__ecere__com__OUTSIDE_MEM += size - newBlock->size;
1000 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1006 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1007 if(pointer && newPointer)
1009 unsigned int __simpleStruct0;
1011 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1012 __ecereNameSpace__ecere__com___myfree(pointer);
1018 static void * __ecereNameSpace__ecere__com___mycrealloc(void * pointer, unsigned int size)
1020 struct __ecereNameSpace__ecere__com__MemBlock * block = pointer ? ((struct __ecereNameSpace__ecere__com__MemBlock *)((unsigned char *)pointer - sizeof(struct __ecereNameSpace__ecere__com__MemBlock))) : (((void *)0));
1021 void * newPointer = (((void *)0));
1022 struct __ecereNameSpace__ecere__com__MemPart * part = block ? block->part : (((void *)0));
1023 struct __ecereNameSpace__ecere__com__BlockPool * pool = part ? part->pool : (((void *)0));
1029 unsigned int ns = __ecereNameSpace__ecere__com__pow1_5i(size);
1030 unsigned int mod = ns % sizeof(void *);
1033 ns += sizeof(void *) - mod;
1034 if(ns == (*pool).blockSize)
1036 int extra = size - block->size;
1038 newPointer = pointer;
1039 (*pool).usedSpace += extra;
1041 memset((unsigned char *)pointer + block->size, 0, extra);
1047 struct __ecereNameSpace__ecere__com__MemBlock * newBlock = realloc(block, sizeof(struct __ecereNameSpace__ecere__com__MemBlock) + size);
1051 int extra = size - newBlock->size;
1053 __ecereNameSpace__ecere__com__TOTAL_MEM += extra;
1054 __ecereNameSpace__ecere__com__OUTSIDE_MEM += extra;
1055 newPointer = ((struct __ecereNameSpace__ecere__com__MemBlock *)newBlock + 1);
1057 memset((unsigned char *)newPointer + newBlock->size, 0, extra);
1058 newBlock->size = size;
1064 newPointer = __ecereNameSpace__ecere__com___mymalloc(size);
1069 unsigned int __simpleStruct0;
1071 memcpy(newPointer, pointer, (__simpleStruct0 = block->size, (size < __simpleStruct0) ? size : __simpleStruct0));
1072 if(size > block->size)
1073 memset((unsigned char *)newPointer + block->size, 0, size - block->size);
1074 __ecereNameSpace__ecere__com___myfree(pointer);
1077 memset((unsigned char *)newPointer, 0, size);
1083 static void * __ecereNameSpace__ecere__com___malloc(unsigned int size)
1087 pointer = size ? __ecereNameSpace__ecere__com___mymalloc(size + 2 * 0) : (((void *)0));
1088 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1091 static void * __ecereNameSpace__ecere__com___calloc(int n, unsigned int size)
1095 pointer = (n * size) ? __ecereNameSpace__ecere__com___mycalloc(1, n * size + 2 * 0) : (((void *)0));
1096 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1099 static void __ecereNameSpace__ecere__com___free(void * pointer);
1101 static void * __ecereNameSpace__ecere__com___realloc(void * pointer, unsigned int size)
1105 __ecereNameSpace__ecere__com___free(pointer);
1106 return (((void *)0));
1108 pointer = __ecereNameSpace__ecere__com___myrealloc(pointer, size);
1109 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1112 static void * __ecereNameSpace__ecere__com___crealloc(void * pointer, unsigned int size)
1115 return (((void *)0));
1116 pointer = __ecereNameSpace__ecere__com___mycrealloc(pointer, size);
1117 return pointer ? ((unsigned char *)pointer + 0) : (((void *)0));
1120 static void __ecereNameSpace__ecere__com___free(void * pointer)
1124 __ecereNameSpace__ecere__com___myfree(pointer);
1128 void __ecereNameSpace__ecere__com__memswap(unsigned char * a, unsigned char * b, unsigned int size)
1131 unsigned char buffer[1024];
1133 for(c = 0; c < size; )
1135 int s = sizeof buffer;
1139 memcpy(buffer, a + c, s);
1140 memcpy(a + c, b + c, s);
1141 memcpy(b + c, buffer, s);
1146 void __ecereNameSpace__ecere__com__CheckMemory()
1150 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule);
1152 extern char * strchr(const char * , int);
1154 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
1156 struct __ecereNameSpace__ecere__sys__OldLink
1158 struct __ecereNameSpace__ecere__sys__OldLink * prev;
1159 struct __ecereNameSpace__ecere__sys__OldLink * next;
1161 } __attribute__ ((gcc_struct));
1163 extern char * __ecereNameSpace__ecere__sys__CopyString(char * string);
1165 extern void * memmove(void * , const void * , size_t size);
1167 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property);
1169 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(struct __ecereNameSpace__ecere__sys__BinaryTree * this);
1171 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BinaryTree_first;
1173 struct __ecereNameSpace__ecere__sys__BTNode * __ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(struct __ecereNameSpace__ecere__sys__BTNode * this);
1175 extern struct __ecereNameSpace__ecere__com__Property ** __ecereProp___ecereNameSpace__ecere__sys__BTNode_next;
1177 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * key);
1179 void __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1181 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1183 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1185 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item);
1187 static void __ecereNameSpace__ecere__com__FixDerivativesBase(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Class * mod)
1189 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
1190 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1192 __ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)));
1193 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
1195 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
1196 int type = _class->type;
1198 int size = _class->structSize - _class->offset;
1199 int oldSizeClass = _class->sizeClass;
1200 int sizeClass = _class->sizeClass - _class->offsetClass;
1201 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1202 char * dataTypeString = (((void *)0));
1203 struct __ecereNameSpace__ecere__com__Class * baseClass;
1204 unsigned int offsetBefore = _class->offset;
1205 int offsetClass, totalSizeClass;
1207 for(baseClass = base; baseClass->base; baseClass = baseClass->base)
1209 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1211 if(base->type == 1 && type == 0)
1216 if(base && (_class->type == 0 || _class->type == 5 || _class->type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1225 base = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, "enum");
1228 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1229 offsetClass = base ? (base->templateClass ? base->templateClass->sizeClass : base->sizeClass) : (type == 5 ? 0 : 0);
1230 totalSizeClass = offsetClass + sizeClass;
1231 if(type == 0 || type == 5)
1232 _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);
1235 _class->memberOffset = (base && (base->templateClass ? base->templateClass->structSize : base->structSize) && base->type != 1000) ? (base->templateClass ? base->templateClass->structSize : base->structSize) : 0;
1236 _class->typeSize = _class->structSize = _class->memberOffset + size;
1238 else if(type == 2 || type == 4 || type == 3)
1240 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1243 _class->typeSize = dataTypeClass->typeSize;
1244 _class->structSize = 0;
1246 else if(type == 0 || type == 5)
1248 _class->structSize = _class->offset + size;
1249 _class->typeSize = sizeof(void *);
1251 if(_class->type != 1000)
1252 _class->type = type;
1253 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1254 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1255 if(totalSizeClass != oldSizeClass)
1257 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1258 memmove((unsigned char *)_class->data + mod->offsetClass, (unsigned char *)_class->data, totalSizeClass - mod->sizeClass);
1259 if(base->type != 1000 && base->type != 4)
1260 memcpy((unsigned char *)_class->data, (unsigned char *)base->data, totalSizeClass - _class->sizeClass);
1262 memset((unsigned char *)_class->data, 0, totalSizeClass - _class->sizeClass);
1264 _class->offsetClass = offsetClass;
1265 _class->sizeClass = totalSizeClass;
1267 struct __ecereNameSpace__ecere__com__Method * method, * next;
1268 struct __ecereNameSpace__ecere__com__Class * b;
1269 unsigned int needUpdate = (mod != (base->templateClass ? base->templateClass : base) || _class->vTblSize != mod->vTblSize);
1270 int updateStart = -1, updateEnd = -1;
1272 if(mod->base && mod->base->base && mod->base->vTblSize > baseClass->vTblSize && needUpdate)
1274 _class->vTblSize += mod->base->vTblSize - baseClass->vTblSize;
1275 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
1276 memmove(_class->_vTbl + mod->base->vTblSize, _class->_vTbl + baseClass->vTblSize, (_class->vTblSize - mod->vTblSize) * sizeof(void *));
1277 updateStart = baseClass->vTblSize;
1278 updateEnd = updateStart + mod->base->vTblSize - baseClass->vTblSize;
1279 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
1281 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
1282 if(method->type == 1)
1283 method->vid += mod->base->vTblSize - baseClass->vTblSize;
1286 for(b = mod->base; b && b != (((void *)0)); b = b->base)
1288 struct __ecereNameSpace__ecere__com__Method * vMethod;
1290 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)))
1292 if(vMethod->type == 1)
1294 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, vMethod->name);
1297 if(method->function)
1298 _class->_vTbl[vMethod->vid] = method->function;
1301 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
1302 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1303 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
1307 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
1308 method->type = vMethod->type;
1309 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(vMethod->dataTypeString);
1310 method->_class = vMethod->_class;
1313 else if((vMethod->vid >= updateStart && vMethod->vid < updateEnd) || _class->_vTbl[vMethod->vid] == b->_vTbl[vMethod->vid])
1314 _class->_vTbl[vMethod->vid] = _class->base->_vTbl[vMethod->vid];
1319 if(type == 0 || type == 5 || type == 1)
1321 struct __ecereNameSpace__ecere__com__Property * prop;
1322 struct __ecereNameSpace__ecere__com__DataMember * member;
1323 struct __ecereNameSpace__ecere__com__Class * c;
1325 for(c = mod->base; c; c = c->base)
1327 struct __ecereNameSpace__ecere__com__Property * _property;
1329 for(_property = c->membersAndProperties.first; _property; _property = _property->next)
1331 if(_property->isProperty)
1333 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
1338 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
1340 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
1342 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
1344 if(watcher->_property == prop)
1345 watcher->_property = _property;
1347 _property->selfWatchable = 0x1;
1348 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
1349 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
1350 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
1351 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
1358 struct __ecereNameSpace__ecere__com__DataMember * next;
1360 for(member = _class->membersAndProperties.first; member; member = next)
1362 int offsetDiff = _class->offset - offsetBefore;
1364 next = member->next;
1365 if(!member->isProperty)
1367 if(oldType == 2 && type != 2)
1369 struct __ecereNameSpace__ecere__com__DataMember * prev = member->prev;
1371 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&_class->membersAndProperties, member);
1372 member = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eSystem_Renew0(member, sizeof(unsigned char) * (sizeof(struct __ecereNameSpace__ecere__com__DataMember)));
1373 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(&_class->membersAndProperties, prev, member);
1377 member->offset += offsetDiff;
1378 member->memberOffset += offsetDiff;
1381 member->id += mod->base->memberID;
1383 _class->memberID += mod->base->memberID;
1384 _class->startMemberID += mod->base->memberID;
1387 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, mod);
1389 struct __ecereNameSpace__ecere__com__Class * c;
1391 for(c = mod->base; c; c = c->base)
1393 struct __ecereNameSpace__ecere__com__ClassProperty * _property;
1395 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)))
1397 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
1403 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
1405 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
1407 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
1408 char * templateParams = strchr(template->name, '<');
1410 template->base = base->base;
1411 template->_vTbl = base->_vTbl;
1412 template->data = base->data;
1413 template->offset = base->offset;
1414 template->offsetClass = base->offsetClass;
1415 template->sizeClass = base->sizeClass;
1416 template->structSize = base->structSize;
1417 template->vTblSize = base->vTblSize;
1418 __ecereNameSpace__ecere__com__FixDerivativesBase(template, mod);
1423 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Application;
1425 struct __ecereNameSpace__ecere__com__Application
1430 unsigned int isGUIApp;
1431 struct __ecereNameSpace__ecere__sys__OldList allModules;
1432 char * parsedCommand;
1433 struct __ecereNameSpace__ecere__com__NameSpace systemNameSpace;
1434 } __attribute__ ((gcc_struct));
1436 extern int strcmp(const char * , const char * );
1438 extern char * strncpy(char * , const char * , size_t n);
1440 extern int printf(char * , ...);
1442 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base);
1444 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace);
1446 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset);
1448 extern char * strcpy(char * , const char * );
1450 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template);
1452 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg);
1454 extern char * strstr(const char * , const char * );
1456 int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString(struct __ecereNameSpace__ecere__sys__BinaryTree * this, char * a, char * b);
1458 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(struct __ecereNameSpace__ecere__sys__BinaryTree * this, struct __ecereNameSpace__ecere__sys__BTNode * node);
1460 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data);
1462 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item);
1464 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)
1467 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
1468 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;
1469 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;
1470 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;
1471 unsigned int crossBits = force32Bits || force64Bits;
1472 unsigned int fixed = 0x0;
1474 if(inCompiler && crossBits)
1476 struct __ecereNameSpace__ecere__com__Class * c = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, name);
1480 else if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name && !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->name, "ecereCOM"))
1484 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
1486 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
1488 for(c = 0; name[c]; c++)
1490 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
1492 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
1493 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
1495 strncpy(spaceName, name + start, c - start);
1496 spaceName[c - start] = '\0';
1497 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
1500 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
1501 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1502 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1503 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1504 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1505 (*newSpace).name = spaceName;
1506 (*newSpace).parent = nameSpace;
1507 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
1510 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
1511 nameSpace = newSpace;
1523 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (((void *)0));
1524 struct __ecereNameSpace__ecere__com__Class * _class = (((void *)0));
1525 char * dataTypeString = (((void *)0));
1526 struct __ecereNameSpace__ecere__com__Class * enumBase = (((void *)0));
1527 struct __ecereNameSpace__ecere__com__Class * base = (baseName && baseName[0]) ? __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName) : (((void *)0));
1528 unsigned int refine = 0x0;
1529 struct __ecereNameSpace__ecere__com__Class * prevBase = (((void *)0));
1531 if(base && !base->internalDecl && (base->type == 5 || base->type == 1 || base->type == 0))
1533 if(base->type == 1 && type == 0)
1538 if(base && (type == 0 || type == 5 || type == 1) && (base->type == 3 || base->type == 2 || base->type == 4))
1542 if(!base || base->type == 1000 || base->isInstanceClass)
1546 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"))
1548 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1549 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1553 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1554 base->internalDecl = 0x1;
1556 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1559 else if(type == 1 && (!baseName || !baseName[0]))
1561 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "struct");
1562 dataTypeString = name + start;
1567 dataTypeString = "struct __ecereNameSpace__ecere__com__Instance";
1569 dataTypeString = "void *";
1571 dataTypeString = (baseName && baseName[0]) ? baseName : "unsigned int";
1573 dataTypeString = (baseName && baseName[0]) ? baseName : "int";
1575 dataTypeString = name + start;
1576 if(base || (!baseName || !baseName[0]) || type == 2 || type == 3)
1578 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"))
1580 if(type == 0 && strcmp(name, "ecere::com::Instance") && strcmp(name, "enum") && strcmp(name, "struct"))
1581 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1583 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1598 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "enum");
1601 dataTypeString = enumBase ? enumBase->dataTypeString : base->dataTypeString;
1603 offsetClass = base ? base->sizeClass : (type == 5 ? 0 : 0);
1604 totalSizeClass = offsetClass + sizeClass;
1605 if((_class = __ecereNameSpace__ecere__com__eSystem_FindClass(module, name)))
1607 if(!_class->internalDecl)
1610 printf("error: Redefinition of class %s\n", name);
1613 _class->comRedefinition = 0x1;
1616 return (((void *)0));
1618 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1619 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, name + start);
1620 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1622 struct __ecereNameSpace__ecere__sys__OldLink * t;
1624 for(t = _class->templatized.first; t; t = t->next)
1626 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1628 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1629 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1633 struct __ecereNameSpace__ecere__com__NameSpace * ns = _class->nameSpace;
1635 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))
1637 struct __ecereNameSpace__ecere__com__NameSpace * parent = (*ns).parent;
1639 __ecereNameSpace__ecere__com__NameSpace_Free(ns);
1640 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*parent).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)ns);
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, &(*((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, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes);
1652 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);
1654 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);
1656 _class = classLink->data;
1657 if(_class && _class->internalDecl)
1659 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
1660 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1662 struct __ecereNameSpace__ecere__sys__OldLink * t;
1664 for(t = _class->templatized.first; t; t = t->next)
1666 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1668 classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, template->name);
1669 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
1673 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
1674 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1678 _class = __ecereNameSpace__ecere__com___calloc(1, sizeof(struct __ecereNameSpace__ecere__com__Class));
1679 _class->methods.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1680 _class->members.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1681 _class->prop.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1682 _class->classProperties.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
1683 _class->name = __ecereNameSpace__ecere__sys__CopyString(name + start);
1684 _class->fullName = __ecereNameSpace__ecere__sys__CopyString(name);
1689 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
1690 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
1692 __ecereInstance1->name = _class->name, __ecereInstance1->data = _class, __ecereInstance1;
1695 struct __ecereNameSpace__ecere__sys__OldLink * t;
1697 for(t = _class->templatized.first; t; t = t->next)
1699 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1701 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
1702 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
1704 __ecereInstance1->name = template->name, __ecereInstance1->data = template, __ecereInstance1;
1711 if(!base && baseName && strcmp(baseName, name))
1713 if(strchr(baseName, '<'))
1715 char templateClassName[1024];
1716 struct __ecereNameSpace__ecere__com__Class * templateBase;
1718 strcpy(templateClassName, baseName);
1719 *strchr(templateClassName, '<') = '\0';
1720 templateBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, templateClassName);
1723 templateBase = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, templateClassName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1724 templateBase->internalDecl = 0x1;
1726 base = __ecereNameSpace__ecere__com__eSystem_FindClass(module, baseName);
1730 base = __ecereNameSpace__ecere__com__eSystem_RegisterClass((int)0, baseName, (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, declMode, 1);
1731 base->internalDecl = 0x1;
1735 _class->internalDecl = 0x0;
1738 _class->data = __ecereNameSpace__ecere__com__eSystem_Renew(_class->data, sizeof(unsigned char) * (totalSizeClass));
1739 if(base && base->type != 1000 && base->type != 4)
1740 memcpy(_class->data, base->data, offsetClass);
1742 memset(_class->data, 0, offsetClass);
1743 memset((unsigned char *)_class->data + offsetClass, 0, sizeClass);
1745 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
1746 _class->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(dataTypeString);
1747 _class->defaultAlignment = base ? base->defaultAlignment : 0;
1750 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->classes, _class);
1754 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
1755 struct __ecereNameSpace__ecere__sys__OldLink * deriv = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(&base->derivatives, _class);
1757 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
1761 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes, _class);
1763 _class->nameSpace = nameSpace;
1765 struct __ecereNameSpace__ecere__sys__OldLink * t;
1767 for(t = _class->templatized.first; t; t = t->next)
1769 struct __ecereNameSpace__ecere__com__Class * template = t->data;
1771 template->nameSpace = nameSpace;
1774 _class->module = module;
1775 prevBase = _class->base;
1776 _class->base = base;
1780 struct __ecereNameSpace__ecere__com__Class * sClass;
1782 for(sClass = base; sClass; sClass = sClass->base)
1784 if(sClass->templateClass)
1785 sClass = sClass->templateClass;
1786 numParams += sClass->templateParams.count;
1790 if(_class->templateArgs)
1792 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
1794 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
1795 _class->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
1796 _class->numParams = numParams;
1797 for(sClass = _class; sClass; sClass = sClass->base)
1799 struct __ecereNameSpace__ecere__com__Class * prevClass;
1800 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
1803 if(sClass->templateClass)
1804 sClass = sClass->templateClass;
1805 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
1807 if(prevClass->templateClass)
1808 prevClass = prevClass->templateClass;
1809 id += prevClass->templateParams.count;
1811 if(base->templateArgs)
1813 for(param = sClass->templateParams.first; param; param = param->next)
1815 _class->templateArgs[id] = base->templateArgs[id];
1816 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &_class->templateArgs[id]);
1823 _class->memberID = _class->startMemberID = (base && (type == 0 || type == 5 || type == 1)) ? base->memberID : 0;
1824 if(type == 0 || type == 5)
1825 _class->offset = (base && base->structSize && base->type != 1000) ? base->structSize : ((type == 5) ? 0 : ((force64Bits && inCompiler && fixed) ? 24 : (force32Bits && inCompiler && fixed) ? 12 : structSize_Instance));
1828 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"))
1832 if(!strcmp(name, "ecere::sys::FileListing"))
1834 size = 3 * (force32Bits ? 4 : 8);
1835 _class->structAlignment = force32Bits ? 4 : 8;
1837 else if(!strcmp(name, "ecere::com::Class"))
1839 else if(!strcmp(name, "ecere::com::ClassProperty"))
1841 else if(!strcmp(name, "ecere::com::NameSpace"))
1843 else if(!strcmp(name, "ecere::sys::BufferedFile"))
1845 else if(!strcmp(name, "ecere::sys::BTNode"))
1847 else if(!strcmp(name, "ecere::sys::StringBTNode"))
1849 else if(!strcmp(name, "ecere::sys::OldList"))
1851 else if(!strcmp(name, "ecere::sys::Item"))
1853 else if(!strcmp(name, "ecere::sys::NamedLink"))
1855 else if(!strcmp(name, "ecere::sys::OldLink"))
1857 else if(!strcmp(name, "ecere::sys::NamedItem"))
1859 else if(!strcmp(name, "ecere::sys::NamedItem64"))
1861 else if(!strcmp(name, "ecere::sys::BinaryTree"))
1863 else if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application && inCompiler)
1865 if(fixed || type == 1)
1872 _class->memberOffset = (base && base->structSize && base->type != 1000) ? base->structSize : 0;
1873 _class->typeSize = _class->structSize = _class->memberOffset + size;
1875 else if(type == 2 || type == 4 || type == 3)
1877 struct __ecereNameSpace__ecere__com__Class * dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, dataTypeString);
1880 _class->typeSize = dataTypeClass->typeSize;
1881 _class->structSize = 0;
1883 else if(type == 0 || type == 5)
1885 _class->structSize = _class->offset + size;
1886 _class->typeSize = sizeof(void *);
1888 _class->offsetClass = offsetClass;
1889 _class->sizeClass = totalSizeClass;
1890 _class->Constructor = (void *)Constructor;
1891 _class->Destructor = Destructor;
1892 if(_class->type != 1000)
1893 _class->type = type;
1895 _class->computeSize = 0x1;
1897 _class->computeSize = 0x0;
1898 _class->inheritanceAccess = inheritanceAccess;
1902 _class->base = base = enumBase;
1904 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
1906 if(base && base->type != 4)
1909 data->largest = ((struct __ecereNameSpace__ecere__com__EnumClassData *)base->data)->largest;
1915 unsigned int oldSize = _class->vTblSize;
1917 if(base->vTblSize && _class->vTblSize < base->vTblSize)
1919 _class->vTblSize = base->vTblSize;
1920 _class->_vTbl = __ecereNameSpace__ecere__com___realloc(_class->_vTbl, sizeof(int (*)()) * _class->vTblSize);
1924 if(_class->type == 0 && strcmp(_class->name, "ecere::com::Instance") && strcmp(_class->name, "enum") && strcmp(_class->name, "struct"))
1925 prevBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "ecere::com::Instance");
1927 prevBase = __ecereNameSpace__ecere__com__eSystem_FindClass(module, "class");
1929 for(i = 0; i < base->vTblSize; i++)
1931 if(i >= oldSize || _class->_vTbl[i] == prevBase->_vTbl[i])
1932 _class->_vTbl[i] = base->_vTbl[i];
1937 struct __ecereNameSpace__ecere__sys__OldLink * link = (link = __ecereNameSpace__ecere__com__eSystem_New0(structSize_OldLink), link->data = _class, link);
1939 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->base->derivatives, link);
1941 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
1945 return (((void *)0));
1948 static void __ecereNameSpace__ecere__com__DataMember_Free(struct __ecereNameSpace__ecere__com__DataMember * parentMember)
1950 struct __ecereNameSpace__ecere__com__DataMember * member;
1951 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
1953 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->name), parentMember->name = 0);
1954 (__ecereNameSpace__ecere__com__eSystem_Delete(parentMember->dataTypeString), parentMember->dataTypeString = 0);
1955 while((member = parentMember->members.first))
1957 __ecereNameSpace__ecere__com__DataMember_Free(member);
1958 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&parentMember->members, member);
1960 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentMember->membersAlpha)))
1962 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentMember->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
1966 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
1968 struct __ecereNameSpace__ecere__sys__NamedLink
1970 struct __ecereNameSpace__ecere__sys__NamedLink * prev;
1971 struct __ecereNameSpace__ecere__sys__NamedLink * next;
1974 } __attribute__ ((gcc_struct));
1976 static void __ecereNameSpace__ecere__com__FreeEnumValue(struct __ecereNameSpace__ecere__sys__NamedLink * value)
1978 (__ecereNameSpace__ecere__com__eSystem_Delete(value->name), value->name = 0);
1981 static void __ecereNameSpace__ecere__com__FreeTemplateArg(struct __ecereNameSpace__ecere__com__Class * template, struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, int id)
1986 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
1989 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
1996 static void __ecereNameSpace__ecere__com__FreeTemplateArgs(struct __ecereNameSpace__ecere__com__Class * template)
1998 if(template->templateArgs)
2000 struct __ecereNameSpace__ecere__com__Class * _class;
2002 for(_class = template; _class; _class = _class->base)
2004 struct __ecereNameSpace__ecere__com__Class * prevClass;
2005 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2008 if(_class->templateClass)
2009 _class = _class->templateClass;
2010 for(prevClass = _class->base; prevClass; prevClass = prevClass->base)
2012 if(prevClass->templateClass)
2013 prevClass = prevClass->templateClass;
2014 id += prevClass->templateParams.count;
2016 if(id < template->numParams)
2018 for(param = _class->templateParams.first; param; param = param->next)
2023 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].dataTypeString), template->templateArgs[id].dataTypeString = 0);
2026 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs[id].memberString), template->templateArgs[id].memberString = 0);
2038 static void __ecereNameSpace__ecere__com__FreeTemplate(struct __ecereNameSpace__ecere__com__Class * template)
2040 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
2042 if(template->nameSpace)
2044 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
2046 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2048 __ecereNameSpace__ecere__com__FreeTemplateArgs(template);
2049 (__ecereNameSpace__ecere__com__eSystem_Delete(template->fullName), template->fullName = 0);
2050 (__ecereNameSpace__ecere__com__eSystem_Delete(template->name), template->name = 0);
2051 (__ecereNameSpace__ecere__com__eSystem_Delete(template->templateArgs), template->templateArgs = 0);
2052 (__ecereNameSpace__ecere__com__eSystem_Delete(template->dataTypeString), template->dataTypeString = 0);
2053 while((deriv = template->derivatives.first))
2055 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2056 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&template->derivatives, deriv);
2058 __ecereNameSpace__ecere__com___free(template);
2061 static void __ecereNameSpace__ecere__com__FreeTemplates(struct __ecereNameSpace__ecere__com__Class * _class)
2063 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
2065 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
2067 __ecereNameSpace__ecere__com__FreeTemplates(deriv->data);
2069 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
2070 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
2071 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2072 while((template = _class->templatized.first))
2074 __ecereNameSpace__ecere__com__FreeTemplates(template->data);
2075 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
2076 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
2080 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void * ));
2082 void __ecereNameSpace__ecere__com__eClass_Unregister(struct __ecereNameSpace__ecere__com__Class * _class)
2084 struct __ecereNameSpace__ecere__com__BTNamedLink * namedLink;
2085 struct __ecereNameSpace__ecere__com__DataMember * member;
2086 struct __ecereNameSpace__ecere__com__Method * method;
2087 struct __ecereNameSpace__ecere__sys__OldLink * deriv, * template;
2088 struct __ecereNameSpace__ecere__com__ClassProperty * classProp;
2089 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2091 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->_vTbl), _class->_vTbl = 0);
2092 __ecereNameSpace__ecere__com__FreeTemplates(_class);
2093 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
2094 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
2095 while((template = _class->templatized.first))
2097 __ecereNameSpace__ecere__com__FreeTemplate(template->data);
2098 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templatized, template);
2100 while((member = _class->membersAndProperties.first))
2102 if(!member->isProperty && (member->type == 1 || member->type == 2))
2103 __ecereNameSpace__ecere__com__DataMember_Free(member);
2104 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
2105 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
2106 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, member);
2108 while((member = _class->conversions.first))
2110 (__ecereNameSpace__ecere__com__eSystem_Delete(member->name), member->name = 0);
2111 (__ecereNameSpace__ecere__com__eSystem_Delete(member->dataTypeString), member->dataTypeString = 0);
2112 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->conversions, member);
2114 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->prop)))
2116 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
2118 while((namedLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->members)))
2120 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)namedLink);
2122 while((classProp = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->classProperties)))
2124 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->name), classProp->name = 0);
2125 (__ecereNameSpace__ecere__com__eSystem_Delete(classProp->dataTypeString), classProp->dataTypeString = 0);
2126 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)classProp);
2128 while((method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods)))
2130 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
2131 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
2132 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
2134 if(_class->type == 4)
2136 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
2138 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&data->values, (void *)__ecereNameSpace__ecere__com__FreeEnumValue);
2140 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->delayedCPValues, (((void *)0)));
2141 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(&_class->selfWatchers, (((void *)0)));
2144 struct __ecereNameSpace__ecere__com__Class * base = _class->base;
2146 for(deriv = base->derivatives.first; deriv; deriv = deriv->next)
2148 if(deriv->data == _class)
2152 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&base->derivatives, deriv);
2154 while((deriv = _class->derivatives.first))
2156 ((struct __ecereNameSpace__ecere__com__Class *)deriv->data)->base = (((void *)0));
2157 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->derivatives, deriv);
2159 if(_class->nameSpace)
2161 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
2163 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
2165 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->name), _class->name = 0);
2166 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->fullName), _class->fullName = 0);
2167 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->dataTypeString), _class->dataTypeString = 0);
2168 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->data), _class->data = 0);
2169 while((param = _class->templateParams.first))
2174 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.dataTypeString), param->defaultArg.dataTypeString = 0);
2177 (__ecereNameSpace__ecere__com__eSystem_Delete(param->defaultArg.memberString), param->defaultArg.memberString = 0);
2182 if(param->type != 1)
2183 (__ecereNameSpace__ecere__com__eSystem_Delete(param->dataTypeString), param->dataTypeString = 0);
2184 (__ecereNameSpace__ecere__com__eSystem_Delete(param->name), param->name = 0);
2185 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->templateParams, param);
2187 __ecereNameSpace__ecere__com___free(_class);
2190 struct __ecereNameSpace__ecere__sys__BTNode * __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find(struct __ecereNameSpace__ecere__sys__BinaryTree * this, uintptr_t key);
2192 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__ScanNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2194 struct __ecereNameSpace__ecere__sys__BinaryTree * tree = (struct __ecereNameSpace__ecere__sys__BinaryTree *)((unsigned char *)nameSpace + (unsigned int)listOffset);
2195 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Find((&*tree), (uintptr_t)name);
2196 struct __ecereNameSpace__ecere__com__NameSpace * child;
2200 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)))
2202 link = __ecereNameSpace__ecere__com__ScanNameSpace(child, name, listOffset);
2210 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchNameSpace(struct __ecereNameSpace__ecere__com__NameSpace * nameSpace, char * name, void * listOffset)
2216 for(c = 0; (ch = name[c]); c++)
2222 if(level == 0 && (ch == '.' || (ch == ':' && name[c + 1] == ':')))
2224 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
2225 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
2227 memcpy(spaceName, name + start, c - start);
2228 spaceName[c - start] = '\0';
2229 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&nameSpace->nameSpaces, spaceName);
2230 __ecereNameSpace__ecere__com___free(spaceName);
2232 return (((void *)0));
2233 nameSpace = newSpace;
2234 if(level == 0 && ch == ':')
2241 return __ecereNameSpace__ecere__com__ScanNameSpace(nameSpace, name + start, listOffset);
2243 return (((void *)0));
2246 static struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereNameSpace__ecere__com__SearchModule(struct __ecereNameSpace__ecere__com__Instance * module, char * name, void * listOffset, unsigned int searchPrivate)
2248 struct __ecereNameSpace__ecere__com__SubModule * subModule;
2249 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2253 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace, name, listOffset);
2257 link = __ecereNameSpace__ecere__com__SearchNameSpace(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace, name, listOffset);
2260 for(subModule = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.first; subModule; subModule = subModule->next)
2262 if(searchPrivate || subModule->importMode == 1)
2264 link = __ecereNameSpace__ecere__com__SearchModule(subModule->module, name, listOffset, 0x0);
2269 return (((void *)0));
2272 extern int isspace(int c);
2274 long long __ecereNameSpace__ecere__com___strtoi64(char * string, char ** endString, int base)
2276 long long value = 0;
2281 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2293 if(ch == '0' && string[c + 1] == 'x')
2306 for(; (ch = string[c]); c++)
2308 if(ch >= '0' && ch <= '9')
2310 else if(ch >= 'a' && ch <= 'z')
2312 else if(ch >= 'A' && ch <= 'Z')
2317 *endString = string + c;
2328 *endString = string + c;
2332 return sign * value;
2335 uint64 __ecereNameSpace__ecere__com___strtoui64(char * string, char ** endString, int base)
2342 for(c = 0; (ch = string[c]) && isspace(ch); c++)
2354 if(ch == '0' && string[c + 1] == 'x')
2367 for(; (ch = string[c]); c++)
2369 if(ch >= '0' && ch <= '9')
2371 else if(ch >= 'a' && ch <= 'z')
2373 else if(ch >= 'A' && ch <= 'Z')
2378 *endString = string + c;
2389 *endString = string + c;
2393 return sign * value;
2396 extern char * strcat(char * , const char * );
2398 extern size_t strlen(const char * );
2400 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
2404 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
2406 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);
2409 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2413 char noTemplateName[1024];
2414 char * templateParams = strchr(name, '<');
2418 strncpy(noTemplateName, name, templateParams - name);
2419 noTemplateName[templateParams - name] = '\0';
2422 strcpy(noTemplateName, name);
2423 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);
2425 link = __ecereNameSpace__ecere__com__SearchModule(module, noTemplateName, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2428 struct __ecereNameSpace__ecere__com__Class * _class = link->data;
2429 struct __ecereNameSpace__ecere__com__Class * templatedClass = (((void *)0));
2430 char className[1024];
2432 strcpy(className, _class->fullName);
2433 strcat(className, templateParams);
2434 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);
2437 link = __ecereNameSpace__ecere__com__SearchModule(module, className, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).classes, 0x1);
2440 if(_class && templateParams)
2442 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct1 =
2446 struct __ecereNameSpace__ecere__sys__OldList __simpleStruct0 =
2451 templatedClass = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Class);
2452 *templatedClass = *_class;
2453 templatedClass->templateClass = _class;
2454 templatedClass->fullName = __ecereNameSpace__ecere__sys__CopyString(className);
2455 templatedClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(_class->dataTypeString);
2456 templatedClass->name = __ecereNameSpace__ecere__sys__CopyString(templatedClass->fullName + strlen(_class->fullName) - strlen(_class->name));
2457 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*templatedClass->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
2458 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
2460 __ecereInstance1->name = templatedClass->name, __ecereInstance1->data = templatedClass, __ecereInstance1;
2462 templatedClass->templateArgs = (((void *)0));
2463 templatedClass->numParams = 0;
2464 templatedClass->derivatives = __simpleStruct0;
2465 templatedClass->templatized = __simpleStruct1;
2466 __ecereNameSpace__ecere__com__ComputeClassParameters(templatedClass, templateParams, module);
2467 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templatized, __extension__ ({
2468 struct __ecereNameSpace__ecere__sys__OldLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_OldLink);
2470 __ecereInstance1->data = templatedClass, __ecereInstance1;
2473 return templatedClass;
2477 return (((void *)0));
2480 static void __ecereNameSpace__ecere__com__CopyTemplateArg(struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param, struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg)
2485 arg->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(arg->dataTypeString);
2490 arg->memberString = __ecereNameSpace__ecere__sys__CopyString(arg->memberString);
2495 extern char * __ecereNameSpace__ecere__sys__TrimRSpaces(char * string, char * output);
2497 extern unsigned long strtoul(const char * nptr, char * * endptr, int base);
2499 extern double strtod(char * , char * * );
2501 extern int sprintf(char * , char * , ...);
2503 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);
2505 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2507 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module);
2509 static void __ecereNameSpace__ecere__com__ComputeClassParameters(struct __ecereNameSpace__ecere__com__Class * templatedClass, char * templateParams, struct __ecereNameSpace__ecere__com__Instance * findModule)
2512 char * nextParamStart = templateParams ? (templateParams + 1) : (((void *)0));
2513 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * curParam = (((void *)0));
2514 struct __ecereNameSpace__ecere__com__Class * lastClass = (((void *)0)), * sClass;
2517 struct __ecereNameSpace__ecere__com__Class * _class = templatedClass->templateClass ? templatedClass->templateClass : templatedClass;
2519 for(sClass = _class; sClass; sClass = sClass->base)
2521 if(sClass->templateClass)
2522 sClass = sClass->templateClass;
2523 numParams += sClass->templateParams.count;
2525 if(templatedClass->templateArgs)
2526 __ecereNameSpace__ecere__com__FreeTemplateArgs(templatedClass);
2527 (__ecereNameSpace__ecere__com__eSystem_Delete(templatedClass->templateArgs), templatedClass->templateArgs = 0);
2528 templatedClass->templateArgs = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams));
2529 templatedClass->numParams = numParams;
2530 if(_class != templatedClass)
2533 if(templatedClass->base && templatedClass->base->templateArgs && _class == templatedClass)
2535 struct __ecereNameSpace__ecere__com__Class * sClass;
2537 memcpy(templatedClass->templateArgs, templatedClass->base->templateArgs, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument) * (numParams - templatedClass->templateParams.count));
2538 for(sClass = templatedClass->base; sClass; sClass = sClass->base)
2540 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2541 struct __ecereNameSpace__ecere__com__Class * prevClass;
2544 for(prevClass = sClass->base; prevClass; prevClass = prevClass->base)
2546 if(prevClass->templateClass)
2547 prevClass = prevClass->templateClass;
2548 id += prevClass->templateParams.count;
2550 if(sClass->templateClass)
2551 sClass = sClass->templateClass;
2552 for(param = sClass->templateParams.first; param; param = param->next)
2553 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[id++]);
2556 while(nextParamStart)
2558 char * paramStart = nextParamStart;
2562 while(*paramStart == ' ')
2564 paramEnd = paramStart;
2565 while((ch = *paramEnd, ch && (level > 0 || (ch != '>' && ch != ','))))
2573 nextParamStart = (ch == ',') ? (paramEnd + 1) : (((void *)0));
2574 while(*paramEnd == ' ')
2576 if(paramEnd > paramStart)
2578 char * ptr, * equal = (((void *)0));
2580 for(ptr = paramStart; ptr <= paramEnd; ptr++)
2590 char * end = equal - 1;
2595 strncpy(ident, paramStart, end + 1 - paramStart);
2596 ident[end + 1 - paramStart] = (char)0;
2597 for(sClass = _class; sClass; sClass = sClass->base)
2599 if(sClass->templateClass)
2600 sClass = sClass->templateClass;
2601 for(curParam = sClass->templateParams.first; curParam; curParam = curParam->next)
2603 if(!strcmp(curParam->name, ident))
2608 struct __ecereNameSpace__ecere__com__Class * nextClass;
2609 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * prevParam;
2612 for(prevParam = curParam->prev; prevParam; prevParam = prevParam->prev)
2614 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2616 if(nextClass->templateClass)
2617 nextClass = nextClass->templateClass;
2618 curParamID += nextClass->templateParams.count;
2629 curParam = curParam->next;
2634 for(sClass = lastClass ? lastClass->base : _class; sClass; sClass = sClass->base)
2636 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2639 if(sClass->templateClass)
2640 sClass = sClass->templateClass;
2641 for(param = sClass->templateParams.first; param; param = param->next, curParamID++)
2648 struct __ecereNameSpace__ecere__com__Class * nextClass;
2650 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2652 if(nextClass->templateClass)
2653 nextClass = nextClass->templateClass;
2654 curParamID += nextClass->templateParams.count;
2664 struct __ecereNameSpace__ecere__com__ClassTemplateArgument argument =
2673 while(*equal == ' ')
2675 memcpy(value, equal, paramEnd - equal);
2676 value[paramEnd - equal] = (char)0;
2680 memcpy(value, paramStart, paramEnd - paramStart);
2681 value[paramEnd - paramStart] = (char)0;
2683 __ecereNameSpace__ecere__sys__TrimRSpaces(value, value);
2684 switch(curParam->type)
2687 argument.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value);
2688 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, value);
2689 if(!argument.dataTypeClass)
2690 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application, value);
2691 if(!argument.dataTypeClass)
2692 argument.dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, value);
2696 struct __ecereNameSpace__ecere__com__Class * expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, curParam->dataTypeString);
2699 expClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application, curParam->dataTypeString);
2702 ((unsigned int (*)(void *, void *, const char *))(void *)expClass->_vTbl[__ecereVMethodID_class_OnGetDataFromString])(expClass, &argument.expression, value);
2704 else if(value[0] == '\"')
2706 char * endQuote = value + strlen(value) - 1;
2708 if(*endQuote != '\"')
2711 argument.expression.p = __ecereNameSpace__ecere__sys__CopyString(value + 1);
2713 else if(value[0] == '\'')
2716 unsigned int ch = __ecereNameSpace__ecere__sys__UTF8GetChar(value + 1, &nb);
2718 argument.expression.ui = ch;
2720 else if(!strcmp(curParam->dataTypeString, "uint"))
2722 argument.expression.ui = strtoul(value, (((void *)0)), 0);
2724 else if(!strcmp(curParam->dataTypeString, "char"))
2726 argument.expression.c = (char)strtol(value, (((void *)0)), 0);
2728 else if(!strcmp(curParam->dataTypeString, "byte"))
2730 argument.expression.uc = (unsigned char)strtoul(value, (((void *)0)), 0);
2732 else if(!strcmp(curParam->dataTypeString, "short"))
2734 argument.expression.s = (short)strtol(value, (((void *)0)), 0);
2736 else if(!strcmp(curParam->dataTypeString, "uint16"))
2738 argument.expression.us = (unsigned short)strtoul(value, (((void *)0)), 0);
2740 else if(!strcmp(curParam->dataTypeString, "int64"))
2742 argument.expression.i64 = __ecereNameSpace__ecere__com___strtoi64(value, (((void *)0)), 0);
2744 else if(!strcmp(curParam->dataTypeString, "uint64"))
2746 argument.expression.ui64 = __ecereNameSpace__ecere__com___strtoui64(value, (((void *)0)), 0);
2748 else if(!strcmp(curParam->dataTypeString, "float"))
2750 argument.expression.f = (float)strtod(value, (((void *)0)));
2752 else if(!strcmp(curParam->dataTypeString, "double"))
2754 argument.expression.d = strtod(value, (((void *)0)));
2758 argument.expression.i = strtol(value, (((void *)0)), 0);
2763 argument.memberString = __ecereNameSpace__ecere__sys__CopyString(value);
2766 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, curParam, curParamID);
2767 templatedClass->templateArgs[curParamID] = argument;
2771 if(templatedClass == _class)
2773 struct __ecereNameSpace__ecere__com__Class * sClass = _class;
2775 struct __ecereNameSpace__ecere__com__Class * nextClass;
2776 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2778 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2780 if(nextClass->templateClass)
2781 nextClass = nextClass->templateClass;
2782 curParamID += nextClass->templateParams.count;
2784 for(param = sClass->templateParams.first; param; param = param->next)
2786 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2788 templatedClass->templateArgs[curParamID] = param->defaultArg;
2789 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2790 if(param->type == 0 && param->defaultArg.dataTypeString)
2792 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2793 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2794 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, param->defaultArg.dataTypeString);
2795 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2796 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2802 if(templatedClass->base && templatedClass->base->templateArgs && numParams - _class->templateParams.count)
2804 int c = numParams - _class->templateParams.count - 1;
2806 for(sClass = _class->base; sClass; sClass = sClass->base)
2808 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2810 if(sClass->templateClass)
2811 sClass = sClass->templateClass;
2812 for(param = sClass->templateParams.last; param; param = param->prev)
2814 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2815 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * baseArg = &templatedClass->base->templateArgs[c];
2817 if(!(*arg).dataTypeString)
2819 *arg = templatedClass->base->templateArgs[c];
2820 __ecereNameSpace__ecere__com__CopyTemplateArg(param, arg);
2821 if(param->type == 0)
2823 if((*arg).dataTypeClass && strchr((*arg).dataTypeString, '<') && (*arg).dataTypeClass->templateArgs)
2825 struct __ecereNameSpace__ecere__com__Class * expClass = (*arg).dataTypeClass;
2826 struct __ecereNameSpace__ecere__com__Class * cClass = (((void *)0));
2829 char templateString[1024];
2831 sprintf(templateString, "%s<", expClass->templateClass->fullName);
2832 for(cClass = expClass; cClass; cClass = cClass->base)
2835 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2837 for(param = cClass->templateParams.first; param; param = param->next)
2840 struct __ecereNameSpace__ecere__com__Class * sClass;
2841 struct __ecereNameSpace__ecere__com__ClassTemplateArgument arg;
2843 for(sClass = expClass->base; sClass; sClass = sClass->base)
2844 id += sClass->templateParams.count;
2845 arg = expClass->templateArgs[id];
2847 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2848 int p = numParams - _class->templateParams.count;
2850 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2852 if(cParam->type == 0 && arg.dataTypeString && !strcmp(cParam->name, arg.dataTypeString))
2854 arg.dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2855 arg.dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2872 strcat(argument, arg.member->name);
2877 if(arg.dataTypeString)
2878 strcat(argument, arg.dataTypeString);
2885 strcat(templateString, ", ");
2886 if(lastParam != p - 1)
2888 strcat(templateString, param->name);
2889 strcat(templateString, " = ");
2891 strcat(templateString, argument);
2900 int len = strlen(templateString);
2902 if(templateString[len - 1] == '>')
2903 templateString[len++] = ' ';
2904 templateString[len++] = '>';
2905 templateString[len++] = '\0';
2907 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2908 (*arg).dataTypeString = __ecereNameSpace__ecere__sys__CopyString(templateString);
2909 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, templateString);
2910 if(!(*arg).dataTypeClass)
2911 (*arg).dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, templateString);
2915 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2916 int p = numParams - _class->templateParams.count;
2918 for(cParam = _class->templateParams.first; cParam; cParam = cParam->next, p++)
2920 if(cParam->type == 0 && (*baseArg).dataTypeString && !strcmp(cParam->name, (*baseArg).dataTypeString))
2922 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
2923 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
2924 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
2925 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
2937 struct __ecereNameSpace__ecere__com__Class * sClass;
2939 for(sClass = _class; sClass; sClass = sClass->base)
2942 struct __ecereNameSpace__ecere__com__Class * nextClass;
2943 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2945 if(sClass->templateClass)
2946 sClass = sClass->templateClass;
2947 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
2949 if(nextClass->templateClass)
2950 nextClass = nextClass->templateClass;
2951 curParamID += nextClass->templateParams.count;
2953 for(param = sClass->templateParams.first; param; param = param->next)
2955 if(!templatedClass->templateArgs[curParamID].dataTypeString)
2957 templatedClass->templateArgs[curParamID] = param->defaultArg;
2958 __ecereNameSpace__ecere__com__CopyTemplateArg(param, &templatedClass->templateArgs[curParamID]);
2959 if(param->type == 0 && param->defaultArg.dataTypeString)
2961 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, param->defaultArg.dataTypeString);
2962 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2963 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, param->defaultArg.dataTypeString);
2964 if(!templatedClass->templateArgs[curParamID].dataTypeClass)
2965 templatedClass->templateArgs[curParamID].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, param->defaultArg.dataTypeString);
2973 int c = numParams - 1;
2975 for(sClass = _class; sClass; sClass = sClass->base)
2977 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
2979 if(sClass->templateClass)
2980 sClass = sClass->templateClass;
2981 for(param = sClass->templateParams.last; param; param = param->prev)
2983 if(param->type == 0)
2985 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
2986 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
2987 struct __ecereNameSpace__ecere__com__Class * dClass;
2988 int p = numParams - 1;
2990 for(dClass = _class; dClass; dClass = dClass->base)
2992 if(dClass->templateClass)
2993 dClass = dClass->templateClass;
2994 for(cParam = dClass->templateParams.last; cParam; cParam = cParam->prev, p--)
2996 if(cParam->type == 0 && (*arg).dataTypeString && !strcmp(cParam->name, (*arg).dataTypeString))
2998 if(templatedClass->templateArgs[p].dataTypeString && c != p)
3000 __ecereNameSpace__ecere__com__FreeTemplateArg(templatedClass, param, c);
3001 (*arg).dataTypeString = templatedClass->templateArgs[p].dataTypeString;
3002 (*arg).dataTypeClass = templatedClass->templateArgs[p].dataTypeClass;
3003 __ecereNameSpace__ecere__com__CopyTemplateArg(cParam, arg);
3014 struct __ecereNameSpace__ecere__com__Class * tClass;
3015 int c = numParams - 1;
3017 for(tClass = _class; tClass; tClass = tClass->base)
3019 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
3021 if(tClass->templateClass)
3022 tClass = tClass->templateClass;
3023 for(param = tClass->templateParams.last; param; param = param->prev)
3025 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &templatedClass->templateArgs[c];
3027 if(param->type == 1 && (*arg).memberString)
3029 struct __ecereNameSpace__ecere__com__Class * memberClass = templatedClass;
3030 char * memberString = (*arg).memberString;
3031 char * colon = strstr(memberString, "::");
3032 char * memberName = memberString;
3035 memberName = colon + 2;
3038 memberString = param->defaultArg.memberString;
3039 colon = memberString ? strstr(memberString, "::") : (((void *)0));
3043 char className[1024];
3044 struct __ecereNameSpace__ecere__com__Class * sClass;
3046 memcpy(className, memberString, colon - memberString);
3047 className[colon - memberString] = '\0';
3048 for(sClass = _class; sClass; sClass = sClass->base)
3050 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
3051 struct __ecereNameSpace__ecere__com__Class * nextClass;
3054 if(sClass->templateClass)
3055 sClass = sClass->templateClass;
3056 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
3058 if(nextClass->templateClass)
3059 nextClass = nextClass->templateClass;
3060 id += nextClass->templateParams.count;
3062 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
3064 if(cParam->type == 0 && !strcmp(cParam->name, className) && templatedClass->templateArgs[id].dataTypeString)
3066 strcpy(className, templatedClass->templateArgs[id].dataTypeString);
3071 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(templatedClass->module, className);
3073 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(findModule, className);
3075 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)templatedClass->module + structSize_Instance)))->application, className);
3079 switch(param->memberType)
3082 (*arg).member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
3085 (*arg).method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
3088 (*arg).prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
3099 unsigned int __ecereNameSpace__ecere__com__DefaultFunction()
3104 unsigned int __ecereNameSpace__ecere__com__eClass_IsDerived(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3106 if(!_class && !from)
3108 if(_class && from && (_class->templateClass || from->templateClass))
3110 if(__ecereNameSpace__ecere__com__eClass_IsDerived(_class->templateClass ? _class->templateClass : _class, from->templateClass ? from->templateClass : from))
3112 if(!from->templateClass)
3114 else if(!_class->templateClass && _class == from->templateClass)
3118 struct __ecereNameSpace__ecere__com__Class * sClass;
3120 for(sClass = from; sClass; sClass = sClass->base)
3122 if(sClass->templateParams.first)
3124 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
3125 struct __ecereNameSpace__ecere__com__Class * nextClass;
3128 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
3129 p += nextClass->templateParams.count;
3130 for(param = sClass->templateParams.first; param; param = param->next, p++)
3132 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * arg = &_class->templateArgs[p];
3133 struct __ecereNameSpace__ecere__com__ClassTemplateArgument * fArg = &from->templateArgs[p];
3135 if(param->type == 0)
3137 if((*arg).dataTypeString != (*fArg).dataTypeString && (*arg).dataTypeString && (*fArg).dataTypeString && strcmp((*arg).dataTypeString, (*fArg).dataTypeString))
3140 else if(param->type == 1)
3142 if((*arg).member != (*fArg).member)
3145 else if(param->type == 2)
3147 if((*arg).expression.ui64 != (*fArg).expression.ui64)
3161 for(; _class && from; _class = _class->base)
3163 if(_class == from || _class->templateClass == from || ((_class->type == 1000 || (_class->type == 0 && _class->isInstanceClass)) && from->name && !strcmp(_class->name, from->name)))
3170 static void __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(struct __ecereNameSpace__ecere__com__Class * base, char * name, int vid, void * origFunction, char * type)
3172 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3174 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3176 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3177 struct __ecereNameSpace__ecere__com__Method * method, * next;
3178 void * function = origFunction;
3181 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3182 memmove(_class->_vTbl + vid + 1, _class->_vTbl + vid, (_class->vTblSize - vid - 1) * sizeof(void *));
3183 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3186 if(method->function)
3187 function = method->function;
3190 (__ecereNameSpace__ecere__com__eSystem_Delete(method->name), method->name = 0);
3191 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3192 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3196 (__ecereNameSpace__ecere__com__eSystem_Delete(method->dataTypeString), method->dataTypeString = 0);
3198 method->dataTypeString = __ecereNameSpace__ecere__sys__CopyString(type);
3199 method->_class = base;
3202 for(method = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&_class->methods); method; method = next)
3204 next = (struct __ecereNameSpace__ecere__com__Method *)__ecereProp___ecereNameSpace__ecere__sys__BTNode_Get_next(((struct __ecereNameSpace__ecere__sys__BTNode *)method));
3205 if(method->type == 1)
3208 _class->_vTbl[vid] = function;
3210 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3212 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3214 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3216 template->_vTbl = _class->_vTbl;
3219 if(_class->derivatives.first || _class->templatized.first)
3220 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, vid, function, type);
3223 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3225 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
3227 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3229 template->_vTbl = base->_vTbl;
3230 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(template, name, vid, origFunction, type);
3235 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3237 if(_class && !_class->comRedefinition && name)
3239 struct __ecereNameSpace__ecere__com__Class * base;
3241 for(base = _class; base; base = base->base)
3243 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3247 if(method->type == 1)
3249 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3250 void * oldFunction = _class->_vTbl[method->vid];
3252 if(method->vid >= _class->vTblSize)
3253 printf("error: virtual methods overriding failure\n");
3255 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3256 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3258 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3260 if(derivClass->_vTbl[method->vid] == oldFunction)
3261 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3264 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3266 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3268 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3270 for(deriv = template->derivatives.first; deriv; deriv = deriv->next)
3272 struct __ecereNameSpace__ecere__com__Class * derivClass = deriv->data;
3274 if(derivClass->_vTbl[method->vid] == oldFunction)
3275 __ecereNameSpace__ecere__com__eClass_AddMethod(derivClass, name, type, function, declMode);
3286 base = (((void *)0));
3294 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);
3296 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3300 return (((void *)0));
3303 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * type, void * function, int declMode)
3305 if(_class && !_class->comRedefinition && name)
3307 struct __ecereNameSpace__ecere__com__Class * base;
3309 for(base = _class; base; base = base->base)
3311 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&base->methods, name);
3315 if(method->type == 1)
3317 if(method->vid >= _class->vTblSize)
3318 printf("error: virtual methods overriding failure\n");
3320 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3323 base = (((void *)0));
3329 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);
3331 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->methods, (struct __ecereNameSpace__ecere__sys__BTNode *)method);
3332 _class->_vTbl = __ecereNameSpace__ecere__com__eSystem_Renew(_class->_vTbl, sizeof(void *) * (_class->vTblSize));
3333 _class->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
3334 if(_class->derivatives.first || _class->templatized.first)
3335 __ecereNameSpace__ecere__com__FixDerivativeVirtualMethod(_class, name, method->vid, function ? function : (void *)__ecereNameSpace__ecere__com__DefaultFunction, type);
3339 return (((void *)0));
3342 static void __ecereNameSpace__ecere__com__FixDerivativeProperty(struct __ecereNameSpace__ecere__com__Class * base, struct __ecereNameSpace__ecere__com__Property * _property)
3344 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
3346 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
3348 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
3349 struct __ecereNameSpace__ecere__com__Property * prop;
3350 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, _property->name);
3355 if(!prop->Set && !prop->Get && prop->memberAccess == 4)
3357 struct __ecereNameSpace__ecere__com__SelfWatcher * watcher;
3359 for(watcher = _class->selfWatchers.first; watcher; watcher = watcher->next)
3361 if(watcher->_property == prop)
3362 watcher->_property = _property;
3364 _property->selfWatchable = 0x1;
3365 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->name), prop->name = 0);
3366 (__ecereNameSpace__ecere__com__eSystem_Delete(prop->dataTypeString), prop->dataTypeString = 0);
3367 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->membersAndProperties, prop);
3368 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
3371 for(prop = _class->membersAndProperties.first; prop; prop = prop->next)
3374 _class->startMemberID++;
3375 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3379 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)
3381 struct __ecereNameSpace__ecere__com__Property * _property = (((void *)0));
3385 struct __ecereNameSpace__ecere__com__BTNamedLink * link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name ? name : dataType);
3388 _property = link->data;
3391 _property = __extension__ ({
3392 struct __ecereNameSpace__ecere__com__Property * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Property);
3394 __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;
3397 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, _property);
3399 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->conversions, _property);
3400 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->prop, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
3401 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
3403 __ecereInstance1->name = _property->name, __ecereInstance1->data = _property, __ecereInstance1;
3405 if(!_property->conversion)
3407 __ecereNameSpace__ecere__com__FixDerivativeProperty(_class, _property);
3414 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink64;
3416 struct __ecereNameSpace__ecere__sys__NamedLink64
3418 struct __ecereNameSpace__ecere__sys__NamedLink64 * prev;
3419 struct __ecereNameSpace__ecere__sys__NamedLink64 * next;
3422 } __attribute__ ((gcc_struct));
3424 static void __ecereNameSpace__ecere__com__SetDelayedCPValues(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__ClassProperty * _property)
3426 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
3427 struct __ecereNameSpace__ecere__sys__NamedLink64 * value, * next;
3429 for(value = _class->delayedCPValues.first; value; value = next)
3432 if(!strcmp(value->name, _property->name))
3434 _property->Set(_class, value->data);
3435 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&_class->delayedCPValues, value);
3438 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
3440 __ecereNameSpace__ecere__com__SetDelayedCPValues(deriv->data, _property);
3444 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_AddClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, char * dataType, void * setStmt, void * getStmt)
3446 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name))
3448 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);
3450 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->classProperties, (struct __ecereNameSpace__ecere__sys__BTNode *)_property);
3451 __ecereNameSpace__ecere__com__SetDelayedCPValues(_class, _property);
3454 return (((void *)0));
3457 struct __ecereNameSpace__ecere__com__ClassProperty * __ecereNameSpace__ecere__com__eClass_FindClassProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3459 struct __ecereNameSpace__ecere__com__ClassProperty * _property = (((void *)0));
3463 struct __ecereNameSpace__ecere__com__Class * origClass = _class;
3465 for(; _class; _class = _class->base)
3467 _property = (struct __ecereNameSpace__ecere__com__ClassProperty *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->classProperties, name);
3471 if(!_property && origClass->type == 4)
3473 struct __ecereNameSpace__ecere__com__Class * enumClass = __ecereNameSpace__ecere__com__eSystem_FindClass(origClass->module, "enum");
3475 _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(enumClass, name);
3481 long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name)
3483 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3485 if(_property && _property->Get && _property->Get != (void *)1)
3487 long long result = _property->Get(_class);
3494 void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, long long value)
3496 struct __ecereNameSpace__ecere__com__ClassProperty * _property = __ecereNameSpace__ecere__com__eClass_FindClassProperty(_class, name);
3501 ((void (*)(void *, long long))_property->Set)(_class, value);
3505 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->delayedCPValues, __extension__ ({
3506 struct __ecereNameSpace__ecere__sys__NamedLink64 * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink64);
3508 __ecereInstance1->name = name, __ecereInstance1->data = value, __ecereInstance1;
3513 struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_FindMethod(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3517 for(; _class; _class = _class->base)
3519 struct __ecereNameSpace__ecere__com__Method * method;
3521 if(_class->templateClass)
3522 _class = _class->templateClass;
3523 method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
3524 if(method && (method->memberAccess == 1 || _class->module == module || !method->dataTypeString))
3526 if(!method->dataTypeString)
3528 if(_class->module != module)
3530 if(method->memberAccess == 1)
3531 module = _class->module;
3534 return (((void *)0));
3543 if(_class->inheritanceAccess == 2 && _class->module != module)
3547 return (((void *)0));
3550 static unsigned int __ecereNameSpace__ecere__com__ConstructInstance(void * instance, struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__Class * from)
3552 if(_class->templateClass)
3553 _class = _class->templateClass;
3554 if(_class->base && from != _class->base)
3556 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class->base, from))
3559 if(_class->Initialize)
3561 void (* Initialize)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)_class->Initialize;
3563 _class->Initialize = (((void *)0));
3564 Initialize(_class->module);
3566 if(_class->Constructor)
3568 if(!_class->Constructor(instance))
3570 for(; _class; _class = _class->base)
3572 if(_class->templateClass)
3573 _class = _class->templateClass;
3574 if(_class->Destructor)
3575 _class->Destructor(instance);
3580 (_class->templateClass ? _class->templateClass : _class)->count++;
3584 void * __ecereNameSpace__ecere__com__eInstance_New(struct __ecereNameSpace__ecere__com__Class * _class)
3586 struct __ecereNameSpace__ecere__com__Instance * instance = (((void *)0));
3591 int size = _class->structSize;
3592 int flags = (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application + structSize_Module)))->isGUIApp;
3593 unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
3594 unsigned int force32Bits = (flags & 4) ? 0x1 : 0x0;
3596 if(force32Bits && inCompiler)
3598 if(!strcmp(_class->name, "Module"))
3600 else if(_class->templateClass && !strcmp(_class->templateClass->name, "Map"))
3605 instance = __ecereNameSpace__ecere__com___calloc(1, size);
3607 if(_class->type == 0)
3609 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3610 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3612 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, (((void *)0))))
3614 __ecereNameSpace__ecere__com___free(instance);
3615 instance = (((void *)0));
3621 void __ecereNameSpace__ecere__com__eInstance_Evolve(struct __ecereNameSpace__ecere__com__Instance ** instancePtr, struct __ecereNameSpace__ecere__com__Class * _class)
3623 if(_class && instancePtr && *instancePtr)
3625 unsigned int wasApp = 0x0, wasGuiApp = 0x0;
3626 struct __ecereNameSpace__ecere__com__Instance * instance = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eSystem_Renew(*instancePtr, sizeof(unsigned char) * (_class->structSize));
3627 struct __ecereNameSpace__ecere__com__Class * fromClass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
3629 *instancePtr = instance;
3630 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);
3631 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")))
3633 struct __ecereNameSpace__ecere__com__Instance * module;
3634 struct __ecereNameSpace__ecere__com__Instance * app = (struct __ecereNameSpace__ecere__com__Instance *)instance;
3635 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3636 struct __ecereNameSpace__ecere__com__Class * _class;
3637 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
3639 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)
3640 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = app;
3641 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)))
3643 struct __ecereNameSpace__ecere__sys__OldLink * t;
3645 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3646 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3648 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3650 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3653 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)))
3655 struct __ecereNameSpace__ecere__sys__OldLink * t;
3657 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3658 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3660 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3662 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3665 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)))
3666 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3667 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)))
3668 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3669 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)))
3670 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3671 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)))
3672 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3673 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)))
3674 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->privateNameSpace;
3675 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)))
3676 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->publicNameSpace;
3677 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)))
3679 struct __ecereNameSpace__ecere__sys__OldLink * t;
3681 ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3682 for(t = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->templatized.first; t; t = t->next)
3684 struct __ecereNameSpace__ecere__com__Class * template = t->data;
3686 template->nameSpace = ((struct __ecereNameSpace__ecere__com__Class *)link->data)->nameSpace;
3689 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)))
3690 ((struct __ecereNameSpace__ecere__com__DefinedExpression *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3691 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)))
3692 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3693 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)))
3694 ((struct __ecereNameSpace__ecere__com__GlobalFunction *)link->data)->nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3695 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)))
3696 (*nameSpace).parent = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace;
3697 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->classes.first; _class; _class = _class->next)
3699 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3701 _class->module = (struct __ecereNameSpace__ecere__com__Instance *)app;
3702 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3704 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3706 template->module = _class->module;
3709 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)
3711 for(_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes.first; _class; _class = _class->next)
3713 struct __ecereNameSpace__ecere__sys__OldLink * templateLink;
3715 _class->module = module;
3716 for(templateLink = _class->templatized.first; templateLink; templateLink = templateLink->next)
3718 struct __ecereNameSpace__ecere__com__Class * template = templateLink->data;
3720 template->module = _class->module;
3724 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->application = app;
3727 struct __ecereNameSpace__ecere__com__Class * base;
3729 for(base = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; base && base->type == 0 && base->count; base = base->base)
3730 (base->templateClass ? base->templateClass : base)->count--;
3732 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class = _class;
3733 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = _class->_vTbl;
3734 if(!__ecereNameSpace__ecere__com__ConstructInstance(instance, _class, fromClass))
3736 __ecereNameSpace__ecere__com___free(instance);
3737 *instancePtr = (((void *)0));
3742 void __ecereNameSpace__ecere__com__eInstance_Delete(struct __ecereNameSpace__ecere__com__Instance * instance)
3746 struct __ecereNameSpace__ecere__com__Class * _class, * base;
3747 unsigned int ownVtbl;
3749 ownVtbl = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl != ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl;
3750 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3752 if(_class->templateClass)
3753 _class = _class->templateClass;
3754 if(_class->destructionWatchOffset)
3756 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
3757 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
3759 for(watcher = (*watchers).first; watcher; watcher = next)
3761 next = watcher->next;
3762 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove((&*watchers), watcher);
3763 watcher->callback(watcher->object, instance);
3764 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
3767 base = _class->base;
3768 if(base && (base->type == 1000 || base->isInstanceClass))
3769 base = (((void *)0));
3770 if(_class->Destructor)
3771 _class->Destructor(instance);
3773 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
3775 if(_class->templateClass)
3776 _class = _class->templateClass;
3777 base = _class->base;
3778 (_class->templateClass ? _class->templateClass : _class)->count--;
3779 if(_class->type == 0 && !_class->count && !_class->module)
3781 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
3786 (__ecereNameSpace__ecere__com__eSystem_Delete(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl), ((struct __ecereNameSpace__ecere__com__Instance * )(char * )instance)->_vTbl = 0);
3788 __ecereNameSpace__ecere__com___free(instance);
3792 struct __ecereNameSpace__ecere__com__Property * __ecereNameSpace__ecere__com__eClass_FindProperty(struct __ecereNameSpace__ecere__com__Class * _class, char * name, struct __ecereNameSpace__ecere__com__Instance * module)
3796 for(; _class; _class = _class->base)
3798 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3800 if(_class->templateClass)
3801 _class = _class->templateClass;
3802 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->prop, name);
3805 struct __ecereNameSpace__ecere__com__Property * _property = (struct __ecereNameSpace__ecere__com__Property *)link->data;
3807 if(_property->memberAccess == 1 || _class->module == module || !_property->dataTypeString)
3809 if(!_property->dataTypeString)
3811 if(_class->module != module)
3813 if(_property->memberAccess == 1)
3814 module = _class->module;
3817 return (((void *)0));
3827 if(_class->inheritanceAccess == 2 && _class->module != module)
3831 return (((void *)0));
3834 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)
3836 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
3837 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
3839 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(alist, name);
3842 dataMember = link->data;
3843 if(dataMember->type == 0 && (dataMember->memberAccess == 1 || searchPrivate || !dataMember->dataTypeString))
3846 *offset += dataMember->offset;
3848 *id = dataMember->id;
3851 return (((void *)0));
3853 for(dataMember = list->first; dataMember; dataMember = dataMember->next)
3855 if(!dataMember->isProperty && (dataMember->memberAccess == 1 || searchPrivate) && !dataMember->name && (dataMember->type == 1 || dataMember->type == 2))
3857 struct __ecereNameSpace__ecere__com__DataMember * childMember;
3859 if(subMemberStackPos)
3860 subMemberStack[(*subMemberStackPos)++] = dataMember;
3861 childMember = __ecereNameSpace__ecere__com__FindDataMember(&dataMember->members, &dataMember->membersAlpha, name, offset, id, searchPrivate, subMemberStack, subMemberStackPos);
3865 *offset += dataMember->offset;
3867 *id += dataMember->id;
3870 if(subMemberStackPos)
3871 (*subMemberStackPos)--;
3874 return (((void *)0));
3877 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)
3879 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3881 if(subMemberStackPos)
3882 *subMemberStackPos = 0;
3885 for(; _class; _class = _class->base)
3887 if(_class->templateClass)
3888 _class = _class->templateClass;
3889 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3892 if(!dataMember->dataTypeString)
3894 if(_class->module != module)
3896 if(dataMember->memberAccess == 1)
3897 module = _class->module;
3900 return (((void *)0));
3903 dataMember = (((void *)0));
3907 dataMember->_class = _class->templateClass ? _class->templateClass : _class;
3911 if(_class->inheritanceAccess == 2 && _class->module != module)
3918 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)
3920 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3922 if(subMemberStackPos)
3923 *subMemberStackPos = 0;
3928 for(; _class; _class = _class->base)
3930 if(_class->templateClass)
3931 _class = _class->templateClass;
3932 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, offset, (((void *)0)), _class->module == module, subMemberStack, subMemberStackPos);
3935 if(!dataMember->dataTypeString)
3937 if(_class->module != module)
3939 if(dataMember->memberAccess == 1)
3940 module = _class->module;
3943 return (((void *)0));
3946 dataMember = (((void *)0));
3950 dataMember->_class = _class;
3954 if(_class->inheritanceAccess == 2 && _class->module != module)
3961 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)
3963 struct __ecereNameSpace__ecere__com__DataMember * dataMember = (((void *)0));
3965 if(subMemberStackPos)
3966 *subMemberStackPos = 0;
3969 for(; _class; _class = _class->base)
3971 if(_class->templateClass)
3972 _class = _class->templateClass;
3973 dataMember = __ecereNameSpace__ecere__com__FindDataMember(&_class->membersAndProperties, &_class->members, name, (((void *)0)), id, _class->module == module, subMemberStack, subMemberStackPos);
3976 if(!dataMember->dataTypeString)
3978 if(_class->module != module)
3980 if(dataMember->memberAccess == 1)
3981 module = _class->module;
3984 return (((void *)0));
3987 dataMember = (((void *)0));
3991 dataMember->_class = _class;
3995 if(_class->inheritanceAccess == 2 && _class->module != module)
4002 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)
4006 *curMember = (*curMember)->next;
4007 if(subMemberStackPos && *subMemberStackPos > 0 && subMemberStack[*subMemberStackPos - 1]->type == 1)
4009 *curMember = subMemberStack[--(*subMemberStackPos)];
4010 *curMember = (*curMember)->next;
4012 if(subMemberStackPos && *subMemberStackPos > 0)
4014 while(*curMember && ((*curMember)->memberAccess == 2))
4015 *curMember = (*curMember)->next;
4018 while(*curMember && (*curMember)->name)
4020 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
4023 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
4024 if(dataMember && dataMember->memberAccess != 2)
4026 *curMember = dataMember;
4030 *curMember = (*curMember)->next;
4032 if(subMemberStackPos)
4034 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
4036 subMemberStack[(*subMemberStackPos)++] = *curMember;
4037 *curMember = (*curMember)->members.first;
4038 while(*curMember && ((*curMember)->memberAccess == 2))
4039 *curMember = (*curMember)->next;
4047 if(subMemberStackPos && *subMemberStackPos)
4049 *curMember = subMemberStack[--(*subMemberStackPos)];
4050 *curMember = (*curMember)->next;
4054 struct __ecereNameSpace__ecere__com__Class * lastCurClass = *curClass;
4056 if(*curClass == _class)
4058 for(*curClass = _class; (*curClass)->base != lastCurClass && (*curClass)->base->type != 1000 && (*curClass)->inheritanceAccess != 2; *curClass = (*curClass)->base)
4060 *curMember = (*curClass)->membersAndProperties.first;
4062 if(subMemberStackPos && *subMemberStackPos > 0)
4064 while(*curMember && ((*curMember)->memberAccess == 2))
4065 *curMember = (*curMember)->next;
4068 while(*curMember && (*curMember)->name)
4070 struct __ecereNameSpace__ecere__com__DataMember * dataMember = __ecereNameSpace__ecere__com__eClass_FindDataMember(_class, (*curMember)->name, (((void *)0)), (((void *)0)), (((void *)0)));
4073 dataMember = (struct __ecereNameSpace__ecere__com__DataMember *)__ecereNameSpace__ecere__com__eClass_FindProperty(_class, (*curMember)->name, (((void *)0)));
4074 if(dataMember && dataMember->memberAccess != 2 && dataMember->id >= 0)
4076 *curMember = dataMember;
4080 *curMember = (*curMember)->next;
4082 if(subMemberStackPos)
4084 while((*curMember) && !(*curMember)->isProperty && !(*curMember)->name && ((*curMember)->type == 2 || (*curMember)->type == 1))
4086 subMemberStack[(*subMemberStackPos)++] = *curMember;
4087 *curMember = (*curMember)->members.first;
4088 while(*curMember && (*curMember)->memberAccess == 2)
4089 *curMember = (*curMember)->next;
4096 void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, char * name, void * function)
4098 if(instance && name)
4100 struct __ecereNameSpace__ecere__com__Class * _class;
4102 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4104 struct __ecereNameSpace__ecere__com__Method * method = (struct __ecereNameSpace__ecere__com__Method *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->methods, name);
4106 if(method && method->type == 1)
4108 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl == ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->_vTbl)
4110 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl = __ecereNameSpace__ecere__com___malloc(sizeof(void *) * ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->vTblSize);
4111 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);
4113 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_vTbl[method->vid] = function ? function : __ecereNameSpace__ecere__com__DefaultFunction;
4119 unsigned int __ecereNameSpace__ecere__com__eInstance_IsDerived(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Class * from)
4123 struct __ecereNameSpace__ecere__com__Class * _class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class;
4125 for(; _class; _class = _class->base)
4134 void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance)
4137 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount++;
4140 void __ecereNameSpace__ecere__com__eInstance_DecRef(struct __ecereNameSpace__ecere__com__Instance * instance)
4144 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount--;
4145 if(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_refCount <= 0)
4147 __ecereNameSpace__ecere__com__eInstance_Delete(instance);
4152 static void __ecereNameSpace__ecere__com__FixOffsets(struct __ecereNameSpace__ecere__com__Class * _class)
4154 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
4156 _class->structSize += _class->base->structSize - _class->offset;
4157 _class->offset = _class->base->structSize;
4158 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
4159 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
4162 void __ecereNameSpace__ecere__com__eClass_Resize(struct __ecereNameSpace__ecere__com__Class * _class, int newSize)
4164 struct __ecereNameSpace__ecere__sys__OldLink * deriv;
4166 _class->structSize = newSize;
4167 for(deriv = _class->derivatives.first; deriv; deriv = deriv->next)
4168 __ecereNameSpace__ecere__com__FixOffsets(deriv->data);
4171 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)
4175 if(!__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4177 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4181 int __simpleStruct0;
4183 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4184 if(_class->memberOffset % alignment)
4185 _class->memberOffset += alignment - (_class->memberOffset % alignment);
4187 dataMember = __extension__ ({
4188 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4190 __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;
4192 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4193 _class->memberOffset += size;
4194 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4195 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4197 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4202 return (((void *)0));
4205 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)
4207 if(name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&member->membersAlpha, name))
4209 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4213 int __simpleStruct0;
4215 member->structAlignment = (__simpleStruct0 = member->structAlignment, (__simpleStruct0 > alignment) ? __simpleStruct0 : alignment);
4216 if(member->memberOffset % alignment)
4217 member->memberOffset += alignment - (member->memberOffset % alignment);
4219 dataMember = __extension__ ({
4220 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4222 __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;
4224 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&member->members, dataMember);
4225 if(member->type == 1)
4227 if(size > member->memberOffset)
4228 member->memberOffset = size;
4231 member->memberOffset += size;
4232 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&member->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4233 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4235 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4239 return (((void *)0));
4242 struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eMember_New(int type, int declMode)
4244 return __extension__ ({
4245 struct __ecereNameSpace__ecere__com__DataMember * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_DataMember);
4247 __ecereInstance1->type = type, __ecereInstance1->memberAccess = declMode, __ecereInstance1->membersAlpha.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString, __ecereInstance1;
4251 static void __ecereNameSpace__ecere__com__SetMemberClass(struct __ecereNameSpace__ecere__com__DataMember * member, struct __ecereNameSpace__ecere__com__Class * _class)
4253 struct __ecereNameSpace__ecere__com__DataMember * dataMember;
4255 member->_class = _class;
4256 for(dataMember = member->members.first; dataMember; dataMember = dataMember->next)
4257 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4260 unsigned int __ecereNameSpace__ecere__com__eMember_AddMember(struct __ecereNameSpace__ecere__com__DataMember * addTo, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4262 int __simpleStruct0, __simpleStruct1;
4264 if(dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&addTo->membersAlpha, dataMember->name))
4266 __ecereNameSpace__ecere__com__DataMember_Free(dataMember);
4267 ((dataMember ? (__ecereClass___ecereNameSpace__ecere__com__DataMember->Destructor ? __ecereClass___ecereNameSpace__ecere__com__DataMember->Destructor(dataMember) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(dataMember)) : 0), dataMember = 0);
4270 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&addTo->members, dataMember);
4271 if(dataMember->name)
4272 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&addTo->membersAlpha, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4273 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4275 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4277 dataMember->_class = addTo->_class;
4278 dataMember->id = addTo->memberID;
4279 if(dataMember->type == 1)
4280 addTo->memberID += 1;
4282 addTo->memberID += dataMember->memberID;
4283 addTo->structAlignment = (__simpleStruct0 = addTo->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4284 dataMember->offset = (addTo->type == 1) ? 0 : addTo->memberOffset;
4285 if(addTo->type == 1)
4287 if(dataMember->memberOffset > addTo->memberOffset)
4288 addTo->memberOffset = dataMember->memberOffset;
4291 addTo->memberOffset += dataMember->memberOffset;
4295 unsigned int __ecereNameSpace__ecere__com__eClass_AddMember(struct __ecereNameSpace__ecere__com__Class * _class, struct __ecereNameSpace__ecere__com__DataMember * dataMember)
4297 int __simpleStruct0, __simpleStruct1;
4299 if(!_class || _class->comRedefinition || (dataMember->name && __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, dataMember->name)))
4301 __ecereNameSpace__ecere__com__DataMember_Free(dataMember);
4302 ((dataMember ? (__ecereClass___ecereNameSpace__ecere__com__DataMember->Destructor ? __ecereClass___ecereNameSpace__ecere__com__DataMember->Destructor(dataMember) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(dataMember)) : 0), dataMember = 0);
4305 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, dataMember);
4306 if(dataMember->name)
4307 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4308 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4310 __ecereInstance1->name = dataMember->name, __ecereInstance1->data = dataMember, __ecereInstance1;
4312 __ecereNameSpace__ecere__com__SetMemberClass(dataMember, _class);
4313 dataMember->id = _class->memberID;
4314 _class->structAlignment = (__simpleStruct0 = _class->structAlignment, __simpleStruct1 = dataMember->structAlignment, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
4315 if(dataMember->type == 1)
4316 _class->memberID += 1;
4318 _class->memberID += dataMember->memberID;
4319 dataMember->offset = _class->memberOffset;
4320 _class->memberOffset += dataMember->memberOffset;
4324 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)
4326 if(_class && name && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&_class->members, name))
4330 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);
4332 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->membersAndProperties, bitMember);
4335 bitMember->pos = (bitPos == -1) ? _class->memberOffset : bitPos;
4336 bitMember->size = bitSize;
4337 _class->memberOffset = bitMember->pos + bitMember->size;
4338 for(c = 0; c < bitSize; c++)
4344 bitMember->mask = mask << bitMember->pos;
4346 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&_class->members, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4347 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4349 __ecereInstance1->name = bitMember->name, __ecereInstance1->data = bitMember, __ecereInstance1;
4353 return (((void *)0));
4356 static struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__Module_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess, unsigned int ensureCOM)
4358 unsigned int (stdcall * Load)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4359 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (((void *)0));
4360 struct __ecereNameSpace__ecere__com__Instance * module;
4362 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)
4364 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4367 if(ensureCOM && (!strcmp(name, "ecereCOM") || !strcmp(name, "ecere")))
4369 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)
4371 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"))
4377 void * library = (((void *)0));
4379 if(ensureCOM && !strcmp(name, "ecereCOM"))
4381 Load = __ecereDll_Load_ecere;
4382 Unload = __ecereDll_Unload_ecere;
4386 char * libLocation = (((void *)0));
4388 library = Instance_Module_Load(libLocation, name, &Load, &Unload);
4392 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4393 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4394 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library = library;
4395 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4396 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = Unload;
4397 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType = 0;
4400 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4401 module = (((void *)0));
4404 __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);
4406 if(ensureCOM && !strcmp(name, "ecere") && module)
4408 name = !strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, "ecereCOM") ? "ecere" : "ecereCOM";
4409 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))
4411 struct __ecereNameSpace__ecere__com__Instance * module;
4413 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)
4415 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4420 Load = __ecereDll_Load_ecere;
4421 Unload = __ecereDll_Unload_ecere;
4422 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4423 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4424 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library = (((void *)0));
4425 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4426 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = Unload;
4429 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4430 module = (((void *)0));
4432 __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);
4438 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4439 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4441 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4444 module->_refCount++;
4452 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4453 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4455 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4458 module->_refCount++;
4463 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_Load(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4465 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x1);
4468 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__eModule_LoadStrict(struct __ecereNameSpace__ecere__com__Instance * fromModule, char * name, int importAccess)
4470 return __ecereNameSpace__ecere__com__Module_Load(fromModule, name, importAccess, 0x0);
4473 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))
4475 struct __ecereNameSpace__ecere__com__Instance * module;
4477 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)
4479 if(!strcmp(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name, name))
4486 module = (struct __ecereNameSpace__ecere__com__Instance *)__ecereNameSpace__ecere__com__eInstance_New(__ecereNameSpace__ecere__com__eSystem_FindClass(fromModule, "Module"));
4487 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->application;
4488 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->name = __ecereNameSpace__ecere__sys__CopyString(name);
4489 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType = 1;
4490 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload = (void *)Unload;
4493 __ecereNameSpace__ecere__com__eInstance_Delete((struct __ecereNameSpace__ecere__com__Instance *)module);
4494 module = (((void *)0));
4497 __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);
4503 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, __extension__ ({
4504 struct __ecereNameSpace__ecere__com__SubModule * __ecereInstance1 = __ecereNameSpace__ecere__com__eInstance_New(__ecereClass___ecereNameSpace__ecere__com__SubModule);
4506 __ecereInstance1->module = module, __ecereInstance1->importMode = importAccess, __ecereInstance1;
4509 module->_refCount++;
4514 void __ecereNameSpace__ecere__com__eModule_Unload(struct __ecereNameSpace__ecere__com__Instance * fromModule, struct __ecereNameSpace__ecere__com__Instance * module)
4516 struct __ecereNameSpace__ecere__sys__OldLink * m;
4518 for(m = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules.first; m; m = m->next)
4520 if(m->data == module)
4525 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)fromModule + structSize_Instance)))->modules, m);
4526 (__ecereNameSpace__ecere__com__eInstance_DecRef(module), module = 0);
4530 void __ecereNameSpace__ecere__com__eEnum_AddFixedValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string, int value)
4532 if(_class && _class->type == 4)
4534 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4535 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4537 for(item = data->values.first; item; item = item->next)
4538 if(!strcmp(item->name, string))
4542 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, __extension__ ({
4543 struct __ecereNameSpace__ecere__sys__NamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink);
4545 __ecereInstance1->data = (void *)value, __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1;
4547 if(value > data->largest)
4548 data->largest = value;
4553 int __ecereNameSpace__ecere__com__eEnum_AddValue(struct __ecereNameSpace__ecere__com__Class * _class, char * string)
4555 if(_class && _class->type == 4)
4557 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4558 int value = data->largest + 1;
4559 struct __ecereNameSpace__ecere__sys__NamedLink * item;
4561 for(item = data->values.first; item; item = item->next)
4562 if(!strcmp(item->name, string))
4566 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&data->values, __extension__ ({
4567 struct __ecereNameSpace__ecere__sys__NamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_NamedLink);
4569 __ecereInstance1->data = (void *)value, __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(string), __ecereInstance1;
4571 if(value > data->largest)
4572 data->largest = value;
4579 static void __ecereNameSpace__ecere__com__NameSpace_Free(struct __ecereNameSpace__ecere__com__NameSpace * parentNameSpace)
4581 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace;
4583 (__ecereNameSpace__ecere__com__eSystem_Delete(parentNameSpace->name), parentNameSpace->name = 0);
4584 while((nameSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereProp___ecereNameSpace__ecere__sys__BinaryTree_Get_first(&parentNameSpace->nameSpaces)))
4586 __ecereNameSpace__ecere__com__NameSpace_Free(nameSpace);
4587 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&parentNameSpace->nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)nameSpace);
4591 static void __ecereNameSpace__ecere__com__Application_Destructor(struct __ecereNameSpace__ecere__com__Instance * app)
4593 if(((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->parsedCommand)
4595 (__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);
4596 (__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);
4600 static unsigned int __ecereNameSpace__ecere__com__Module_Constructor(struct __ecereNameSpace__ecere__com__Instance * module)
4602 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4603 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4604 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4605 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4606 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4607 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4608 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4609 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4613 static void __ecereNameSpace__ecere__com__Module_Destructor(struct __ecereNameSpace__ecere__com__Instance * module)
4615 struct __ecereNameSpace__ecere__com__Class * _class;
4616 struct __ecereNameSpace__ecere__com__DefinedExpression * def;
4617 struct __ecereNameSpace__ecere__com__GlobalFunction * function;
4618 struct __ecereNameSpace__ecere__com__Instance * m;
4619 struct __ecereNameSpace__ecere__com__SubModule * handle;
4621 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)
4623 struct __ecereNameSpace__ecere__com__SubModule * next;
4625 for(handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->modules.first; handle; handle = next)
4627 next = handle->next;
4628 if(handle->module == module)
4629 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)m + structSize_Instance)))->modules, handle);
4632 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload)
4634 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->origImportType == 1)
4636 unsigned int (* Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload;
4642 unsigned int (stdcall * Unload)(struct __ecereNameSpace__ecere__com__Instance * module) = (void *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->Unload;
4648 struct __ecereNameSpace__ecere__com__Instance * ourWorld = __ecereClass___ecereNameSpace__ecere__com__Class->module;
4649 void * ourHandle = (((void *)0));
4651 while((handle = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules.last))
4653 struct __ecereNameSpace__ecere__com__Instance * depModule = handle->module;
4655 if(depModule == ourWorld)
4657 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules, handle);
4662 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->modules, handle);
4663 (__ecereNameSpace__ecere__com__eInstance_DecRef(depModule), depModule = 0);
4668 (__ecereNameSpace__ecere__com__eSystem_Delete(ourHandle), ourHandle = 0);
4669 (__ecereNameSpace__ecere__com__eInstance_DecRef(ourWorld), ourWorld = 0);
4672 for(; (_class = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes.first); )
4674 if(_class->nameSpace)
4676 struct __ecereNameSpace__ecere__com__BTNamedLink * classLink = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*_class->nameSpace).classes, _class->name);
4677 struct __ecereNameSpace__ecere__sys__OldLink * t;
4679 for(t = _class->templatized.first; t; t = t->next)
4681 struct __ecereNameSpace__ecere__com__Class * template = t->data;
4682 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4684 link = (struct __ecereNameSpace__ecere__com__BTNamedLink *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*template->nameSpace).classes, template->name);
4685 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*template->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)link);
4686 template->nameSpace = (((void *)0));
4688 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*_class->nameSpace).classes, (struct __ecereNameSpace__ecere__sys__BTNode *)classLink);
4689 _class->nameSpace = (((void *)0));
4691 _class->module = (((void *)0));
4692 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->classes, _class);
4693 if(_class->count <= 0 || _class->type != 0 || _class->isInstanceClass)
4694 __ecereNameSpace__ecere__com__eClass_Unregister(_class);
4699 for(; (def = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines.first); )
4703 struct __ecereNameSpace__ecere__com__BTNamedLink * defLink;
4705 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)))
4706 if(defLink->data == def)
4708 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*def->nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)defLink);
4712 (__ecereNameSpace__ecere__com__eSystem_Delete(def->name), def->name = 0);
4713 (__ecereNameSpace__ecere__com__eSystem_Delete(def->value), def->value = 0);
4714 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines, def);
4716 for(; (function = ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions.first); )
4718 if(function->nameSpace)
4720 struct __ecereNameSpace__ecere__com__BTNamedLink * functionLink;
4722 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)))
4723 if(functionLink->data == function)
4725 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Delete(&(*function->nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)functionLink);
4729 (__ecereNameSpace__ecere__com__eSystem_Delete(function->name), function->name = 0);
4730 (__ecereNameSpace__ecere__com__eSystem_Delete(function->dataTypeString), function->dataTypeString = 0);
4731 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions, function);
4733 (__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);
4734 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace);
4735 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace);
4736 if(module != ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application)
4737 __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);
4739 __ecereNameSpace__ecere__com__NameSpace_Free(&((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace);
4740 Instance_Module_Free(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->library);
4743 static long long __ecereNameSpace__ecere__com__GetEnumSize(struct __ecereNameSpace__ecere__com__Class * _class)
4745 struct __ecereNameSpace__ecere__com__EnumClassData * data = (struct __ecereNameSpace__ecere__com__EnumClassData *)_class->data;
4747 return data->largest + 1;
4750 char * strlwr(char * string)
4754 for(c = 0; string[c]; c++)
4755 if(string[c] >= 'A' && string[c] <= 'Z')
4756 string[c] += 'a' - 'A';
4760 char * strupr(char * string)
4764 for(c = 0; string[c]; c++)
4765 if(string[c] >= 'a' && string[c] <= 'z')
4766 string[c] -= 'a' - 'A';
4770 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_RegisterDefine(char * name, char * value, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4772 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4775 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
4777 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
4780 for(c = 0; name[c]; c++)
4782 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4784 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4785 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4787 strncpy(spaceName, name + start, c - start);
4788 spaceName[c - start] = '\0';
4789 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4792 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4793 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4794 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4795 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4796 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4797 (*newSpace).name = spaceName;
4798 (*newSpace).parent = nameSpace;
4799 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4802 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4803 nameSpace = newSpace;
4812 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).defines, name + start))
4814 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);
4816 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).defines, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4817 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4819 __ecereInstance1->name = def->name + start, __ecereInstance1->data = def, __ecereInstance1;
4821 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->defines, def);
4824 return (((void *)0));
4827 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_RegisterFunction(char * name, char * type, void * func, struct __ecereNameSpace__ecere__com__Instance * module, int declMode)
4829 struct __ecereNameSpace__ecere__com__NameSpace * nameSpace = (((void *)0));
4832 nameSpace = (declMode == 1) ? &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->publicNameSpace : &((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->privateNameSpace;
4834 nameSpace = &((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application + structSize_Module)))->systemNameSpace;
4837 for(c = 0; name[c]; c++)
4839 if(name[c] == '.' || (name[c] == ':' && name[c + 1] == ':'))
4841 struct __ecereNameSpace__ecere__com__NameSpace * newSpace;
4842 char * spaceName = __ecereNameSpace__ecere__com___malloc(c - start + 1);
4844 strncpy(spaceName, name + start, c - start);
4845 spaceName[c - start] = '\0';
4846 newSpace = (struct __ecereNameSpace__ecere__com__NameSpace *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).nameSpaces, spaceName);
4849 newSpace = __ecereNameSpace__ecere__com__eSystem_New0(sizeof(struct __ecereNameSpace__ecere__com__NameSpace) * (1));
4850 (*newSpace).classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4851 (*newSpace).defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4852 (*newSpace).functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4853 (*newSpace).nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
4854 (*newSpace).name = spaceName;
4855 (*newSpace).parent = nameSpace;
4856 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).nameSpaces, (struct __ecereNameSpace__ecere__sys__BTNode *)newSpace);
4859 (__ecereNameSpace__ecere__com__eSystem_Delete(spaceName), spaceName = 0);
4860 nameSpace = newSpace;
4869 if(c - start && !__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_FindString(&(*nameSpace).functions, name + start))
4871 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);
4873 __ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_Add(&(*nameSpace).functions, (struct __ecereNameSpace__ecere__sys__BTNode *)__extension__ ({
4874 struct __ecereNameSpace__ecere__com__BTNamedLink * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_BTNamedLink);
4876 __ecereInstance1->name = function->name + start, __ecereInstance1->data = function, __ecereInstance1;
4878 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->functions, function);
4881 return (((void *)0));
4884 struct __ecereNameSpace__ecere__com__DefinedExpression * __ecereNameSpace__ecere__com__eSystem_FindDefine(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4888 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4890 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);
4893 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).defines, 0x1);
4897 return (((void *)0));
4900 struct __ecereNameSpace__ecere__com__GlobalFunction * __ecereNameSpace__ecere__com__eSystem_FindFunction(struct __ecereNameSpace__ecere__com__Instance * module, char * name)
4904 struct __ecereNameSpace__ecere__com__BTNamedLink * link;
4906 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);
4909 link = __ecereNameSpace__ecere__com__SearchModule(module, name, &(*((struct __ecereNameSpace__ecere__com__NameSpace *)0)).functions, 0x1);
4913 return (((void *)0));
4916 void * __ecereNameSpace__ecere__com__eSystem_Renew(void * memory, unsigned int size)
4918 return __ecereNameSpace__ecere__com___realloc(memory, size);
4921 void * __ecereNameSpace__ecere__com__eSystem_Renew0(void * memory, unsigned int size)
4923 return __ecereNameSpace__ecere__com___crealloc(memory, size);
4926 void * __ecereNameSpace__ecere__com__eSystem_New(unsigned int size)
4928 return __ecereNameSpace__ecere__com___malloc(size);
4931 void * __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size)
4933 return __ecereNameSpace__ecere__com___calloc(1, size);
4936 void __ecereNameSpace__ecere__com__eSystem_Delete(void * memory)
4939 __ecereNameSpace__ecere__com___free(memory);
4942 void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4944 if(instance && _property && _property->selfWatchable)
4946 struct __ecereNameSpace__ecere__com__Class * _class;
4948 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = _class->base)
4950 struct __ecereNameSpace__ecere__com__SelfWatcher * selfWatcher, * next;
4952 for(selfWatcher = _class->selfWatchers.first; selfWatcher; selfWatcher = next)
4954 next = selfWatcher->next;
4955 if(selfWatcher->_property == _property)
4956 selfWatcher->callback(instance);
4962 void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property)
4964 if(instance && _property && _property->isWatchable)
4966 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));
4967 struct __ecereNameSpace__ecere__com__Instance * application = module ? ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application : (((void *)0));
4968 int flags = application ? (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)application + structSize_Module)))->isGUIApp : 0;
4969 unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
4970 unsigned int force32Bits = (flags & 4) ? 0x1 : 0x0;
4972 if(!force32Bits || !inCompiler)
4974 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
4975 struct __ecereNameSpace__ecere__com__Watcher * watcher, * next;
4977 for(watcher = (*watchers).first; watcher; watcher = next)
4979 next = watcher->next;
4980 watcher->callback(watcher->object, instance);
4986 void __ecereNameSpace__ecere__com__eProperty_Watchable(struct __ecereNameSpace__ecere__com__Property * _property)
4988 if(!_property->isWatchable)
4990 struct __ecereNameSpace__ecere__com__Class * _class = _property->_class;
4992 if(!_class->computeSize)
4994 _property->watcherOffset = _class->structSize;
4995 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
4996 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
4998 _property->isWatchable = 0x1;
5002 void __ecereNameSpace__ecere__com__eClass_DestructionWatchable(struct __ecereNameSpace__ecere__com__Class * _class)
5004 if(!_class->destructionWatchOffset)
5006 _class->destructionWatchOffset = _class->structSize;
5007 _class->structSize += sizeof(struct __ecereNameSpace__ecere__sys__OldList);
5008 __ecereNameSpace__ecere__com__FixDerivativesBase(_class, _class);
5012 void __ecereNameSpace__ecere__com__eProperty_SelfWatch(struct __ecereNameSpace__ecere__com__Class * _class, char * name, void (* callback)(void *))
5016 struct __ecereNameSpace__ecere__com__Property * _property = __ecereNameSpace__ecere__com__eClass_FindProperty(_class, name, _class->module);
5019 _property = __ecereNameSpace__ecere__com__eClass_AddProperty(_class, name, (((void *)0)), (((void *)0)), (((void *)0)), 4);
5020 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->selfWatchers, __extension__ ({
5021 struct __ecereNameSpace__ecere__com__SelfWatcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_SelfWatcher);
5023 __ecereInstance1->_property = _property, __ecereInstance1->callback = callback, __ecereInstance1;
5025 _property->selfWatchable = 0x1;
5029 void __ecereNameSpace__ecere__com__eInstance_Watch(void * instance, struct __ecereNameSpace__ecere__com__Property * _property, void * object, void (* callback)(void *, void *))
5031 if(_property->isWatchable)
5033 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5035 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), __extension__ ({
5036 struct __ecereNameSpace__ecere__com__Watcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Watcher);
5038 __ecereInstance1->callback = callback, __ecereInstance1->object = object, __ecereInstance1;
5043 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 *))
5045 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class->destructionWatchOffset);
5047 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add((&*watchers), __extension__ ({
5048 struct __ecereNameSpace__ecere__com__Watcher * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_Watcher);
5050 __ecereInstance1->callback = callback, __ecereInstance1->object = object, __ecereInstance1;
5054 void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object)
5056 if(instance && (!_property || _property->isWatchable))
5060 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5061 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5063 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5064 if(watcher->object == object)
5066 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5072 struct __ecereNameSpace__ecere__com__Class * _class, * base;
5074 for(_class = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class; _class; _class = base)
5076 if(_class->destructionWatchOffset)
5078 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _class->destructionWatchOffset);
5079 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5081 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5083 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5087 for(_property = (struct __ecereNameSpace__ecere__com__Property *)_class->membersAndProperties.first; _property; _property = _property->next)
5089 if(_property->isProperty && _property->isWatchable)
5091 struct __ecereNameSpace__ecere__sys__OldList * watchers = (struct __ecereNameSpace__ecere__sys__OldList *)((unsigned char *)instance + _property->watcherOffset);
5092 struct __ecereNameSpace__ecere__com__Watcher * watcher;
5094 for(watcher = (*watchers).first; watcher; watcher = watcher->next)
5095 if(watcher->object == object)
5097 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete((&*watchers), watcher);
5102 base = _class->base;
5103 if(base && (base->type == 1000 || base->isInstanceClass))
5104 base = (((void *)0));
5110 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eClass_GetDesigner(struct __ecereNameSpace__ecere__com__Class * _class)
5112 for(; _class; _class = _class->base)
5114 if(_class->designerClass)
5115 return (struct __ecereNameSpace__ecere__com__Class *)__ecereNameSpace__ecere__com__eSystem_FindClass(_class->module, _class->designerClass);
5117 return (((void *)0));
5120 struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eInstance_GetDesigner(struct __ecereNameSpace__ecere__com__Instance * instance)
5123 return __ecereNameSpace__ecere__com__eClass_GetDesigner(((struct __ecereNameSpace__ecere__com__Instance *)(char *)instance)->_class);
5124 return (((void *)0));
5127 unsigned int __ecereNameSpace__ecere__com__LocateModule(char * name, char * fileName)
5129 return Instance_LocateModule(name, fileName);
5132 extern void __ecereNameSpace__ecere__com__InitializeDataTypes1(struct __ecereNameSpace__ecere__com__Instance * module);
5134 extern void __ecereNameSpace__ecere__com__InitializeDataTypes(struct __ecereNameSpace__ecere__com__Instance * module);
5136 extern double sin(struct __ecereNameSpace__ecere__com__Instance * number);
5138 extern double sinh(struct __ecereNameSpace__ecere__com__Instance * number);
5140 extern double cosh(struct __ecereNameSpace__ecere__com__Instance * number);
5142 extern double tanh(struct __ecereNameSpace__ecere__com__Instance * number);
5144 extern double sqrt(double number);
5146 extern double cos(struct __ecereNameSpace__ecere__com__Instance * number);
5148 extern double tan(struct __ecereNameSpace__ecere__com__Instance * number);
5150 extern struct __ecereNameSpace__ecere__com__Instance * atan2(double y, double x);
5152 extern struct __ecereNameSpace__ecere__com__Instance * asin(double number);
5154 extern struct __ecereNameSpace__ecere__com__Instance * acos(double number);
5156 extern struct __ecereNameSpace__ecere__com__Instance * atan(double number);
5158 extern double pow(double number, double number2);
5160 extern double fmod(double x, double y);
5162 extern double fabs(double number);
5164 extern double log(double number);
5166 extern double log10(double number);
5168 extern double ceil(double number);
5170 extern double floor(double number);
5172 extern double exp(double number);
5174 extern void qsort(void * , size_t, size_t, int (* )(void * , void * ));
5176 extern int system(const char * );
5178 extern int atoi(const char * );
5180 extern double atof(const char * );
5182 extern int tolower(int);
5184 extern int toupper(int);
5186 extern unsigned int isdigit(int);
5188 extern char * getenv(const char * name);
5190 extern int rename(const char * oldpath, const char * newpath);
5192 extern char * strncat(char * , const char * , size_t n);
5194 extern int strcasecmp(const char * , const char * );
5196 extern int strncasecmp(const char * , const char * , size_t n);
5198 extern int strncmp(const char * , const char * , size_t n);
5200 extern int vsprintf(char * , const char * , __builtin_va_list);
5202 extern int puts(char * );
5204 extern int fputs(char * , void * stream);
5206 extern int isalnum(int c);
5208 extern int isalpha(int c);
5210 extern int islower(int c);
5212 extern int isupper(int c);
5214 extern int isprint(int c);
5216 static void __ecereNameSpace__ecere__com__LoadCOM(struct __ecereNameSpace__ecere__com__Instance * module)
5218 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;
5219 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;
5220 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;
5221 int pointerSize = force64Bits ? 8 : force32Bits ? 4 : sizeof(void *);
5222 struct __ecereNameSpace__ecere__com__Class * applicationClass;
5223 struct __ecereNameSpace__ecere__com__Class * enumClass, * structClass, * boolClass;
5224 struct __ecereNameSpace__ecere__com__Class * moduleClass;
5225 struct __ecereNameSpace__ecere__com__Class * baseClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "class", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5227 baseClass->type = 1000;
5228 baseClass->memberOffset = 0;
5229 baseClass->offset = 0;
5230 baseClass->structSize = 0;
5231 baseClass->typeSize = 0;
5233 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);
5235 instanceClass->type = 0;
5236 instanceClass->isInstanceClass = 0x1;
5237 instanceClass->fixed = 0x1;
5238 instanceClass->memberOffset = 0;
5239 instanceClass->offset = 0;
5240 instanceClass->memberID = -3;
5241 instanceClass->startMemberID = -3;
5242 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_vTbl", "int (**)()", pointerSize, pointerSize, 1);
5243 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_class", "ecere::com::Class", pointerSize, pointerSize, 1);
5244 __ecereNameSpace__ecere__com__eClass_AddDataMember(instanceClass, "_refCount", "int", sizeof(int), sizeof(int), 1);
5246 __ecereNameSpace__ecere__com__InitializeDataTypes1(module);
5247 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);
5248 __ecereNameSpace__ecere__com__eClass_AddClassProperty(enumClass, "enumSize", "int", (((void *)0)), __ecereNameSpace__ecere__com__GetEnumSize)->constant = 0x1;
5249 enumClass->type = 1000;
5250 (__ecereNameSpace__ecere__com__eSystem_Delete(enumClass->dataTypeString), enumClass->dataTypeString = 0);
5251 enumClass->dataTypeString = __ecereNameSpace__ecere__sys__CopyString("int");
5252 structClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "struct", (((void *)0)), 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5253 structClass->type = 1000;
5254 structClass->memberOffset = 0;
5255 structClass->offset = 0;
5256 structClass->structSize = 0;
5257 structClass->typeSize = 0;
5258 __ecereNameSpace__ecere__com__InitializeDataTypes(module);
5259 boolClass = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "bool", "uint", 0, 0, (((void *)0)), (((void *)0)), module, 4, 1);
5260 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "true", (unsigned int)0x1);
5261 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(boolClass, "false", (unsigned int)0x0);
5262 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);
5263 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnLoad", "bool()", (((void *)0)), 1);
5264 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(moduleClass, "OnUnload", "void()", (((void *)0)), 1);
5265 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Load", "Module(char * name, AccessMode importAccess)", __ecereNameSpace__ecere__com__eModule_Load, 1);
5266 __ecereNameSpace__ecere__com__eClass_AddMethod(moduleClass, "Unload", "void(Module module)", __ecereNameSpace__ecere__com__eModule_Unload, 1);
5267 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "application", "Application", pointerSize, pointerSize, 1);
5268 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "classes", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5269 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "defines", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5270 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "functions", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5271 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "modules", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5272 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "prev", "Module", pointerSize, pointerSize, 1);
5273 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "next", "Module", pointerSize, pointerSize, 1);
5274 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "name", "char *", pointerSize, pointerSize, 1);
5275 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "library", "void *", pointerSize, pointerSize, 1);
5276 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "Unload", "void *", pointerSize, pointerSize, 1);
5277 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "importType", "ImportType", sizeof(int), 4, 1);
5278 __ecereNameSpace__ecere__com__eClass_AddDataMember(moduleClass, "origImportType", "ImportType", sizeof(int), 4, 1);
5279 __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);
5280 __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);
5281 moduleClass->fixed = 0x1;
5282 moduleClass->count++;
5283 if(inCompiler && force32Bits)
5284 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);
5285 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);
5286 if(inCompiler && force32Bits)
5288 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);
5289 applicationClass->structSize = applicationClass->offset + (4 + 4 + 4 + 4 + 20 + 4 + 88);
5291 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(applicationClass, "Main", "void()", (((void *)0)), 1);
5292 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argc", "int", sizeof(int), 4, 1);
5293 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "argv", "char **", pointerSize, pointerSize, 1);
5294 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "exitCode", "int", sizeof(int), 4, 1);
5295 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "isGUIApp", "bool", sizeof(unsigned int), 4, 1);
5296 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "allModules", "OldList", force64Bits ? 32 : force32Bits ? 20 : sizeof(struct __ecereNameSpace__ecere__sys__OldList), pointerSize, 1);
5297 __ecereNameSpace__ecere__com__eClass_AddDataMember(applicationClass, "parsedCommand", "char *", pointerSize, pointerSize, 1);
5298 __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);
5299 applicationClass->fixed = 0x1;
5300 applicationClass->count++;
5301 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sin", "double sin(Angle number)", sin, module, 4);
5302 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sinh", "double sinh(Angle number)", sinh, module, 4);
5303 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cosh", "double cosh(Angle number)", cosh, module, 4);
5304 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tanh", "double tanh(Angle number)", tanh, module, 4);
5305 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sqrt", "double sqrt(double number)", sqrt, module, 4);
5306 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("cos", "double cos(Angle number)", cos, module, 4);
5307 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tan", "double tan(Angle number)", tan, module, 4);
5308 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan2", "Angle atan2(double y, double x)", atan2, module, 4);
5309 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("asin", "Angle asin(double number)", asin, module, 4);
5310 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("acos", "Angle acos(double number)", acos, module, 4);
5311 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atan", "Angle atan(double number)", atan, module, 4);
5312 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("pow", "double pow(double number, double number2)", pow, module, 4);
5313 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fmod", "double fmod(double x, double y)", fmod, module, 4);
5314 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fabs", "double fabs(double number)", fabs, module, 4);
5315 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log", "double log(double number)", log, module, 4);
5316 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("log10", "double log10(double number)", log10, module, 4);
5317 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ceil", "double ceil(double number)", ceil, module, 4);
5318 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("floor", "double floor(double number)", floor, module, 4);
5319 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("exp", "double exp(double number)", exp, module, 4);
5320 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("qsort", "void qsort(void *, uintsize, uintsize, int (*)(void *, void *))", qsort, module, 4);
5321 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtod", "double strtod(char*, char**)", strtod, module, 4);
5322 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtol", "int strtol(char*, char**, int base)", strtol, module, 4);
5323 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("system", "int system(const char*)", system, module, 4);
5324 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atoi", "int atoi(const char*)", atoi, module, 4);
5325 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("atof", "double atof(const char*)", atof, module, 4);
5326 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("tolower", "int tolower(int)", tolower, module, 4);
5327 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("toupper", "int toupper(int)", toupper, module, 4);
5328 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isdigit", "bool isdigit(int)", isdigit, module, 4);
5329 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memset", "void * memset(void * area, int value, uintsize count)", memset, module, 4);
5330 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("getenv", "char * getenv(const char * name)", getenv, module, 4);
5331 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("rename", "int rename(const char *oldpath, const char *newpath)", rename, module, 4);
5332 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlen", "uintsize strlen(const char *)", strlen, module, 4);
5333 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcat", "char * strcat(char *, const char *)", strcat, module, 4);
5334 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncat", "char * strncat(char *, const char *, uintsize n)", strncat, module, 4);
5335 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strchr", "char * strchr(const char *, int)", strchr, module, 4);
5336 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strstr", "char * strstr(const char *, const char *)", strstr, module, 4);
5337 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("fstrcmp", "(GetRuntimePlatform() == win32) ? strcmpi : strcmp", module, 4);
5338 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strcmpi", "strcasecmp", module, 4);
5339 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("strnicmp", "strncasecmp", module, 4);
5340 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcasecmp", "int strcasecmp(const char *, const char *)", strcasecmp, module, 4);
5341 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncasecmp", "int strncasecmp(const char *, const char *, uintsize n)", strncasecmp, module, 4);
5342 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcmp", "int strcmp(const char *, const char *)", strcmp, module, 4);
5343 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncmp", "int strncmp(const char *, const char *, uintsize n)", strncmp, module, 4);
5344 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strlwr", "char * strlwr(char *)", strlwr, module, 4);
5345 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strupr", "char * strupr(char *)", strupr, module, 4);
5346 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strcpy", "char * strcpy(char *, const char *)", strcpy, module, 4);
5347 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strncpy", "char * strncpy(char *, const char *, uintsize n)", strncpy, module, 4);
5348 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memcpy", "void * memcpy(void *, const void *, uintsize size)", memcpy, module, 4);
5349 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("memmove", "void * memmove(void *, const void *, uintsize size)", memmove, module, 4);
5350 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("sprintf", "int sprintf(char *, char *, ...)", sprintf, module, 4);
5351 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("snprintf", "int sprintf(char *, uintsize, char *, ...)", snprintf, module, 4);
5352 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("printf", "int printf(char *, ...)", printf, module, 4);
5353 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsprintf", "int vsprintf(char*, const char*, __builtin_va_list)", vsprintf, module, 4);
5354 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("vsnprintf", "int vsnprintf(char*, uintsize, const char*, __builtin_va_list)", vsnprintf, module, 4);
5355 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("puts", "int puts(char *)", puts, module, 4);
5356 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("fputs", "int fputs(char *, void * stream)", fputs, module, 4);
5357 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalnum", "int isalnum(int c)", isalnum, module, 4);
5358 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isspace", "int isspace(int c)", isspace, module, 4);
5359 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isalpha", "int isalpha(int c)", isalpha, module, 4);
5360 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("islower", "int islower(int c)", islower, module, 4);
5361 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isupper", "int isupper(int c)", isupper, module, 4);
5362 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("isprint", "int isprint(int c)", isprint, module, 4);
5363 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("strtoul", "unsigned long strtoul(const char * nptr, char ** endptr, int base)", strtoul, module, 4);
5366 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com____ecere_COM_Initialize(unsigned int guiApp, int argc, char * argv[])
5368 struct __ecereNameSpace__ecere__com__Instance * app;
5370 app = __ecereNameSpace__ecere__com___calloc(1, structSize_Application);
5371 __ecereNameSpace__ecere__com__Module_Constructor(app);
5372 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.classes.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5373 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.defines.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5374 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.functions.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5375 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->systemNameSpace.nameSpaces.CompareKey = (void *)__ecereMethod___ecereNameSpace__ecere__sys__BinaryTree_CompareString;
5376 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);
5377 ((struct __ecereNameSpace__ecere__com__Module *)(((char *)app + structSize_Instance)))->application = app;
5378 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->allModules.offset = structSize_Instance + (unsigned int)&(*((struct __ecereNameSpace__ecere__com__Module *)0)).prev;
5379 ((struct __ecereNameSpace__ecere__com__Application *)(((char *)app + structSize_Module)))->isGUIApp = guiApp;
5380 __ecereNameSpace__ecere__com__LoadCOM(app);
5381 ((struct __ecereNameSpace__ecere__com__Instance *)(char *)app)->_class = __ecereNameSpace__ecere__com__eSystem_FindClass(app, "Application");
5385 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)
5389 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5391 for(param = _class->templateParams.first; param; param = param->next)
5393 if(!strcmp(param->name, name))
5396 param = __extension__ ({
5397 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * __ecereInstance1 = __ecereNameSpace__ecere__com__eSystem_New0(structSize_ClassTemplateParameter);
5399 __ecereInstance1->name = __ecereNameSpace__ecere__sys__CopyString(name), __ecereInstance1->type = type, __ecereInstance1->dataTypeString = (type == 1) ? info : __ecereNameSpace__ecere__sys__CopyString(info), __ecereInstance1;
5401 if(defaultArg != (((void *)0)))
5403 param->defaultArg = *defaultArg;
5404 __ecereNameSpace__ecere__com__CopyTemplateArg(param, ¶m->defaultArg);
5406 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(&_class->templateParams, param);
5409 return (((void *)0));
5412 void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base)
5416 struct __ecereNameSpace__ecere__sys__OldLink * derivative;
5417 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param;
5420 void * first = base->templateParams.first;
5421 int count = base->templateParams.count;
5423 __ecereNameSpace__ecere__com__FreeTemplateArgs(base);
5424 (__ecereNameSpace__ecere__com__eSystem_Delete(base->templateArgs), base->templateArgs = 0);
5425 base->templateParams.first = (((void *)0));
5426 base->templateParams.count = 0;
5427 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(base);
5428 base->templateParams.first = first;
5429 base->templateParams.count = count;
5431 for(param = base->templateParams.first; param; param = param->next)
5433 if(param->type == 1 && param->defaultArg.memberString)
5435 struct __ecereNameSpace__ecere__com__Class * memberClass = base;
5436 char * colon = strstr(param->defaultArg.memberString, "::");
5441 char className[1024];
5442 struct __ecereNameSpace__ecere__com__Class * sClass;
5444 memcpy(className, param->defaultArg.memberString, colon - param->defaultArg.memberString);
5445 className[colon - param->defaultArg.memberString] = '\0';
5446 memberName = colon + 2;
5447 for(sClass = base; sClass; sClass = sClass->base)
5449 struct __ecereNameSpace__ecere__com__ClassTemplateParameter * cParam;
5450 struct __ecereNameSpace__ecere__com__Class * nextClass;
5453 for(nextClass = sClass->base; nextClass; nextClass = nextClass->base)
5454 id += nextClass->templateParams.count;
5455 if(sClass == base || base->templateArgs)
5457 for(cParam = sClass->templateParams.first; cParam; cParam = cParam->next)
5459 if(cParam->type == 0 && !strcmp(cParam->name, className))
5460 strcpy(className, (sClass == base) ? cParam->defaultArg.dataTypeString : base->templateArgs[id].dataTypeString);
5465 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(base->module, className);
5467 memberClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)base->module + structSize_Instance)))->application, className);
5470 memberName = param->defaultArg.memberString;
5473 switch(param->memberType)
5476 param->defaultArg.member = __ecereNameSpace__ecere__com__eClass_FindDataMember(memberClass, memberName, memberClass->module, (((void *)0)), (((void *)0)));
5479 param->defaultArg.method = __ecereNameSpace__ecere__com__eClass_FindMethod(memberClass, memberName, memberClass->module);
5482 param->defaultArg.prop = __ecereNameSpace__ecere__com__eClass_FindProperty(memberClass, memberName, memberClass->module);
5488 __ecereNameSpace__ecere__com__FixDerivativesBase(base, base);
5492 static void __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(struct __ecereNameSpace__ecere__com__Class * base)
5494 struct __ecereNameSpace__ecere__sys__OldLink * derivative, * templateLink;
5496 for(derivative = base->derivatives.first; derivative; derivative = derivative->next)
5498 struct __ecereNameSpace__ecere__com__Class * _class = derivative->data;
5500 if(_class->templateArgs)
5502 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5503 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5505 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5507 for(templateLink = base->templatized.first; templateLink; templateLink = templateLink->next)
5509 struct __ecereNameSpace__ecere__com__Class * _class = templateLink->data;
5511 if(_class->templateArgs)
5513 __ecereNameSpace__ecere__com__FreeTemplateArgs(_class);
5514 (__ecereNameSpace__ecere__com__eSystem_Delete(_class->templateArgs), _class->templateArgs = 0);
5516 __ecereNameSpace__ecere__com__FreeTemplatesDerivatives(_class);
5520 static const char * __ecereNameSpace__ecere__com__platformNames[4] =
5522 "", "win32", "linux", "apple"
5525 static const int __ecereNameSpace__ecere__com__firstPlatform = 1;
5527 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__Platform_char__PTR_, * __ecerePropM___ecereNameSpace__ecere__com__Platform_char__PTR_;
5529 static const int __ecereNameSpace__ecere__com__lastPlatform = 3;
5531 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Platform;
5533 int __ecereVMethodID_class_OnGetString;
5535 char * __ecereProp___ecereNameSpace__ecere__com__Platform_Get_char__PTR_(int this)
5537 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)));
5540 int __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(char * value)
5546 for(c = __ecereNameSpace__ecere__com__firstPlatform; c <= __ecereNameSpace__ecere__com__lastPlatform; c++)
5547 if(!strcasecmp(value, __ecereNameSpace__ecere__com__platformNames[c]))
5553 char * __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * tempString, void * fieldData, unsigned int * needClass)
5555 if((*this) >= __ecereNameSpace__ecere__com__firstPlatform && (*this) <= __ecereNameSpace__ecere__com__lastPlatform)
5558 strcpy(tempString, __ecereNameSpace__ecere__com__platformNames[*(int *)this]);
5559 return __ecereNameSpace__ecere__com__platformNames[*(int *)this];
5561 if(tempString && tempString[0])
5562 tempString[0] = '\0';
5563 return (((void *)0));
5566 unsigned int __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString(struct __ecereNameSpace__ecere__com__Class * class, int * this, char * string)
5568 (*this) = __ecereProp___ecereNameSpace__ecere__com__Platform_Set_char__PTR_(string);
5569 return (unsigned int)*(int *)this;
5572 extern int runtimePlatform;
5574 int __ecereNameSpace__ecere__com__GetRuntimePlatform()
5576 return runtimePlatform;
5579 struct __ecereNameSpace__ecere__com__ObjectInfo
5581 struct __ecereNameSpace__ecere__com__ObjectInfo * prev, * next;
5582 struct __ecereNameSpace__ecere__com__Instance * instance;
5584 struct __ecereNameSpace__ecere__com__Instance * instCode;
5585 unsigned int deleted;
5586 struct __ecereNameSpace__ecere__com__ObjectInfo * oClass;
5587 struct __ecereNameSpace__ecere__sys__OldList instances;
5588 struct __ecereNameSpace__ecere__com__Instance * classDefinition;
5589 unsigned int modified;
5590 } __attribute__ ((gcc_struct));
5592 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ObjectInfo;
5594 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner;
5596 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass;
5598 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging, * __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging;
5600 struct __ecereNameSpace__ecere__com__DesignerBase
5602 struct __ecereNameSpace__ecere__com__Instance * classDesigner;
5604 unsigned int isDragging;
5605 } __attribute__ ((gcc_struct));
5607 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DesignerBase;
5609 struct __ecereNameSpace__ecere__com__Instance * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this)
5611 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);
5613 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner;
5616 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_classDesigner(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__Instance * value)
5618 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);
5620 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->classDesigner = value;
5621 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner);
5624 char * __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_objectClass(struct __ecereNameSpace__ecere__com__Instance * this)
5626 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);
5628 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass;
5631 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_objectClass(struct __ecereNameSpace__ecere__com__Instance * this, char * value)
5633 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);
5635 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->objectClass = value;
5636 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass);
5639 unsigned int __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Get_isDragging(struct __ecereNameSpace__ecere__com__Instance * this)
5641 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);
5643 return __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging;
5646 void __ecereProp___ecereNameSpace__ecere__com__DesignerBase_Set_isDragging(struct __ecereNameSpace__ecere__com__Instance * this, unsigned int value)
5648 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);
5650 __ecerePointer___ecereNameSpace__ecere__com__DesignerBase->isDragging = value;
5651 __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging), __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(this, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging);
5654 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase;
5656 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__activeDesigner;
5658 void __ecereNameSpace__ecere__com__SetActiveDesigner(struct __ecereNameSpace__ecere__com__Instance * designer)
5660 __ecereNameSpace__ecere__com__activeDesigner = designer;
5663 struct __ecereNameSpace__ecere__com__Instance * __ecereNameSpace__ecere__com__GetActiveDesigner()
5665 return __ecereNameSpace__ecere__com__activeDesigner;
5668 void __ecereNameSpace__ecere__com__eSystem_SetPoolingDisabled(unsigned int disabled)
5670 __ecereNameSpace__ecere__com__poolingDisabled = disabled;
5675 unsigned int __ecereNameSpace__ecere__sys__UTF8Validate(char * source)
5681 for(c = 0; source[c]; )
5683 unsigned char ch = source[c];
5684 unsigned int codePoint = 0;
5687 unsigned char mask = (unsigned char)0x7F;
5689 if(ch & (unsigned char)0x80)
5691 if(ch & (unsigned char)0x40)
5695 if(ch & (unsigned char)0x20)
5699 if(ch & (unsigned char)0x10)
5701 if(ch & (unsigned char)0x08)
5711 for(i = 0; i < numBytes && (ch = source[c]); i++, c++)
5714 codePoint |= ch & mask;
5715 mask = (unsigned char)0x3F;
5718 if(!(ch & (unsigned char)0x80) || (ch & (unsigned char)0x40))
5724 if(codePoint > 0x10FFFF || (codePoint >= 0xD800 && codePoint <= 0xDFFF) || (codePoint < 0x80 && numBytes > 1) || (codePoint < 0x800 && numBytes > 2) || (codePoint < 0x10000 && numBytes > 3))
5731 int __ecereNameSpace__ecere__sys__ISO8859_1toUTF8(char * source, char * dest, int max)
5736 for(c = 0; source[c]; c++)
5738 unsigned int ch = ((unsigned char *)source)[c];
5744 dest[d++] = (char)ch;
5750 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5751 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5753 else if(ch < 0x10000)
5757 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5758 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5759 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5765 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5766 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5767 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5768 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5775 char * __ecereNameSpace__ecere__sys__UTF16toUTF8(unsigned short * source)
5782 unsigned int invert = 0x0;
5784 for(len = 0; source[len]; len++)
5786 dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(char) * (len * 3 + 1));
5787 for(c = 0; (u16 = source[c]); c++)
5791 if(!c && (u16 == (unsigned short)0xFFFE || u16 == (unsigned short)0xFEFF))
5793 if(u16 == (unsigned short)0xFFFE)
5799 u16 = ((u16 & (unsigned short)0xFF00) >> (unsigned short)8) | ((u16 & (unsigned short)0x00FF) << (unsigned short)8);
5801 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5804 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5807 dest[d++] = (char)ch;
5811 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5812 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5814 else if(ch < 0x10000)
5816 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5817 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5818 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5822 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5823 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5824 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5825 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5829 dest = __ecereNameSpace__ecere__com__eSystem_Renew(dest, sizeof(char) * (d + 1));
5833 int __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer(unsigned short * source, unsigned char * dest, int max)
5839 for(c = 0; (u16 = source[c]); c++)
5843 if(u16 < (unsigned short)0xD800 || u16 > (unsigned short)0xDBFF)
5846 ch = (u16 << 10) + source[c++] + (0x10000 - (0xD800 << 10) - 0xDC00);
5851 dest[d++] = (char)ch;
5857 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
5858 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5860 else if(ch < 0x10000)
5864 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
5865 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5866 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5872 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
5873 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
5874 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
5875 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
5878 dest[d] = (unsigned char)0;
5882 unsigned int __ecereNameSpace__ecere__sys__UTF8GetChar(char * string, int * numBytes)
5885 unsigned char b = ((unsigned char *)string)[0];
5887 unsigned char mask = (unsigned char)0x7F;
5891 if(b & (unsigned char)0x80)
5893 if(b & (unsigned char)0x40)
5897 if(b & (unsigned char)0x20)
5901 if(b & (unsigned char)0x10)
5903 if(b & (unsigned char)0x08)
5915 for(i = 0; i < nb; i++)
5918 ch |= (b = ((unsigned char *)string)[i]) & mask;
5919 mask = (unsigned char)0x3F;
5920 if(i > 1 && (!(b & (unsigned char)0x80) || (b & (unsigned char)0x40)))
5926 if(i < nb || ch > 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF) || (ch < 0x80 && nb > 1) || (ch < 0x800 && nb > 2) || (ch < 0x10000 && nb > 3))
5936 int __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer(char * source, unsigned short * dest, int max)
5943 for(c = 0; source[c]; )
5945 unsigned char ch = source[c];
5946 unsigned int codePoint = 0;
5949 unsigned char mask = (unsigned char)0x7F;
5951 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
5955 if(ch & (unsigned char)0x20)
5959 if(ch & (unsigned char)0x10)
5966 for(i = 0; i < numBytes; i++)
5969 codePoint |= source[c++] & mask;
5970 mask = (unsigned char)0x3F;
5972 if(codePoint > 0xFFFF)
5974 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
5975 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
5986 dest[d++] = (unsigned short)codePoint;
5989 dest[d] = (unsigned short)0;
5995 int __ecereNameSpace__ecere__sys__UTF32toUTF8Len(unsigned int * source, int count, unsigned char * dest, int max)
6001 for(c = 0; c < count && (ch = source[c]); c++)
6007 dest[d++] = (char)ch;
6013 dest[d++] = (unsigned char)0xC0 | (unsigned char)((ch & 0x7C0) >> 6);
6014 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
6016 else if(ch < 0x10000)
6020 dest[d++] = (unsigned char)0xE0 | (unsigned char)((ch & 0xF000) >> 12);
6021 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
6022 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
6028 dest[d++] = (unsigned char)0xF0 | (unsigned char)((ch & 0x1C0000) >> 18);
6029 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0x3F000) >> 12);
6030 dest[d++] = (unsigned char)0x80 | (unsigned char)((ch & 0xFC0) >> 6);
6031 dest[d++] = (unsigned char)0x80 | (unsigned char)(ch & 0x03F);
6034 dest[d] = (unsigned char)0;
6038 unsigned short * __ecereNameSpace__ecere__sys__UTF8toUTF16(char * source, int * wordCount)
6042 int len = strlen(source);
6043 unsigned short * dest = __ecereNameSpace__ecere__com__eSystem_New(sizeof(unsigned short) * (len + 1));
6047 for(c = 0; source[c]; )
6049 unsigned char ch = source[c];
6050 unsigned int codePoint = 0;
6053 unsigned char mask = (unsigned char)0x7F;
6055 if(ch & (unsigned char)0x80 && ch & (unsigned char)0x40)
6059 if(ch & (unsigned char)0x20)
6063 if(ch & (unsigned char)0x10)
6070 for(i = 0; i < numBytes; i++)
6073 codePoint |= source[c++] & mask;
6074 mask = (unsigned char)0x3F;
6076 if(codePoint > 0xFFFF)
6078 unsigned short lead = (unsigned short)((0xD800 - (0x10000 >> 10)) + (codePoint >> 10));
6079 unsigned short trail = (unsigned short)0xDC00 + (unsigned short)(codePoint & 0x3FF);
6086 dest[d++] = (unsigned short)codePoint;
6089 dest[d] = (unsigned short)0;
6094 return (((void *)0));
6097 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_FindObject;
6099 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_RenameObject;
6101 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SelectObjectFromDesigner;
6103 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_CodeAddObject;
6105 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_SheetAddObject;
6107 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddToolBoxClass;
6109 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_AddDefaultMethod;
6111 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_DeleteObject;
6113 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ObjectContainsCode;
6115 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_ModifyCode;
6117 int __ecereVMethodID___ecereNameSpace__ecere__com__DesignerBase_UpdateProperties;
6119 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_Reset;
6121 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_AddObject;
6123 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_SelectObject;
6125 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_ListToolBoxClasses;
6127 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PrepareTestObject;
6129 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateObject;
6131 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_PostCreateObject;
6133 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DroppedObject;
6135 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_DestroyObject;
6137 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_FixProperty;
6139 int __ecereVMethodID___ecereNameSpace__ecere__com__ClassDesignerBase_CreateNew;
6141 void __ecereRegisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6143 struct __ecereNameSpace__ecere__com__Class * class;
6145 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::com::null", "((void *)0)", module, 4);
6146 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(3, "ecere::com::unichar", "uint", 0, 0, 0, 0, module, 4, 1);
6147 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6148 __ecereClass___ecereNameSpace__ecere__com__unichar = class;
6149 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetString, 1);
6150 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__unichar_OnGetDataFromString, 1);
6151 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Property", 0, sizeof(struct __ecereNameSpace__ecere__com__Property), 0, 0, 0, module, 4, 1);
6152 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6153 __ecereClass___ecereNameSpace__ecere__com__Property = class;
6154 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6155 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6156 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6157 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6158 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6159 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6160 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6161 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6162 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6163 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6164 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void (*)(void *, int)", arch_PointerSize, arch_PointerSize, 1);
6165 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int (*)(void *)", arch_PointerSize, arch_PointerSize, 1);
6166 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "IsSet", "bool (*)(void *)", arch_PointerSize, arch_PointerSize, 1);
6167 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6168 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6169 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6170 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversion", "bool", 4, 4, 1);
6171 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "watcherOffset", "uint", 4, 4, 1);
6172 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "category", "char *", arch_PointerSize, arch_PointerSize, 1);
6173 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "compiled", "bool", 4, 4, 1);
6174 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchable", "bool", 4, 4, 1);
6175 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isWatchable", "bool", 4, 4, 1);
6177 class->fixed = (unsigned int)1;
6179 class->noExpansion = (unsigned int)1;
6180 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PushLoc", "void ecere::com::MemoryGuard_PushLoc(char * loc)", __ecereNameSpace__ecere__com__MemoryGuard_PushLoc, module, 4);
6181 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::MemoryGuard_PopLoc", "void ecere::com::MemoryGuard_PopLoc(void)", __ecereNameSpace__ecere__com__MemoryGuard_PopLoc, module, 4);
6182 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BTNamedLink", 0, sizeof(struct __ecereNameSpace__ecere__com__BTNamedLink), 0, 0, 0, module, 4, 1);
6183 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6184 __ecereClass___ecereNameSpace__ecere__com__BTNamedLink = class;
6185 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6186 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6187 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6188 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::BTNamedLink", arch_PointerSize, arch_PointerSize, 1);
6189 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6190 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6192 class->fixed = (unsigned int)1;
6193 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SelfWatcher", 0, sizeof(struct __ecereNameSpace__ecere__com__SelfWatcher), 0, 0, 0, module, 2, 1);
6194 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6195 __ecereClass___ecereNameSpace__ecere__com__SelfWatcher = class;
6197 class->fixed = (unsigned int)1;
6198 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::AccessMode", 0, 0, 0, 0, 0, module, 4, 1);
6199 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6200 __ecereClass___ecereNameSpace__ecere__com__AccessMode = class;
6201 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "defaultAccess", 0);
6202 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "publicAccess", 1);
6203 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "privateAccess", 2);
6204 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticAccess", 3);
6205 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "baseSystemAccess", 4);
6206 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::SubModule", 0, sizeof(struct __ecereNameSpace__ecere__com__SubModule), 0, 0, 0, module, 4, 1);
6207 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6208 __ecereClass___ecereNameSpace__ecere__com__SubModule = class;
6209 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::SubModule", arch_PointerSize, arch_PointerSize, 1);
6210 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::SubModule", arch_PointerSize, arch_PointerSize, 1);
6211 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6212 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "importMode", "ecere::com::AccessMode", 4, 4, 1);
6213 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::DataMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6214 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6215 __ecereClass___ecereNameSpace__ecere__com__DataMemberType = class;
6216 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMember", 0);
6217 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionMember", 1);
6218 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structMember", 2);
6219 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ClassType", 0, 0, 0, 0, 0, module, 4, 1);
6220 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6221 __ecereClass___ecereNameSpace__ecere__com__ClassType = class;
6222 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalClass", 0);
6223 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "structClass", 1);
6224 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "bitClass", 2);
6225 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unitClass", 3);
6226 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "enumClass", 4);
6227 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "noHeadClass", 5);
6228 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unionClass", 6);
6229 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "systemClass", 1000);
6230 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Class", 0, sizeof(struct __ecereNameSpace__ecere__com__Class), 0, 0, 0, module, 4, 1);
6231 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6232 __ecereClass___ecereNameSpace__ecere__com__Class = class;
6233 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnFree", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnFree, 1);
6234 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetString, 1);
6235 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnGetDataFromString, 1);
6236 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnSerialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnSerialize, 1);
6237 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnUnserialize", 0, __ecereMethod___ecereNameSpace__ecere__com__Class_OnUnserialize, 1);
6238 __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);
6239 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6240 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6241 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6242 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6243 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structSize", "int", 4, 4, 1);
6244 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_vTbl", "int (* *)()", arch_PointerSize, arch_PointerSize, 1);
6245 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vTblSize", "int", 4, 4, 1);
6246 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Constructor", "int (*)(ecere::com::Instance)", arch_PointerSize, arch_PointerSize, 1);
6247 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Destructor", "void (*)(ecere::com::Instance)", arch_PointerSize, arch_PointerSize, 1);
6248 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offsetClass", "int", 4, 4, 1);
6249 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "sizeClass", "int", 4, 4, 1);
6250 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "base", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6251 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "methods", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6252 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6253 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prop", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6254 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAndProperties", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6255 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classProperties", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6256 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "derivatives", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6257 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6258 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "startMemberID", "int", 4, 4, 1);
6259 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::ClassType", 4, 4, 1);
6260 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6261 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6262 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6263 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6264 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "typeSize", "int", 4, 4, 1);
6265 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultAlignment", "int", 4, 4, 1);
6266 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Initialize", "void (*)()", arch_PointerSize, arch_PointerSize, 1);
6267 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6268 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "selfWatchers", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6269 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "designerClass", "char *", arch_PointerSize, arch_PointerSize, 1);
6270 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "noExpansion", "bool", 4, 4, 1);
6271 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultProperty", "char *", arch_PointerSize, arch_PointerSize, 1);
6272 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "comRedefinition", "bool", 4, 4, 1);
6273 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
6274 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isRemote", "bool", 4, 4, 1);
6275 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "internalDecl", "bool", 4, 4, 1);
6276 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
6277 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "computeSize", "bool", 4, 4, 1);
6278 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6279 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "destructionWatchOffset", "int", 4, 4, 1);
6280 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fixed", "bool", 4, 4, 1);
6281 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "delayedCPValues", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6282 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "inheritanceAccess", "ecere::com::AccessMode", 4, 4, 1);
6283 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "fullName", "char *", arch_PointerSize, arch_PointerSize, 1);
6284 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6285 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "conversions", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6286 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateParams", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6287 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateArgs", "ecere::com::ClassTemplateArgument *", arch_PointerSize, arch_PointerSize, 1);
6288 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templateClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6289 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "templatized", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6290 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParams", "int", 4, 4, 1);
6291 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isInstanceClass", "bool", 4, 4, 1);
6293 class->fixed = (unsigned int)1;
6295 class->noExpansion = (unsigned int)1;
6296 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateParameterType", 0, 0, 0, 0, 0, module, 4, 1);
6297 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6298 __ecereClass___ecereNameSpace__ecere__com__TemplateParameterType = class;
6299 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "type", 0);
6300 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "identifier", 1);
6301 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "expression", 2);
6302 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::TemplateMemberType", 0, 0, 0, 0, 0, module, 4, 1);
6303 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6304 __ecereClass___ecereNameSpace__ecere__com__TemplateMemberType = class;
6305 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "dataMember", 0);
6306 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "method", 1);
6307 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "prop", 2);
6308 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::ClassTemplateArgument", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateArgument), 0, 0, 0, module, 4, 1);
6309 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6310 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument = class;
6312 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6315 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6317 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6318 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6319 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6321 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "expression", "ecere::com::DataValue", 8, 8, 1);
6323 struct __ecereNameSpace__ecere__com__DataMember * dataMember1 = __ecereNameSpace__ecere__com__eMember_New(2, 1);
6325 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember1, "memberString", "char *", arch_PointerSize, arch_PointerSize, 1);
6327 struct __ecereNameSpace__ecere__com__DataMember * dataMember2 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6329 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "member", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6330 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "prop", "ecere::com::Property", arch_PointerSize, arch_PointerSize, 1);
6331 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember2, "method", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6332 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember1, dataMember2);
6334 __ecereNameSpace__ecere__com__eMember_AddMember(dataMember0, dataMember1);
6336 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6338 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassTemplateParameter", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassTemplateParameter), 0, 0, 0, module, 4, 1);
6339 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6340 __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter = class;
6341 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ClassTemplateParameter", arch_PointerSize, arch_PointerSize, 1);
6342 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ClassTemplateParameter", arch_PointerSize, arch_PointerSize, 1);
6343 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6344 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::TemplateParameterType", 4, 4, 1);
6346 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6348 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6349 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "memberType", "ecere::com::TemplateMemberType", 4, 4, 1);
6350 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6352 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defaultArg", "ecere::com::ClassTemplateArgument", structSize_ClassTemplateArgument, 8, 1);
6353 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "param", "void *", arch_PointerSize, arch_PointerSize, 1);
6355 class->fixed = (unsigned int)1;
6356 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::MethodType", 0, 0, 0, 0, 0, module, 4, 1);
6357 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6358 __ecereClass___ecereNameSpace__ecere__com__MethodType = class;
6359 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalMethod", 0);
6360 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "virtualMethod", 1);
6361 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Method", 0, sizeof(struct __ecereNameSpace__ecere__com__Method), 0, 0, 0, module, 4, 1);
6362 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6363 __ecereClass___ecereNameSpace__ecere__com__Method = class;
6364 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6365 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6366 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6367 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::Method", arch_PointerSize, arch_PointerSize, 1);
6368 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6369 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int (*)()", arch_PointerSize, arch_PointerSize, 1);
6370 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "vid", "int", 4, 4, 1);
6371 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::MethodType", 4, 4, 1);
6372 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6373 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6374 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6375 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6376 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6378 class->fixed = (unsigned int)1;
6379 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::ImportType", 0, 0, 0, 0, 0, module, 4, 1);
6380 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6381 __ecereClass___ecereNameSpace__ecere__com__ImportType = class;
6382 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "normalImport", 0);
6383 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "staticImport", 1);
6384 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "remoteImport", 2);
6385 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "preDeclImport", 3);
6386 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "comCheckImport", 4);
6387 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::NameSpace", 0, sizeof(struct __ecereNameSpace__ecere__com__NameSpace), 0, 0, 0, module, 4, 1);
6388 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6389 __ecereClass___ecereNameSpace__ecere__com__NameSpace = class;
6390 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6391 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "btParent", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6392 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6393 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6394 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6395 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6396 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpaces", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6397 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classes", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6398 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "defines", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6399 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "functions", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6400 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::DataValue", 0, sizeof(struct __ecereNameSpace__ecere__com__DataValue), 0, 0, 0, module, 4, 1);
6401 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6402 __ecereClass___ecereNameSpace__ecere__com__DataValue = class;
6404 struct __ecereNameSpace__ecere__com__DataMember * dataMember0 = __ecereNameSpace__ecere__com__eMember_New(1, 1);
6406 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "c", "char", 1, 1, 1);
6407 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "uc", "byte", 1, 1, 1);
6408 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "s", "short", 2, 2, 1);
6409 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "us", "uint16", 2, 2, 1);
6410 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i", "int", 4, 4, 1);
6411 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui", "uint", 4, 4, 1);
6412 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "p", "void *", arch_PointerSize, arch_PointerSize, 1);
6413 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "f", "float", 4, 4, 1);
6414 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "d", "double", 8, 8, 1);
6415 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "i64", "int64", 8, 8, 1);
6416 __ecereNameSpace__ecere__com__eMember_AddDataMember(dataMember0, "ui64", "uint64", 8, 8, 1);
6417 __ecereNameSpace__ecere__com__eClass_AddMember(class, dataMember0);
6419 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DataMember", 0, sizeof(struct __ecereNameSpace__ecere__com__DataMember), 0, 0, 0, module, 4, 1);
6420 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6421 __ecereClass___ecereNameSpace__ecere__com__DataMember = class;
6422 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6423 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DataMember", arch_PointerSize, arch_PointerSize, 1);
6424 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6425 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isProperty", "bool", 4, 4, 1);
6426 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6427 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6428 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6429 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6430 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6431 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6432 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6433 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "int", 4, 4, 1);
6434 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberID", "int", 4, 4, 1);
6435 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "members", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6436 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "membersAlpha", "ecere::sys::BinaryTree", structSize_BinaryTree, arch_PointerSize, 1);
6437 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberOffset", "int", 4, 4, 1);
6438 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "structAlignment", "int", 4, 4, 1);
6440 class->fixed = (unsigned int)1;
6441 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::BitMember", 0, sizeof(struct __ecereNameSpace__ecere__com__BitMember), 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__BitMember = class;
6444 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::BitMember", arch_PointerSize, arch_PointerSize, 1);
6445 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::BitMember", 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, "isProperty", "bool", 4, 4, 1);
6448 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "memberAccess", "ecere::com::AccessMode", 4, 4, 1);
6449 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "id", "int", 4, 4, 1);
6450 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "_class", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6451 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6452 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeClass", "ecere::com::Class", arch_PointerSize, arch_PointerSize, 1);
6453 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6454 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "type", "ecere::com::DataMemberType", 4, 4, 1);
6455 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "size", "int", 4, 4, 1);
6456 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "pos", "int", 4, 4, 1);
6457 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "mask", "uint64", 8, 8, 1);
6459 class->fixed = (unsigned int)1;
6460 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ClassProperty", 0, sizeof(struct __ecereNameSpace__ecere__com__ClassProperty), 0, 0, 0, module, 4, 1);
6461 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6462 __ecereClass___ecereNameSpace__ecere__com__ClassProperty = class;
6463 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6464 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "parent", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6465 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "left", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6466 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "right", "ecere::com::ClassProperty", arch_PointerSize, arch_PointerSize, 1);
6467 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "depth", "int", 4, 4, 1);
6468 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Set", "void (*)(ecere::com::Class, int64)", arch_PointerSize, arch_PointerSize, 1);
6469 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "Get", "int64 (*)(ecere::com::Class)", arch_PointerSize, arch_PointerSize, 1);
6470 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6471 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6472 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "constant", "bool", 4, 4, 1);
6474 class->fixed = (unsigned int)1;
6475 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::DefinedExpression", 0, sizeof(struct __ecereNameSpace__ecere__com__DefinedExpression), 0, 0, 0, module, 4, 1);
6476 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6477 __ecereClass___ecereNameSpace__ecere__com__DefinedExpression = class;
6478 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::DefinedExpression", arch_PointerSize, arch_PointerSize, 1);
6479 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::DefinedExpression", arch_PointerSize, arch_PointerSize, 1);
6480 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6481 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "value", "char *", arch_PointerSize, arch_PointerSize, 1);
6482 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6484 class->fixed = (unsigned int)1;
6485 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::GlobalFunction", 0, sizeof(struct __ecereNameSpace__ecere__com__GlobalFunction), 0, 0, 0, module, 4, 1);
6486 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6487 __ecereClass___ecereNameSpace__ecere__com__GlobalFunction = class;
6488 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::GlobalFunction", arch_PointerSize, arch_PointerSize, 1);
6489 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::GlobalFunction", arch_PointerSize, arch_PointerSize, 1);
6490 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6491 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "function", "int (*)()", arch_PointerSize, arch_PointerSize, 1);
6492 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "module", "ecere::com::Module", arch_PointerSize, arch_PointerSize, 1);
6493 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "nameSpace", "ecere::com::NameSpace *", arch_PointerSize, arch_PointerSize, 1);
6494 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataTypeString", "char *", arch_PointerSize, arch_PointerSize, 1);
6495 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "dataType", "Type", arch_PointerSize, arch_PointerSize, 1);
6496 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "symbol", "void *", arch_PointerSize, arch_PointerSize, 1);
6498 class->fixed = (unsigned int)1;
6499 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::EnumClassData", 0, sizeof(struct __ecereNameSpace__ecere__com__EnumClassData), 0, 0, 0, module, 4, 1);
6500 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6501 __ecereClass___ecereNameSpace__ecere__com__EnumClassData = class;
6502 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "values", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6503 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "largest", "int", 4, 4, 1);
6505 class->fixed = (unsigned int)1;
6506 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::Watcher", 0, sizeof(struct __ecereNameSpace__ecere__com__Watcher), 0, 0, 0, module, 2, 1);
6507 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6508 __ecereClass___ecereNameSpace__ecere__com__Watcher = class;
6510 class->fixed = (unsigned int)1;
6511 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemBlock", 0, sizeof(struct __ecereNameSpace__ecere__com__MemBlock), 0, 0, 0, module, 2, 1);
6512 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6513 __ecereClass___ecereNameSpace__ecere__com__MemBlock = class;
6514 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::MemPart", 0, sizeof(struct __ecereNameSpace__ecere__com__MemPart), 0, 0, 0, module, 2, 1);
6515 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6516 __ecereClass___ecereNameSpace__ecere__com__MemPart = class;
6517 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::com::BlockPool", 0, sizeof(struct __ecereNameSpace__ecere__com__BlockPool), 0, 0, 0, module, 2, 1);
6518 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6519 __ecereClass___ecereNameSpace__ecere__com__BlockPool = class;
6520 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "ecere::com::MemBlock Add()", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Add, 1);
6521 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Expand", "bool Expand(unsigned int numBlocks)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Expand, 1);
6522 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(ecere::com::MemBlock block)", __ecereMethod___ecereNameSpace__ecere__com__BlockPool_Remove, 1);
6523 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6524 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6525 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "free", "ecere::com::MemBlock", arch_PointerSize, arch_PointerSize, 1);
6526 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSize", "uint", 4, 4, 1);
6527 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "blockSpace", "uint", 4, 4, 1);
6528 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numParts", "int", 4, 4, 1);
6529 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "numBlocks", "int", 4, 4, 1);
6530 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "totalSize", "uint", 4, 4, 1);
6531 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "usedSpace", "uint", 4, 4, 1);
6532 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::log2i", "uint ecere::com::log2i(uint number)", __ecereNameSpace__ecere__com__log2i, module, 4);
6533 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::pow2i", "uint ecere::com::pow2i(uint number)", __ecereNameSpace__ecere__com__pow2i, module, 4);
6534 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::memswap", "void ecere::com::memswap(byte * a, byte * b, uint size)", __ecereNameSpace__ecere__com__memswap, module, 4);
6535 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::CheckMemory", "void ecere::com::CheckMemory(void)", __ecereNameSpace__ecere__com__CheckMemory, module, 4);
6536 __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);
6537 __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);
6538 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoi64", "int64 ecere::com::_strtoi64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoi64, module, 4);
6539 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::_strtoui64", "uint64 ecere::com::_strtoui64(char * string, char * * endString, int base)", __ecereNameSpace__ecere__com___strtoui64, module, 4);
6540 __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);
6541 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::DefaultFunction", "bool ecere::com::DefaultFunction(void)", __ecereNameSpace__ecere__com__DefaultFunction, module, 2);
6542 __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);
6543 __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);
6544 __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);
6545 __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);
6546 __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);
6547 __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);
6548 __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);
6549 __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);
6550 __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);
6551 __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);
6552 __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);
6553 __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);
6554 __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);
6555 __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);
6556 __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);
6557 __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);
6558 __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);
6559 __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);
6560 __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);
6561 __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);
6562 __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);
6563 __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);
6564 __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);
6565 __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);
6566 __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);
6567 __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);
6568 __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);
6569 __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);
6570 __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);
6571 __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);
6572 __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);
6573 __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);
6574 __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);
6575 __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);
6576 __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);
6577 __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);
6578 __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);
6579 __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);
6580 __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);
6581 __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);
6582 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New", "void * ecere::com::eSystem_New(uint size)", __ecereNameSpace__ecere__com__eSystem_New, module, 4);
6583 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_New0", "void * ecere::com::eSystem_New0(uint size)", __ecereNameSpace__ecere__com__eSystem_New0, module, 4);
6584 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_Delete", "void ecere::com::eSystem_Delete(void * memory)", __ecereNameSpace__ecere__com__eSystem_Delete, module, 4);
6585 __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);
6586 __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);
6587 __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);
6588 __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);
6589 __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);
6590 __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);
6591 __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);
6592 __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);
6593 __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);
6594 __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);
6595 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::LocateModule", "bool ecere::com::LocateModule(char * name, char * fileName)", __ecereNameSpace__ecere__com__LocateModule, module, 4);
6596 __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);
6597 __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);
6598 __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);
6599 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(4, "ecere::com::Platform", 0, 0, 0, 0, 0, module, 4, 1);
6600 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6601 __ecereClass___ecereNameSpace__ecere__com__Platform = class;
6602 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetString, 1);
6603 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "OnGetDataFromString", 0, __ecereMethod___ecereNameSpace__ecere__com__Platform_OnGetDataFromString, 1);
6604 __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);
6605 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "unknown", 0);
6606 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "win32", 1);
6607 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "tux", 2);
6608 __ecereNameSpace__ecere__com__eEnum_AddFixedValue(class, "apple", 3);
6609 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetRuntimePlatform", "ecere::com::Platform ecere::com::GetRuntimePlatform(void)", __ecereNameSpace__ecere__com__GetRuntimePlatform, module, 4);
6610 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::ObjectInfo", 0, sizeof(struct __ecereNameSpace__ecere__com__ObjectInfo), 0, 0, 0, module, 4, 1);
6611 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6612 __ecereClass___ecereNameSpace__ecere__com__ObjectInfo = class;
6613 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6614 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6615 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instance", "ecere::com::Instance", arch_PointerSize, arch_PointerSize, 1);
6616 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
6617 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instCode", "Instantiation", arch_PointerSize, arch_PointerSize, 1);
6618 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "deleted", "bool", 4, 4, 1);
6619 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "oClass", "ecere::com::ObjectInfo", arch_PointerSize, arch_PointerSize, 1);
6620 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "instances", "ecere::sys::OldList", structSize_OldList, arch_PointerSize, 1);
6621 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDefinition", "ClassDefinition", arch_PointerSize, arch_PointerSize, 1);
6622 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "modified", "bool", 4, 4, 1);
6623 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);
6624 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6625 __ecereClass___ecereNameSpace__ecere__com__DesignerBase = class;
6626 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FindObject", "bool FindObject(ecere::com::Instance * instance, char * string)", 0, 1);
6627 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "RenameObject", "void RenameObject(ecere::com::ObjectInfo object, char * name)", 0, 1);
6628 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObjectFromDesigner", "void SelectObjectFromDesigner(ecere::com::ObjectInfo object)", 0, 1);
6629 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CodeAddObject", "void CodeAddObject(ecere::com::Instance instance, ecere::com::ObjectInfo * object)", 0, 1);
6630 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SheetAddObject", "void SheetAddObject(ecere::com::ObjectInfo object)", 0, 1);
6631 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddToolBoxClass", "void AddToolBoxClass(ecere::com::Class _class)", 0, 1);
6632 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddDefaultMethod", "void AddDefaultMethod(ecere::com::Instance instance, ecere::com::Instance classInstance)", 0, 1);
6633 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DeleteObject", "void DeleteObject(ecere::com::ObjectInfo object)", 0, 1);
6634 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ObjectContainsCode", "bool ObjectContainsCode(ecere::com::ObjectInfo object)", 0, 1);
6635 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ModifyCode", "void ModifyCode(void)", 0, 1);
6636 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "UpdateProperties", "void UpdateProperties(void)", 0, 1);
6637 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "classDesigner", "ecere::com::ClassDesignerBase", arch_PointerSize, arch_PointerSize, 1);
6638 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "objectClass", "char *", arch_PointerSize, arch_PointerSize, 1);
6639 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "isDragging", "bool", 4, 4, 1);
6640 __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);
6641 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6642 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_classDesigner = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6643 __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);
6644 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6645 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_objectClass = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6646 __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);
6647 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
6648 __ecereProp___ecereNameSpace__ecere__com__DesignerBase_isDragging = __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging, __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;
6649 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::ClassDesignerBase", "ecere::gui::Window", 0, 0, 0, 0, module, 4, 1);
6650 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
6651 __ecereClass___ecereNameSpace__ecere__com__ClassDesignerBase = class;
6652 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "Reset", "void Reset(void)", 0, 1);
6653 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "AddObject", "void AddObject(void)", 0, 1);
6654 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "SelectObject", "void SelectObject(ecere::com::ObjectInfo object, ecere::com::Instance control)", 0, 1);
6655 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "ListToolBoxClasses", "void ListToolBoxClasses(ecere::com::DesignerBase designer)", 0, 1);
6656 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "PrepareTestObject", "void ::PrepareTestObject(ecere::com::DesignerBase designer, ecere::com::Instance test)", 0, 1);
6657 __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);
6658 __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);
6659 __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);
6660 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "DestroyObject", "void ::DestroyObject(ecere::com::Instance object)", 0, 1);
6661 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "FixProperty", "void ::FixProperty(ecere::com::Property prop, ecere::com::Instance object)", 0, 1);
6662 __ecereNameSpace__ecere__com__eClass_AddVirtualMethod(class, "CreateNew", "void ::CreateNew(EditBox editBox, Size clientSize, char * name, char * inherit)", 0, 1);
6663 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::SetActiveDesigner", "void ecere::com::SetActiveDesigner(ecere::com::DesignerBase designer)", __ecereNameSpace__ecere__com__SetActiveDesigner, module, 4);
6664 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::GetActiveDesigner", "ecere::com::DesignerBase ecere::com::GetActiveDesigner(void)", __ecereNameSpace__ecere__com__GetActiveDesigner, module, 4);
6665 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::com::eSystem_SetPoolingDisabled", "void ecere::com::eSystem_SetPoolingDisabled(bool disabled)", __ecereNameSpace__ecere__com__eSystem_SetPoolingDisabled, module, 4);
6666 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::LEAD_OFFSET", "0xD800 - (0x10000 >> 10)", module, 2);
6667 __ecereNameSpace__ecere__com__eSystem_RegisterDefine("ecere::sys::SURROGATE_OFFSET", "0x10000 - (0xD800 << 10) - 0xDC00", module, 2);
6668 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8Validate", "bool ecere::sys::UTF8Validate(char * source)", __ecereNameSpace__ecere__sys__UTF8Validate, module, 4);
6669 __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);
6670 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8", "char * ecere::sys::UTF16toUTF8(uint16 * source)", __ecereNameSpace__ecere__sys__UTF16toUTF8, module, 4);
6671 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF16toUTF8Buffer", "int ecere::sys::UTF16toUTF8Buffer(uint16 * source, byte * dest, int max)", __ecereNameSpace__ecere__sys__UTF16toUTF8Buffer, module, 4);
6672 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8GetChar", "ecere::com::unichar ecere::sys::UTF8GetChar(char * string, int * numBytes)", __ecereNameSpace__ecere__sys__UTF8GetChar, module, 4);
6673 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16Buffer", "int ecere::sys::UTF8toUTF16Buffer(char * source, uint16 * dest, int max)", __ecereNameSpace__ecere__sys__UTF8toUTF16Buffer, module, 4);
6674 __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);
6675 __ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::UTF8toUTF16", "uint16 * ecere::sys::UTF8toUTF16(char * source, int * wordCount)", __ecereNameSpace__ecere__sys__UTF8toUTF16, module, 4);
6678 void __ecereUnregisterModule_instance(struct __ecereNameSpace__ecere__com__Instance * module)
6681 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_classDesigner = (void *)0;
6682 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_objectClass = (void *)0;
6683 __ecerePropM___ecereNameSpace__ecere__com__DesignerBase_isDragging = (void *)0;