marked all generated bootstrap C source files with the updated 'code generated from...
[sdk] / compiler / bootstrap / ecere / bootstrap / CustomAVLTree.c
1 /* Code generated from eC source file: CustomAVLTree.ec */
2 #if defined(__GNUC__)
3 typedef long long int64;
4 typedef unsigned long long uint64;
5 #ifndef _WIN32
6 #define __declspec(x)
7 #endif
8 #elif defined(__TINYC__)
9 #include <stdarg.h>
10 #define __builtin_va_list va_list
11 #define __builtin_va_start va_start
12 #define __builtin_va_end va_end
13 #ifdef _WIN32
14 #define strcasecmp stricmp
15 #define strncasecmp strnicmp
16 #define __declspec(x) __attribute__((x))
17 #else
18 #define __declspec(x)
19 #endif
20 typedef long long int64;
21 typedef unsigned long long uint64;
22 #else
23 typedef __int64 int64;
24 typedef unsigned __int64 uint64;
25 #endif
26 #ifdef __BIG_ENDIAN__
27 #define __ENDIAN_PAD(x) (8 - (x))
28 #else
29 #define __ENDIAN_PAD(x) 0
30 #endif
31 #include <stdint.h>
32 #include <sys/types.h>
33
34 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
35 #define _64BIT 1
36 #else
37 #define _64BIT 0
38 #endif
39
40 #define arch_PointerSize                  sizeof(void *)
41 #define structSize_Instance               (_64BIT ? 24 : 12)
42 #define AVLNode_PrivateData               (_64BIT ? 32 : 16)
43 #define _STR(x) #x
44 #define _XSTR(x) _STR(x)
45
46 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
47
48 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
49
50 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
51
52 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
53
54 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
55
56 struct __ecereNameSpace__ecere__sys__BTNode;
57
58 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
59
60 struct __ecereNameSpace__ecere__sys__BinaryTree
61 {
62 struct __ecereNameSpace__ecere__sys__BTNode * root;
63 int count;
64 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
65 void (*  FreeKey)(void *  key);
66 } __attribute__ ((gcc_struct));
67
68 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
69
70 struct __ecereNameSpace__ecere__sys__OldList
71 {
72 void *  first;
73 void *  last;
74 int count;
75 unsigned int offset;
76 unsigned int circ;
77 } __attribute__ ((gcc_struct));
78
79 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
80
81 struct __ecereNameSpace__ecere__com__Class
82 {
83 struct __ecereNameSpace__ecere__com__Class * prev;
84 struct __ecereNameSpace__ecere__com__Class * next;
85 char *  name;
86 int offset;
87 int structSize;
88 int (* *  _vTbl)();
89 int vTblSize;
90 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
91 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
92 int offsetClass;
93 int sizeClass;
94 struct __ecereNameSpace__ecere__com__Class * base;
95 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
96 struct __ecereNameSpace__ecere__sys__BinaryTree members;
97 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
98 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
99 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
100 struct __ecereNameSpace__ecere__sys__OldList derivatives;
101 int memberID;
102 int startMemberID;
103 int type;
104 struct __ecereNameSpace__ecere__com__Instance * module;
105 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
106 char *  dataTypeString;
107 struct __ecereNameSpace__ecere__com__Instance * dataType;
108 int typeSize;
109 int defaultAlignment;
110 void (*  Initialize)();
111 int memberOffset;
112 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
113 char *  designerClass;
114 unsigned int noExpansion;
115 char *  defaultProperty;
116 unsigned int comRedefinition;
117 int count;
118 unsigned int isRemote;
119 unsigned int internalDecl;
120 void *  data;
121 unsigned int computeSize;
122 int structAlignment;
123 int destructionWatchOffset;
124 unsigned int fixed;
125 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
126 int inheritanceAccess;
127 char *  fullName;
128 void *  symbol;
129 struct __ecereNameSpace__ecere__sys__OldList conversions;
130 struct __ecereNameSpace__ecere__sys__OldList templateParams;
131 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
132 struct __ecereNameSpace__ecere__com__Class * templateClass;
133 struct __ecereNameSpace__ecere__sys__OldList templatized;
134 int numParams;
135 unsigned int isInstanceClass;
136 } __attribute__ ((gcc_struct));
137
138 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, char *  name);
139
140 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
141
142 struct __ecereNameSpace__ecere__com__Instance
143 {
144 int (* *  _vTbl)();
145 struct __ecereNameSpace__ecere__com__Class * _class;
146 int _refCount;
147 } __attribute__ ((gcc_struct));
148
149 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
150
151 struct __ecereNameSpace__ecere__com__Property
152 {
153 struct __ecereNameSpace__ecere__com__Property * prev;
154 struct __ecereNameSpace__ecere__com__Property * next;
155 char *  name;
156 unsigned int isProperty;
157 int memberAccess;
158 int id;
159 struct __ecereNameSpace__ecere__com__Class * _class;
160 char *  dataTypeString;
161 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
162 struct __ecereNameSpace__ecere__com__Instance * dataType;
163 void (*  Set)(void * , int);
164 int (*  Get)(void * );
165 unsigned int (*  IsSet)(void * );
166 void *  data;
167 void *  symbol;
168 int vid;
169 unsigned int conversion;
170 unsigned int watcherOffset;
171 char *  category;
172 unsigned int compiled;
173 unsigned int selfWatchable;
174 unsigned int isWatchable;
175 } __attribute__ ((gcc_struct));
176
177 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
178
179 struct __ecereNameSpace__ecere__com__DataMember
180 {
181 struct __ecereNameSpace__ecere__com__DataMember * prev;
182 struct __ecereNameSpace__ecere__com__DataMember * next;
183 char *  name;
184 unsigned int isProperty;
185 int memberAccess;
186 int id;
187 struct __ecereNameSpace__ecere__com__Class * _class;
188 char *  dataTypeString;
189 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
190 struct __ecereNameSpace__ecere__com__Instance * dataType;
191 int type;
192 int offset;
193 int memberID;
194 struct __ecereNameSpace__ecere__sys__OldList members;
195 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
196 int memberOffset;
197 int structAlignment;
198 } __attribute__ ((gcc_struct));
199
200 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
201
202 struct __ecereNameSpace__ecere__com__Method
203 {
204 char *  name;
205 struct __ecereNameSpace__ecere__com__Method * parent;
206 struct __ecereNameSpace__ecere__com__Method * left;
207 struct __ecereNameSpace__ecere__com__Method * right;
208 int depth;
209 int (*  function)();
210 int vid;
211 int type;
212 struct __ecereNameSpace__ecere__com__Class * _class;
213 void *  symbol;
214 char *  dataTypeString;
215 struct __ecereNameSpace__ecere__com__Instance * dataType;
216 int memberAccess;
217 } __attribute__ ((gcc_struct));
218
219 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
220
221 struct __ecereNameSpace__ecere__com__SerialBuffer
222 {
223 unsigned char *  _buffer;
224 unsigned int count;
225 unsigned int _size;
226 unsigned int pos;
227 } __attribute__ ((gcc_struct));
228
229 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
230
231 struct __ecereNameSpace__ecere__com__DataValue
232 {
233 union
234 {
235 char c;
236 unsigned char uc;
237 short s;
238 unsigned short us;
239 int i;
240 unsigned int ui;
241 void *  p;
242 float f;
243 double d;
244 long long i64;
245 uint64 ui64;
246 } __attribute__ ((gcc_struct));
247 } __attribute__ ((gcc_struct));
248
249 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
250
251 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
252 {
253 union
254 {
255 struct
256 {
257 char *  dataTypeString;
258 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
259 } __attribute__ ((gcc_struct));
260 struct __ecereNameSpace__ecere__com__DataValue expression;
261 struct
262 {
263 char *  memberString;
264 union
265 {
266 struct __ecereNameSpace__ecere__com__DataMember * member;
267 struct __ecereNameSpace__ecere__com__Property * prop;
268 struct __ecereNameSpace__ecere__com__Method * method;
269 } __attribute__ ((gcc_struct));
270 } __attribute__ ((gcc_struct));
271 } __attribute__ ((gcc_struct));
272 } __attribute__ ((gcc_struct));
273
274 extern int __ecereVMethodID_class_OnCompare;
275
276 extern int __ecereVMethodID_class_OnCopy;
277
278 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_prev, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev;
279
280 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_next, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next;
281
282 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_count, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count;
283
284 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_depthProp, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp;
285
286 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_balanceFactor, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor;
287
288 struct __ecereNameSpace__ecere__com__AVLNode
289 {
290 struct __ecereNameSpace__ecere__com__AVLNode * parent, * left, * right;
291 int depth;
292 uint64 key;
293 } __attribute__ ((gcc_struct));
294
295 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__AVLNode;
296
297 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(struct __ecereNameSpace__ecere__com__AVLNode * this);
298
299 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_maximum, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum;
300
301 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(struct __ecereNameSpace__ecere__com__AVLNode * this)
302 {
303 if(this->left)
304 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(this->left);
305 while(this)
306 {
307 if(this->parent && this == this->parent->right)
308 return this->parent;
309 else
310 this = this->parent;
311 }
312 return this;
313 }
314
315 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(struct __ecereNameSpace__ecere__com__AVLNode * this);
316
317 static struct __ecereNameSpace__ecere__com__Property * __ecereProp___ecereNameSpace__ecere__com__AVLNode_minimum, * __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum;
318
319 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(struct __ecereNameSpace__ecere__com__AVLNode * this)
320 {
321 struct __ecereNameSpace__ecere__com__AVLNode * right = this->right;
322
323 if(right)
324 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(right);
325 while(this)
326 {
327 struct __ecereNameSpace__ecere__com__AVLNode * parent = this->parent;
328
329 if(parent && this == parent->left)
330 return parent;
331 else
332 this = parent;
333 }
334 return (((void *)0));
335 }
336
337 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(struct __ecereNameSpace__ecere__com__AVLNode * this)
338 {
339 while(this->left)
340 this = this->left;
341 return this;
342 }
343
344 struct __ecereNameSpace__ecere__com__AVLNode * __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(struct __ecereNameSpace__ecere__com__AVLNode * this)
345 {
346 while(this->right)
347 this = this->right;
348 return this;
349 }
350
351 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(struct __ecereNameSpace__ecere__com__AVLNode * this)
352 {
353 return 1 + (this->left ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(this->left) : 0) + (this->right ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count(this->right) : 0);
354 }
355
356 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(struct __ecereNameSpace__ecere__com__AVLNode * this)
357 {
358 int leftDepth = this->left ? (__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(this->left) + 1) : 0;
359 int rightDepth = this->right ? (__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp(this->right) + 1) : 0;
360
361 return ((leftDepth > rightDepth) ? leftDepth : rightDepth);
362 }
363
364 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__IteratorPointer;
365
366 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(struct __ecereNameSpace__ecere__com__AVLNode * this)
367 {
368 if(this->left)
369 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(this->left);
370 if(this->right)
371 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Free(this->right);
372 ((this ? (__ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor ? __ecereClass___ecereNameSpace__ecere__com__AVLNode->Destructor(this) : 0, __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor ? __ecereClass___ecereNameSpace__ecere__com__IteratorPointer->Destructor(this) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(this)) : 0), this = 0);
373 }
374
375 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass_uint64;
376
377 unsigned int __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Add(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__Class * Tclass, struct __ecereNameSpace__ecere__com__AVLNode * node)
378 {
379 uint64 newKey = node->key;
380
381 if(!Tclass)
382 Tclass = __ecereClass_uint64;
383 while(0x1)
384 {
385 int result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, (Tclass->type == 1000 || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&node->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&node->key), (Tclass->type == 1000 || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&this->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&this->key));
386
387 if(!result)
388 {
389 return 0x0;
390 }
391 else if(result > 0)
392 {
393 if(this->right)
394 this = this->right;
395 else
396 {
397 node->parent = this;
398 this->right = node;
399 node->depth = 0;
400 {
401 struct __ecereNameSpace__ecere__com__AVLNode * n;
402
403 for(n = this; n; n = n->parent)
404 {
405 int __simpleStruct0, __simpleStruct1;
406 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
407
408 if(newDepth == n->depth)
409 break;
410 n->depth = newDepth;
411 }
412 }
413 return 0x1;
414 }
415 }
416 else
417 {
418 if(this->left)
419 this = this->left;
420 else
421 {
422 node->parent = this;
423 this->left = node;
424 node->depth = 0;
425 {
426 struct __ecereNameSpace__ecere__com__AVLNode * n;
427
428 for(n = this; n; n = n->parent)
429 {
430 int __simpleStruct0, __simpleStruct1;
431 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
432
433 if(newDepth == n->depth)
434 break;
435 n->depth = newDepth;
436 }
437 }
438 return 0x1;
439 }
440 }
441 }
442 }
443
444 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__Class * Tclass, uint64 key)
445 {
446 while(this)
447 {
448 int result = ((int (*)(void *, void *, void *))(void *)Tclass->_vTbl[__ecereVMethodID_class_OnCompare])(Tclass, (Tclass->type == 1000 || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3) ? (((unsigned char *)&key) + __ENDIAN_PAD(Tclass->typeSize)) : (void *)key, (Tclass->type == 1000 || Tclass->type == 2 || Tclass->type == 4 || Tclass->type == 3 || Tclass->type == 1) ? (((unsigned char *)&this->key) + __ENDIAN_PAD((Tclass->type == 1) ? sizeof(void *) : Tclass->typeSize)) : (void *)*(uint64 *)(&this->key));
449
450 if(result < 0)
451 this = this->left;
452 else if(result > 0)
453 this = this->right;
454 else
455 break;
456 }
457 return this;
458 }
459
460 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(struct __ecereNameSpace__ecere__com__AVLNode * this, uint64 key)
461 {
462 struct __ecereNameSpace__ecere__com__AVLNode * result = (((void *)0));
463
464 if(this->key == key)
465 result = this;
466 if(!result && this->left)
467 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(this->left, key);
468 if(!result && this->right)
469 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_FindAll(this->right, key);
470 return result;
471 }
472
473 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(struct __ecereNameSpace__ecere__com__AVLNode * this, struct __ecereNameSpace__ecere__com__AVLNode * swap)
474 {
475 if(swap->left)
476 {
477 swap->left->parent = swap->parent;
478 if(swap == swap->parent->left)
479 swap->parent->left = swap->left;
480 else if(swap == swap->parent->right)
481 swap->parent->right = swap->left;
482 swap->left = (((void *)0));
483 }
484 if(swap->right)
485 {
486 swap->right->parent = swap->parent;
487 if(swap == swap->parent->left)
488 swap->parent->left = swap->right;
489 else if(swap == swap->parent->right)
490 swap->parent->right = swap->right;
491 swap->right = (((void *)0));
492 }
493 if(swap == swap->parent->left)
494 swap->parent->left = (((void *)0));
495 else if(swap == swap->parent->right)
496 swap->parent->right = (((void *)0));
497 {
498 struct __ecereNameSpace__ecere__com__AVLNode * n;
499
500 for(n = swap->parent; n; n = n->parent)
501 {
502 int __simpleStruct0, __simpleStruct1;
503 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
504
505 if(newDepth == n->depth)
506 break;
507 n->depth = newDepth;
508 if(n == this)
509 break;
510 }
511 }
512 swap->left = this->left;
513 if(this->left)
514 this->left->parent = swap;
515 swap->right = this->right;
516 if(this->right)
517 this->right->parent = swap;
518 swap->parent = this->parent;
519 this->left = (((void *)0));
520 this->right = (((void *)0));
521 if(this->parent)
522 {
523 if(this == this->parent->left)
524 this->parent->left = swap;
525 else if(this == this->parent->right)
526 this->parent->right = swap;
527 }
528 }
529
530 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance();
531
532 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
533 {
534 struct __ecereNameSpace__ecere__com__AVLNode * swap = this->left ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(this->left) : this->right;
535 struct __ecereNameSpace__ecere__com__AVLNode * swapParent = (((void *)0));
536
537 if(swap)
538 {
539 swapParent = swap->parent;
540 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(this, swap);
541 }
542 if(this->parent)
543 {
544 if(this == this->parent->left)
545 this->parent->left = (((void *)0));
546 else if(this == this->parent->right)
547 this->parent->right = (((void *)0));
548 }
549 {
550 struct __ecereNameSpace__ecere__com__AVLNode * n;
551
552 for(n = swap ? swap : this->parent; n; n = n->parent)
553 {
554 int __simpleStruct0, __simpleStruct1;
555 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
556
557 if(newDepth == n->depth && n != swap)
558 break;
559 n->depth = newDepth;
560 }
561 }
562 if(swapParent && swapParent != this)
563 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swapParent);
564 else if(swap)
565 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swap);
566 else if(this->parent)
567 return __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(this->parent);
568 else
569 return (((void *)0));
570 }
571
572 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
573 {
574 struct __ecereNameSpace__ecere__com__AVLNode * result;
575 struct __ecereNameSpace__ecere__com__AVLNode * swap = this->right ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(this->right) : this->left;
576 struct __ecereNameSpace__ecere__com__AVLNode * swapParent = (((void *)0));
577
578 if(swap)
579 {
580 swapParent = swap->parent;
581 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwap(this, swap);
582 }
583 if(this->parent)
584 {
585 if(this == this->parent->left)
586 this->parent->left = (((void *)0));
587 else if(this == this->parent->right)
588 this->parent->right = (((void *)0));
589 }
590 {
591 struct __ecereNameSpace__ecere__com__AVLNode * n;
592
593 for(n = swap ? swap : this->parent; n; n = n->parent)
594 {
595 int __simpleStruct0, __simpleStruct1;
596 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
597
598 if(newDepth == n->depth && n != swap)
599 break;
600 n->depth = newDepth;
601 }
602 }
603 if(swapParent && swapParent != this)
604 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swapParent);
605 else if(swap)
606 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(swap);
607 else if(this->parent)
608 result = __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(this->parent);
609 else
610 result = (((void *)0));
611 return result;
612 }
613
614 int __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(struct __ecereNameSpace__ecere__com__AVLNode * this)
615 {
616 int leftDepth = this->left ? (this->left->depth + 1) : 0;
617 int rightDepth = this->right ? (this->right->depth + 1) : 0;
618
619 return rightDepth - leftDepth;
620 }
621
622 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight();
623
624 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight();
625
626 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft();
627
628 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft();
629
630 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(struct __ecereNameSpace__ecere__com__AVLNode * this)
631 {
632 while(0x1)
633 {
634 int factor = __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this);
635
636 if(factor < -1)
637 {
638 if(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this->left) == 1)
639 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight(this);
640 else
641 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this);
642 }
643 else if(factor > 1)
644 {
645 if(__ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor(this->right) == -1)
646 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft(this);
647 else
648 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this);
649 }
650 if(this->parent)
651 this = this->parent;
652 else
653 return this;
654 }
655 }
656
657 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
658 {
659 int __simpleStruct2, __simpleStruct3;
660 int __simpleStruct0, __simpleStruct1;
661
662 if(this->parent)
663 {
664 if(this == this->parent->left)
665 this->parent->left = this->left;
666 else if(this == this->parent->right)
667 this->parent->right = this->left;
668 }
669 this->left->parent = this->parent;
670 this->parent = this->left;
671 this->left = this->parent->right;
672 if(this->left)
673 this->left->parent = this;
674 this->parent->right = this;
675 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
676 this->parent->depth = (__simpleStruct2 = this->parent->left ? (this->parent->left->depth + 1) : 0, __simpleStruct3 = this->parent->right ? (this->parent->right->depth + 1) : 0, (__simpleStruct2 > __simpleStruct3) ? __simpleStruct2 : __simpleStruct3);
677 {
678 struct __ecereNameSpace__ecere__com__AVLNode * n;
679
680 for(n = this->parent->parent; n; n = n->parent)
681 {
682 int __simpleStruct0, __simpleStruct1;
683 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
684
685 if(newDepth == n->depth)
686 break;
687 n->depth = newDepth;
688 }
689 }
690 }
691
692 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
693 {
694 int __simpleStruct2, __simpleStruct3;
695 int __simpleStruct0, __simpleStruct1;
696
697 if(this->parent)
698 {
699 if(this == this->parent->right)
700 this->parent->right = this->right;
701 else if(this == this->parent->left)
702 this->parent->left = this->right;
703 }
704 this->right->parent = this->parent;
705 this->parent = this->right;
706 this->right = this->parent->left;
707 if(this->right)
708 this->right->parent = this;
709 this->parent->left = this;
710 this->depth = (__simpleStruct0 = this->left ? (this->left->depth + 1) : 0, __simpleStruct1 = this->right ? (this->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
711 this->parent->depth = (__simpleStruct2 = this->parent->left ? (this->parent->left->depth + 1) : 0, __simpleStruct3 = this->parent->right ? (this->parent->right->depth + 1) : 0, (__simpleStruct2 > __simpleStruct3) ? __simpleStruct2 : __simpleStruct3);
712 {
713 struct __ecereNameSpace__ecere__com__AVLNode * n;
714
715 for(n = this->parent->parent; n; n = n->parent)
716 {
717 int __simpleStruct0, __simpleStruct1;
718 int newDepth = (__simpleStruct0 = n->left ? (n->left->depth + 1) : 0, __simpleStruct1 = n->right ? (n->right->depth + 1) : 0, (__simpleStruct0 > __simpleStruct1) ? __simpleStruct0 : __simpleStruct1);
719
720 if(newDepth == n->depth)
721 break;
722 n->depth = newDepth;
723 }
724 }
725 }
726
727 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateRight(struct __ecereNameSpace__ecere__com__AVLNode * this)
728 {
729 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this->left);
730 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this);
731 }
732
733 void __ecereMethod___ecereNameSpace__ecere__com__AVLNode_DoubleRotateLeft(struct __ecereNameSpace__ecere__com__AVLNode * this)
734 {
735 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateRight(this->right);
736 __ecereMethod___ecereNameSpace__ecere__com__AVLNode_SingleRotateLeft(this);
737 }
738
739 struct __ecereNameSpace__ecere__com__CustomAVLTree
740 {
741 struct __ecereNameSpace__ecere__com__AVLNode * root;
742 int count;
743 } __attribute__ ((gcc_struct));
744
745 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree;
746
747 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetFirst(struct __ecereNameSpace__ecere__com__Instance * this)
748 {
749 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
750
751 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root) : (((void *)0)));
752 }
753
754 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetLast(struct __ecereNameSpace__ecere__com__Instance * this)
755 {
756 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
757
758 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root ? __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root) : (((void *)0)));
759 }
760
761 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetPrev(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
762 {
763 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
764
765 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev(((struct __ecereNameSpace__ecere__com__AVLNode *)node));
766 }
767
768 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetNext(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
769 {
770 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
771
772 return __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next(((struct __ecereNameSpace__ecere__com__AVLNode *)node));
773 }
774
775 struct __ecereNameSpace__ecere__com__AVLNode * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
776 {
777 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
778
779 return (struct __ecereNameSpace__ecere__com__AVLNode *)node;
780 }
781
782 unsigned int __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_SetData(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node, uint64 data)
783 {
784 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
785
786 return 0x0;
787 }
788
789 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_FindClass(struct __ecereNameSpace__ecere__com__Instance * module, char *  name);
790
791 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
792
793 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
794
795 struct __ecereNameSpace__ecere__com__NameSpace
796 {
797 char *  name;
798 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
799 struct __ecereNameSpace__ecere__com__NameSpace *  left;
800 struct __ecereNameSpace__ecere__com__NameSpace *  right;
801 int depth;
802 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
803 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
804 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
805 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
806 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
807 } __attribute__ ((gcc_struct));
808
809 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
810
811 struct __ecereNameSpace__ecere__com__Module
812 {
813 struct __ecereNameSpace__ecere__com__Instance * application;
814 struct __ecereNameSpace__ecere__sys__OldList classes;
815 struct __ecereNameSpace__ecere__sys__OldList defines;
816 struct __ecereNameSpace__ecere__sys__OldList functions;
817 struct __ecereNameSpace__ecere__sys__OldList modules;
818 struct __ecereNameSpace__ecere__com__Instance * prev;
819 struct __ecereNameSpace__ecere__com__Instance * next;
820 char *  name;
821 void *  library;
822 void *  Unload;
823 int importType;
824 int origImportType;
825 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
826 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
827 } __attribute__ ((gcc_struct));
828
829 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Add(struct __ecereNameSpace__ecere__com__Instance * this, uint64 node)
830 {
831 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
832
833 if(!__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)
834 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = node;
835 else
836 {
837 struct __ecereNameSpace__ecere__com__Class * Tclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->templateArgs[0].dataTypeClass;
838
839 if(!Tclass)
840 {
841 Tclass = ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->templateArgs[0].dataTypeClass = __ecereNameSpace__ecere__com__eSystem_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application, ((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->templateArgs[0].dataTypeString);
842 }
843 if(__ecereMethod___ecereNameSpace__ecere__com__AVLNode_Add(__ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root, Tclass, node))
844 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = (uint64)(__ecereMethod___ecereNameSpace__ecere__com__AVLNode_Rebalance(node));
845 else
846 return (((void *)0));
847 }
848 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->count++;
849 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)node;
850 }
851
852 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Remove(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * node)
853 {
854 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
855 struct __ecereNameSpace__ecere__com__AVLNode * parent = ((struct __ecereNameSpace__ecere__com__AVLNode *)node)->parent;
856
857 if(parent || __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root == (struct __ecereNameSpace__ecere__com__AVLNode *)node)
858 {
859 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root = (uint64)(__ecereMethod___ecereNameSpace__ecere__com__AVLNode_RemoveSwapRight(((struct __ecereNameSpace__ecere__com__AVLNode *)node)));
860 __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->count--;
861 ((struct __ecereNameSpace__ecere__com__AVLNode *)node)->parent = (((void *)0));
862 }
863 }
864
865 int __ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove;
866
867 int __ecereVMethodID_class_OnFree;
868
869 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Delete(struct __ecereNameSpace__ecere__com__Instance * this, struct __ecereNameSpace__ecere__com__IteratorPointer * _item)
870 {
871 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
872 struct __ecereNameSpace__ecere__com__AVLNode * item = (struct __ecereNameSpace__ecere__com__AVLNode *)_item;
873
874 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__ecereClass___ecereNameSpace__ecere__com__CustomAVLTree->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(this, _item);
875 (((void (* )(void *  _class, void *  data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass, item), item = 0);
876 }
877
878 void __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Free(struct __ecereNameSpace__ecere__com__Instance * this)
879 {
880 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
881 struct __ecereNameSpace__ecere__com__AVLNode * item;
882
883 while(item = __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree->root)
884 {
885 ((void (*)(struct __ecereNameSpace__ecere__com__Instance *, struct __ecereNameSpace__ecere__com__IteratorPointer * it))__ecereClass___ecereNameSpace__ecere__com__CustomAVLTree->_vTbl[__ecereVMethodID___ecereNameSpace__ecere__com__Container_Remove])(this, item);
886 (((void (* )(void *  _class, void *  data))((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass->_vTbl[__ecereVMethodID_class_OnFree])(((struct __ecereNameSpace__ecere__com__Instance *)(char *)this)->_class->templateArgs[3].dataTypeClass, item), item = 0);
887 }
888 }
889
890 struct __ecereNameSpace__ecere__com__IteratorPointer * __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Find(struct __ecereNameSpace__ecere__com__Instance * this, uint64 value)
891 {
892 struct __ecereNameSpace__ecere__com__CustomAVLTree * __ecerePointer___ecereNameSpace__ecere__com__CustomAVLTree = (struct __ecereNameSpace__ecere__com__CustomAVLTree *)(this ? (((char *)this) + structSize_Instance) : 0);
893
894 return (struct __ecereNameSpace__ecere__com__IteratorPointer *)value;
895 }
896
897 extern 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);
898
899 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, char *  name, char *  type, void *  function, int declMode);
900
901 extern 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);
902
903 extern 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);
904
905 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateParameter;
906
907 struct __ecereNameSpace__ecere__com__ClassTemplateParameter;
908
909 extern 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);
910
911 extern void __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(struct __ecereNameSpace__ecere__com__Class * base);
912
913 void __ecereRegisterModule_CustomAVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
914 {
915 struct __ecereNameSpace__ecere__com__ClassTemplateArgument __simpleStruct0 = 
916 {
917 "uint64", 0, 0, 0, 0
918 };
919 struct __ecereNameSpace__ecere__com__Class * class;
920
921 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::com::AVLNode", "ecere::com::IteratorPointer", sizeof(struct __ecereNameSpace__ecere__com__AVLNode), 0, 0, 0, module, 4, 1);
922 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
923 __ecereClass___ecereNameSpace__ecere__com__AVLNode = class;
924 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", "thisclass Find(ecere::com::Class Tclass, T key)", __ecereMethod___ecereNameSpace__ecere__com__AVLNode_Find, 1);
925 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "__ecerePrivateData0", "byte[" _XSTR(AVLNode_PrivateData) "]", AVLNode_PrivateData, 1, 2);
926 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "key", "T", 8, 8, 1);
927 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "prev", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_prev, 1);
928 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
929 __ecereProp___ecereNameSpace__ecere__com__AVLNode_prev = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = (void *)0;
930 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "next", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_next, 1);
931 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
932 __ecereProp___ecereNameSpace__ecere__com__AVLNode_next = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = (void *)0;
933 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "minimum", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_minimum, 1);
934 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
935 __ecereProp___ecereNameSpace__ecere__com__AVLNode_minimum = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = (void *)0;
936 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "maximum", "thisclass", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_maximum, 1);
937 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
938 __ecereProp___ecereNameSpace__ecere__com__AVLNode_maximum = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = (void *)0;
939 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "count", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_count, 1);
940 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
941 __ecereProp___ecereNameSpace__ecere__com__AVLNode_count = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = (void *)0;
942 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "depthProp", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_depthProp, 1);
943 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
944 __ecereProp___ecereNameSpace__ecere__com__AVLNode_depthProp = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = (void *)0;
945 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = __ecereNameSpace__ecere__com__eClass_AddProperty(class, "balanceFactor", "int", 0, __ecereProp___ecereNameSpace__ecere__com__AVLNode_Get_balanceFactor, 2);
946 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application)
947 __ecereProp___ecereNameSpace__ecere__com__AVLNode_balanceFactor = __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor, __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = (void *)0;
948 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "T", 0, 0, (((void *)0)));
949 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
950 if(class)
951 class->fixed = (unsigned int)1;
952 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(0, "ecere::com::CustomAVLTree", "ecere::com::Container<BT>", sizeof(struct __ecereNameSpace__ecere__com__CustomAVLTree), 0, 0, 0, module, 4, 1);
953 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
954 __ecereClass___ecereNameSpace__ecere__com__CustomAVLTree = class;
955 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetFirst", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetFirst, 1);
956 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetLast", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetLast, 1);
957 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetPrev", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetPrev, 1);
958 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetNext", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetNext, 1);
959 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "GetData", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_GetData, 1);
960 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "SetData", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_SetData, 1);
961 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Add, 1);
962 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Remove, 1);
963 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Find", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Find, 1);
964 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Free, 1);
965 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", 0, __ecereMethod___ecereNameSpace__ecere__com__CustomAVLTree_Delete, 1);
966 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "root", "BT", arch_PointerSize, arch_PointerSize, 1);
967 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
968 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "BT", 0, "ecere::com::AVLNode", (((void *)0)));
969 __ecereNameSpace__ecere__com__eClass_AddTemplateParameter(class, "KT", 0, 0, &__simpleStruct0);
970 __ecereNameSpace__ecere__com__eClass_DoneAddingTemplateParameters(class);
971 if(class)
972 class->fixed = (unsigned int)1;
973 }
974
975 void __ecereUnregisterModule_CustomAVLTree(struct __ecereNameSpace__ecere__com__Instance * module)
976 {
977
978 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_prev = (void *)0;
979 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_next = (void *)0;
980 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_minimum = (void *)0;
981 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_maximum = (void *)0;
982 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_count = (void *)0;
983 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_depthProp = (void *)0;
984 __ecerePropM___ecereNameSpace__ecere__com__AVLNode_balanceFactor = (void *)0;
985 }
986