compiler/libec; ecere: Support for checking platform as a compile time constant
[sdk] / compiler / bootstrap / ecere / bootstrap / OldList.c
1 /* Code generated from eC source file: OldList.ec */
2 #if defined(_WIN32)
3 #define __runtimePlatform 1
4 #elif defined(__APPLE__)
5 #define __runtimePlatform 3
6 #else
7 #define __runtimePlatform 2
8 #endif
9 #if defined(__GNUC__)
10 typedef long long int64;
11 typedef unsigned long long uint64;
12 #ifndef _WIN32
13 #define __declspec(x)
14 #endif
15 #elif defined(__TINYC__)
16 #include <stdarg.h>
17 #define __builtin_va_list va_list
18 #define __builtin_va_start va_start
19 #define __builtin_va_end va_end
20 #ifdef _WIN32
21 #define strcasecmp stricmp
22 #define strncasecmp strnicmp
23 #define __declspec(x) __attribute__((x))
24 #else
25 #define __declspec(x)
26 #endif
27 typedef long long int64;
28 typedef unsigned long long uint64;
29 #else
30 typedef __int64 int64;
31 typedef unsigned __int64 uint64;
32 #endif
33 #ifdef __BIG_ENDIAN__
34 #define __ENDIAN_PAD(x) (8 - (x))
35 #else
36 #define __ENDIAN_PAD(x) 0
37 #endif
38 #include <stdint.h>
39 #include <sys/types.h>
40
41 #if /*defined(_W64) || */(defined(__WORDSIZE) && __WORDSIZE == 8) || defined(__x86_64__)
42 #define _64BIT 1
43 #else
44 #define _64BIT 0
45 #endif
46
47 #define arch_PointerSize                  sizeof(void *)
48 #define structSize_Instance               (_64BIT ? 24 : 12)
49
50 struct __ecereNameSpace__ecere__com__Instance;
51
52 extern void *  __ecereNameSpace__ecere__com__eSystem_New(unsigned int size);
53
54 extern void *  __ecereNameSpace__ecere__com__eSystem_New0(unsigned int size);
55
56 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew(void *  memory, unsigned int size);
57
58 extern void *  __ecereNameSpace__ecere__com__eSystem_Renew0(void *  memory, unsigned int size);
59
60 extern void __ecereNameSpace__ecere__com__eSystem_Delete(void *  memory);
61
62 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BTNode;
63
64 struct __ecereNameSpace__ecere__sys__BTNode;
65
66 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__BinaryTree;
67
68 struct __ecereNameSpace__ecere__sys__BinaryTree
69 {
70 struct __ecereNameSpace__ecere__sys__BTNode * root;
71 int count;
72 int (*  CompareKey)(struct __ecereNameSpace__ecere__sys__BinaryTree * tree, uintptr_t a, uintptr_t b);
73 void (*  FreeKey)(void *  key);
74 } __attribute__ ((gcc_struct));
75
76 struct __ecereNameSpace__ecere__sys__OldList
77 {
78 void * first, * last;
79 int count;
80 unsigned int offset;
81 unsigned int circ;
82 } __attribute__ ((gcc_struct));
83
84 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldList;
85
86 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Class;
87
88 struct __ecereNameSpace__ecere__com__Class
89 {
90 struct __ecereNameSpace__ecere__com__Class * prev;
91 struct __ecereNameSpace__ecere__com__Class * next;
92 const char *  name;
93 int offset;
94 int structSize;
95 int (* *  _vTbl)();
96 int vTblSize;
97 int (*  Constructor)(struct __ecereNameSpace__ecere__com__Instance *);
98 void (*  Destructor)(struct __ecereNameSpace__ecere__com__Instance *);
99 int offsetClass;
100 int sizeClass;
101 struct __ecereNameSpace__ecere__com__Class * base;
102 struct __ecereNameSpace__ecere__sys__BinaryTree methods;
103 struct __ecereNameSpace__ecere__sys__BinaryTree members;
104 struct __ecereNameSpace__ecere__sys__BinaryTree prop;
105 struct __ecereNameSpace__ecere__sys__OldList membersAndProperties;
106 struct __ecereNameSpace__ecere__sys__BinaryTree classProperties;
107 struct __ecereNameSpace__ecere__sys__OldList derivatives;
108 int memberID;
109 int startMemberID;
110 int type;
111 struct __ecereNameSpace__ecere__com__Instance * module;
112 struct __ecereNameSpace__ecere__com__NameSpace *  nameSpace;
113 const char *  dataTypeString;
114 struct __ecereNameSpace__ecere__com__Instance * dataType;
115 int typeSize;
116 int defaultAlignment;
117 void (*  Initialize)();
118 int memberOffset;
119 struct __ecereNameSpace__ecere__sys__OldList selfWatchers;
120 const char *  designerClass;
121 unsigned int noExpansion;
122 const char *  defaultProperty;
123 unsigned int comRedefinition;
124 int count;
125 int isRemote;
126 unsigned int internalDecl;
127 void *  data;
128 unsigned int computeSize;
129 int structAlignment;
130 int destructionWatchOffset;
131 unsigned int fixed;
132 struct __ecereNameSpace__ecere__sys__OldList delayedCPValues;
133 int inheritanceAccess;
134 const char *  fullName;
135 void *  symbol;
136 struct __ecereNameSpace__ecere__sys__OldList conversions;
137 struct __ecereNameSpace__ecere__sys__OldList templateParams;
138 struct __ecereNameSpace__ecere__com__ClassTemplateArgument *  templateArgs;
139 struct __ecereNameSpace__ecere__com__Class * templateClass;
140 struct __ecereNameSpace__ecere__sys__OldList templatized;
141 int numParams;
142 unsigned int isInstanceClass;
143 unsigned int byValueSystemClass;
144 } __attribute__ ((gcc_struct));
145
146 extern long long __ecereNameSpace__ecere__com__eClass_GetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name);
147
148 extern void __ecereNameSpace__ecere__com__eClass_SetProperty(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, long long value);
149
150 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Property;
151
152 struct __ecereNameSpace__ecere__com__Property
153 {
154 struct __ecereNameSpace__ecere__com__Property * prev;
155 struct __ecereNameSpace__ecere__com__Property * next;
156 const char *  name;
157 unsigned int isProperty;
158 int memberAccess;
159 int id;
160 struct __ecereNameSpace__ecere__com__Class * _class;
161 const char *  dataTypeString;
162 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
163 struct __ecereNameSpace__ecere__com__Instance * dataType;
164 void (*  Set)(void * , int);
165 int (*  Get)(void * );
166 unsigned int (*  IsSet)(void * );
167 void *  data;
168 void *  symbol;
169 int vid;
170 unsigned int conversion;
171 unsigned int watcherOffset;
172 const char *  category;
173 unsigned int compiled;
174 unsigned int selfWatchable;
175 unsigned int isWatchable;
176 } __attribute__ ((gcc_struct));
177
178 extern void __ecereNameSpace__ecere__com__eInstance_FireSelfWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
179
180 extern void __ecereNameSpace__ecere__com__eInstance_SetMethod(struct __ecereNameSpace__ecere__com__Instance * instance, const char *  name, void *  function);
181
182 extern void __ecereNameSpace__ecere__com__eInstance_IncRef(struct __ecereNameSpace__ecere__com__Instance * instance);
183
184 extern void __ecereNameSpace__ecere__com__eInstance_StopWatching(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property, struct __ecereNameSpace__ecere__com__Instance * object);
185
186 extern void __ecereNameSpace__ecere__com__eInstance_Watch(void *  instance, struct __ecereNameSpace__ecere__com__Property * _property, void *  object, void (*  callback)(void * , void * ));
187
188 extern void __ecereNameSpace__ecere__com__eInstance_FireWatchers(struct __ecereNameSpace__ecere__com__Instance * instance, struct __ecereNameSpace__ecere__com__Property * _property);
189
190 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Instance;
191
192 struct __ecereNameSpace__ecere__com__Instance
193 {
194 int (* *  _vTbl)();
195 struct __ecereNameSpace__ecere__com__Class * _class;
196 int _refCount;
197 } __attribute__ ((gcc_struct));
198
199 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataMember;
200
201 struct __ecereNameSpace__ecere__com__DataMember
202 {
203 struct __ecereNameSpace__ecere__com__DataMember * prev;
204 struct __ecereNameSpace__ecere__com__DataMember * next;
205 const char *  name;
206 unsigned int isProperty;
207 int memberAccess;
208 int id;
209 struct __ecereNameSpace__ecere__com__Class * _class;
210 const char *  dataTypeString;
211 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
212 struct __ecereNameSpace__ecere__com__Instance * dataType;
213 int type;
214 int offset;
215 int memberID;
216 struct __ecereNameSpace__ecere__sys__OldList members;
217 struct __ecereNameSpace__ecere__sys__BinaryTree membersAlpha;
218 int memberOffset;
219 int structAlignment;
220 } __attribute__ ((gcc_struct));
221
222 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Method;
223
224 struct __ecereNameSpace__ecere__com__Method
225 {
226 const char *  name;
227 struct __ecereNameSpace__ecere__com__Method * parent;
228 struct __ecereNameSpace__ecere__com__Method * left;
229 struct __ecereNameSpace__ecere__com__Method * right;
230 int depth;
231 int (*  function)();
232 int vid;
233 int type;
234 struct __ecereNameSpace__ecere__com__Class * _class;
235 void *  symbol;
236 const char *  dataTypeString;
237 struct __ecereNameSpace__ecere__com__Instance * dataType;
238 int memberAccess;
239 } __attribute__ ((gcc_struct));
240
241 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__SerialBuffer;
242
243 struct __ecereNameSpace__ecere__com__SerialBuffer
244 {
245 unsigned char *  _buffer;
246 unsigned int count;
247 unsigned int _size;
248 unsigned int pos;
249 } __attribute__ ((gcc_struct));
250
251 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DataValue;
252
253 struct __ecereNameSpace__ecere__com__DataValue
254 {
255 union
256 {
257 char c;
258 unsigned char uc;
259 short s;
260 unsigned short us;
261 int i;
262 unsigned int ui;
263 void *  p;
264 float f;
265 double d;
266 long long i64;
267 uint64 ui64;
268 } __attribute__ ((gcc_struct)) __anon1;
269 } __attribute__ ((gcc_struct));
270
271 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__ClassTemplateArgument;
272
273 struct __ecereNameSpace__ecere__com__ClassTemplateArgument
274 {
275 union
276 {
277 struct
278 {
279 const char *  dataTypeString;
280 struct __ecereNameSpace__ecere__com__Class * dataTypeClass;
281 } __attribute__ ((gcc_struct)) __anon1;
282 struct __ecereNameSpace__ecere__com__DataValue expression;
283 struct
284 {
285 const char *  memberString;
286 union
287 {
288 struct __ecereNameSpace__ecere__com__DataMember * member;
289 struct __ecereNameSpace__ecere__com__Property * prop;
290 struct __ecereNameSpace__ecere__com__Method * method;
291 } __attribute__ ((gcc_struct)) __anon1;
292 } __attribute__ ((gcc_struct)) __anon2;
293 } __attribute__ ((gcc_struct)) __anon1;
294 } __attribute__ ((gcc_struct));
295
296 struct __ecereNameSpace__ecere__sys__Item
297 {
298 struct __ecereNameSpace__ecere__sys__Item * prev, * next;
299 } __attribute__ ((gcc_struct));
300
301 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__Item;
302
303 extern void *  memcpy(void * , const void * , size_t size);
304
305 void __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy(struct __ecereNameSpace__ecere__sys__Item * this, struct __ecereNameSpace__ecere__sys__Item * src, int size)
306 {
307 memcpy((unsigned char *)this + sizeof(struct __ecereNameSpace__ecere__sys__Item), (unsigned char *)src + sizeof(struct __ecereNameSpace__ecere__sys__Item), size - sizeof(struct __ecereNameSpace__ecere__sys__Item *));
308 }
309
310 struct __ecereNameSpace__ecere__sys__NamedItem
311 {
312 struct __ecereNameSpace__ecere__sys__NamedItem * prev, * next;
313 char * name;
314 } __attribute__ ((gcc_struct));
315
316 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedItem;
317
318 struct __ecereNameSpace__ecere__sys__OldLink
319 {
320 struct __ecereNameSpace__ecere__sys__OldLink * prev, * next;
321 void * data;
322 } __attribute__ ((gcc_struct));
323
324 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__OldLink;
325
326 void __ecereMethod___ecereNameSpace__ecere__sys__OldLink_Free(struct __ecereNameSpace__ecere__sys__OldLink * this)
327 {
328 (__ecereNameSpace__ecere__com__eSystem_Delete(this->data), this->data = 0);
329 }
330
331 struct __ecereNameSpace__ecere__sys__NamedLink
332 {
333 struct __ecereNameSpace__ecere__sys__NamedLink * prev, * next;
334 char * name;
335 void * data;
336 } __attribute__ ((gcc_struct));
337
338 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink;
339
340 struct __ecereNameSpace__ecere__sys__NamedLink64
341 {
342 struct __ecereNameSpace__ecere__sys__NamedLink64 * prev, * next;
343 char * name;
344 long long data;
345 } __attribute__ ((gcc_struct));
346
347 static struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__sys__NamedLink64;
348
349 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(struct __ecereNameSpace__ecere__sys__OldList * this);
350
351 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
352
353 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void *  item);
354
355 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Merge(struct __ecereNameSpace__ecere__sys__OldList * this, struct __ecereNameSpace__ecere__sys__OldList * list1, struct __ecereNameSpace__ecere__sys__OldList * list2, int (* compare)(void *, void *, void *), void * data)
356 {
357 void * item;
358
359 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(this);
360 this->offset = list1->offset;
361 while((list1->first && list2->first))
362 {
363 if(compare(list1->first, list2->first, data) <= 0)
364 {
365 item = list1->first;
366 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list1, item);
367 }
368 else
369 {
370 item = list2->first;
371 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list2, item);
372 }
373 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
374 }
375 while((item = list1->first))
376 {
377 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list1, item);
378 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
379 }
380 while((item = list2->first))
381 {
382 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(list2, item);
383 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, item);
384 }
385 }
386
387 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
388 {
389 if(item)
390 {
391 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
392
393 link->prev = this->last;
394 if(link->prev)
395 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
396 if(!this->first)
397 this->first = item;
398 this->last = item;
399 link->next = this->circ ? this->first : (((void *)0));
400 if(this->circ)
401 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->prev = item;
402 this->count++;
403 }
404 }
405
406 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(struct __ecereNameSpace__ecere__sys__OldList * this, void * prevItem, void * item)
407 {
408 if(item && prevItem != item)
409 {
410 struct __ecereNameSpace__ecere__sys__Item * prevLink = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)prevItem + this->offset);
411 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
412
413 link->prev = prevItem ? prevItem : (this->circ ? this->last : (((void *)0)));
414 if(prevItem)
415 {
416 link->next = prevLink->next;
417 prevLink->next = item;
418 }
419 else
420 {
421 link->next = this->first;
422 this->first = item;
423 if(this->circ)
424 {
425 if(link->prev)
426 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
427 else
428 link->next = item;
429 }
430 }
431 if(prevItem == this->last)
432 this->last = item;
433 if(link->next)
434 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = item;
435 this->count++;
436 return 1;
437 }
438 return 0;
439 }
440
441 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
442 {
443 if(item)
444 {
445 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
446
447 if(link->prev)
448 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = link->next;
449 if(link->next)
450 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = link->prev;
451 if(this->circ && this->last == this->first)
452 this->last = this->first = (((void *)0));
453 else
454 {
455 if(this->last == item)
456 this->last = link->prev;
457 if(this->first == item)
458 this->first = link->next;
459 }
460 link->prev = (((void *)0));
461 link->next = (((void *)0));
462 this->count--;
463 }
464 }
465
466 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
467 {
468 if(item)
469 {
470 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(this, item);
471 (__ecereNameSpace__ecere__com__eSystem_Delete(item), item = 0);
472 }
473 }
474
475 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void *))
476 {
477 void * item, * next;
478
479 for(item = this->first; item; item = next)
480 {
481 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
482
483 next = link->next;
484 if(freeFn)
485 freeFn(item);
486 (__ecereNameSpace__ecere__com__eSystem_Delete(item), item = 0);
487 if(next == this->first)
488 break;
489 }
490 this->first = this->last = (((void *)0));
491 this->count = 0;
492 }
493
494 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_RemoveAll(struct __ecereNameSpace__ecere__sys__OldList * this, void (* freeFn)(void *))
495 {
496 void * item, * next;
497
498 for(item = this->first; item; item = next)
499 {
500 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
501
502 next = link->next;
503 if(freeFn)
504 freeFn(item);
505 if(next == this->first)
506 break;
507 }
508 this->first = this->last = (((void *)0));
509 this->count = 0;
510 }
511
512 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(struct __ecereNameSpace__ecere__sys__OldList * this)
513 {
514 this->offset = 0;
515 this->circ = 0;
516 this->count = 0;
517 this->first = this->last = (((void *)0));
518 }
519
520 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Move(struct __ecereNameSpace__ecere__sys__OldList * this, void * item, void * prevItem)
521 {
522 if(item)
523 {
524 struct __ecereNameSpace__ecere__sys__Item * link = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item + this->offset);
525 struct __ecereNameSpace__ecere__sys__Item * prevLink = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)prevItem + this->offset);
526
527 if(prevItem != item && (this->first != item || prevItem))
528 {
529 if(link->prev)
530 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = link->next;
531 if(link->next)
532 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = link->prev;
533 if(item == this->first)
534 this->first = link->next;
535 if(item == this->last)
536 this->last = link->prev;
537 if(prevItem == this->last)
538 this->last = item;
539 link->prev = prevItem ? prevItem : (this->circ ? this->last : (((void *)0)));
540 if(prevItem)
541 {
542 link->next = prevLink->next;
543 prevLink->next = item;
544 }
545 else
546 {
547 link->next = this->first;
548 this->first = item;
549 if(this->circ)
550 {
551 if(link->prev)
552 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->prev + this->offset))->next = item;
553 else
554 link->next = item;
555 }
556 }
557 if(link->next)
558 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link->next + this->offset))->prev = item;
559 }
560 }
561 }
562
563 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Swap(struct __ecereNameSpace__ecere__sys__OldList * this, void * item1, void * item2)
564 {
565 struct __ecereNameSpace__ecere__sys__Item * link1 = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item1 + this->offset);
566 struct __ecereNameSpace__ecere__sys__Item * link2 = (struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)item2 + this->offset);
567 struct __ecereNameSpace__ecere__sys__Item * prev1 = link1->prev, * next1 = link1->next;
568 void * tmp1 = item1, * tmp2 = item2;
569
570 link1->prev = link2->prev;
571 link1->next = link2->next;
572 link2->prev = prev1;
573 link2->next = next1;
574 if(this->first == tmp1)
575 this->first = item2;
576 else if(this->first == tmp2)
577 this->first = item1;
578 if(this->last == tmp1)
579 this->last = item1;
580 else if(this->last == tmp2)
581 this->last = item2;
582 if(link1->next)
583 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link1->next + this->offset))->prev = item2;
584 if(link1->prev)
585 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link1->prev + this->offset))->next = item2;
586 if(link2->next)
587 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link2->next + this->offset))->prev = item1;
588 if(link2->prev)
589 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)link2->prev + this->offset))->next = item1;
590 }
591
592 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(struct __ecereNameSpace__ecere__sys__OldList * this, int (* compare)(void *, void *, void *), void * data)
593 {
594 if(this->first && ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->next)
595 {
596 struct __ecereNameSpace__ecere__sys__OldList list1, list2;
597 void * middle, * end;
598
599 for(middle = this->first, list1.count = 0, list2.count = 0, end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)this->first + this->offset))->next; middle && end; middle = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)middle + this->offset))->next, list1.count++, end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)end + this->offset))->next, list2.count++)
600 {
601 end = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)end + this->offset))->next;
602 if(!end)
603 break;
604 }
605 list1.offset = this->offset;
606 list2.offset = this->offset;
607 list1.circ = this->circ;
608 list2.circ = this->circ;
609 list1.first = this->first;
610 list1.last = middle;
611 list2.first = ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)middle + this->offset))->next;
612 list2.last = this->last;
613 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)list1.last + this->offset))->next = (((void *)0));
614 ((struct __ecereNameSpace__ecere__sys__Item *)((unsigned char *)list2.first + this->offset))->prev = (((void *)0));
615 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(&list1, compare, data);
616 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort(&list2, compare, data);
617 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Merge(this, &list1, &list2, compare, data);
618 }
619 }
620
621 extern int strcmp(const char * , const char * );
622
623 void * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(struct __ecereNameSpace__ecere__sys__OldList * this, const char * name, unsigned int warn)
624 {
625 void * result = (((void *)0));
626
627 if(name)
628 {
629 void * item;
630 struct __ecereNameSpace__ecere__sys__NamedItem * link;
631 int compare = 1;
632
633 for(item = this->first; item; item = link->next)
634 {
635 link = (struct __ecereNameSpace__ecere__sys__NamedItem *)(((unsigned char *)item) + this->offset);
636 if(link->name && (compare = strcmp(link->name, name)) >= 0)
637 break;
638 }
639 if(!compare)
640 result = item;
641 else if(warn)
642 ;
643 }
644 return result;
645 }
646
647 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName(struct __ecereNameSpace__ecere__sys__OldList * this, const char * name, void ** place)
648 {
649 unsigned int result = 1;
650 void * item;
651 struct __ecereNameSpace__ecere__sys__NamedItem * link;
652 int compare = 1;
653
654 for(item = this->first; item; item = link->next)
655 {
656 link = (struct __ecereNameSpace__ecere__sys__NamedItem *)((unsigned char *)item + this->offset);
657 if(link->name && (compare = strcmp(link->name, name)) >= 0)
658 break;
659 }
660 if(!item)
661 *place = this->last;
662 else
663 *place = link->prev;
664 if(compare)
665 result = 1;
666 else
667 ;
668 return result;
669 }
670
671 unsigned int __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName(struct __ecereNameSpace__ecere__sys__OldList * this, void * item)
672 {
673 unsigned int result = 0;
674 void * place;
675 struct __ecereNameSpace__ecere__sys__NamedItem * link = ((struct __ecereNameSpace__ecere__sys__NamedItem *)((unsigned char *)item + this->offset));
676
677 if(__ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName(this, link->name, &place))
678 {
679 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert(this, place, item);
680 result = 1;
681 }
682 return result;
683 }
684
685 struct __ecereNameSpace__ecere__sys__OldLink * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink(struct __ecereNameSpace__ecere__sys__OldList * this, void * data)
686 {
687 void * item;
688 struct __ecereNameSpace__ecere__sys__OldLink * link;
689
690 for(item = this->first; item; item = link->next)
691 {
692 link = (struct __ecereNameSpace__ecere__sys__OldLink *)((unsigned char *)item + this->offset);
693 if(link->data == data)
694 break;
695 }
696 return item;
697 }
698
699 void * __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindNamedLink(struct __ecereNameSpace__ecere__sys__OldList * this, const char * name, unsigned int warn)
700 {
701 if(name)
702 {
703 void * item = __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName(this, name, warn);
704
705 return item ? ((struct __ecereNameSpace__ecere__sys__NamedLink *)((unsigned char *)item + this->offset))->data : (((void *)0));
706 }
707 return (((void *)0));
708 }
709
710 void __ecereMethod___ecereNameSpace__ecere__sys__OldList_Copy(struct __ecereNameSpace__ecere__sys__OldList * this, struct __ecereNameSpace__ecere__sys__OldList * src, int size, void (* copy)(void * dest, void * src))
711 {
712 struct __ecereNameSpace__ecere__sys__Item * item;
713
714 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear(this);
715 for(item = src->first; item; item = item->next)
716 {
717 struct __ecereNameSpace__ecere__sys__Item * newItem = (struct __ecereNameSpace__ecere__sys__Item *)__ecereNameSpace__ecere__com__eSystem_New0(sizeof(unsigned char) * (size));
718
719 __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add(this, newItem);
720 __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy(newItem, item, size);
721 if(copy)
722 copy(newItem, item);
723 }
724 }
725
726 extern struct __ecereNameSpace__ecere__com__Class * __ecereNameSpace__ecere__com__eSystem_RegisterClass(int type, const char *  name, const char *  baseName, int size, int sizeClass, unsigned int (*  Constructor)(void * ), void (*  Destructor)(void * ), struct __ecereNameSpace__ecere__com__Instance * module, int declMode, int inheritanceAccess);
727
728 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__NameSpace;
729
730 struct __ecereNameSpace__ecere__com__NameSpace
731 {
732 const char *  name;
733 struct __ecereNameSpace__ecere__com__NameSpace *  btParent;
734 struct __ecereNameSpace__ecere__com__NameSpace *  left;
735 struct __ecereNameSpace__ecere__com__NameSpace *  right;
736 int depth;
737 struct __ecereNameSpace__ecere__com__NameSpace *  parent;
738 struct __ecereNameSpace__ecere__sys__BinaryTree nameSpaces;
739 struct __ecereNameSpace__ecere__sys__BinaryTree classes;
740 struct __ecereNameSpace__ecere__sys__BinaryTree defines;
741 struct __ecereNameSpace__ecere__sys__BinaryTree functions;
742 } __attribute__ ((gcc_struct));
743
744 extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__Module;
745
746 struct __ecereNameSpace__ecere__com__Module
747 {
748 struct __ecereNameSpace__ecere__com__Instance * application;
749 struct __ecereNameSpace__ecere__sys__OldList classes;
750 struct __ecereNameSpace__ecere__sys__OldList defines;
751 struct __ecereNameSpace__ecere__sys__OldList functions;
752 struct __ecereNameSpace__ecere__sys__OldList modules;
753 struct __ecereNameSpace__ecere__com__Instance * prev;
754 struct __ecereNameSpace__ecere__com__Instance * next;
755 const char *  name;
756 void *  library;
757 void *  Unload;
758 int importType;
759 int origImportType;
760 struct __ecereNameSpace__ecere__com__NameSpace privateNameSpace;
761 struct __ecereNameSpace__ecere__com__NameSpace publicNameSpace;
762 } __attribute__ ((gcc_struct));
763
764 extern struct __ecereNameSpace__ecere__com__Instance * __thisModule;
765
766 extern struct __ecereNameSpace__ecere__com__Method * __ecereNameSpace__ecere__com__eClass_AddMethod(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, void *  function, int declMode);
767
768 extern struct __ecereNameSpace__ecere__com__DataMember * __ecereNameSpace__ecere__com__eClass_AddDataMember(struct __ecereNameSpace__ecere__com__Class * _class, const char *  name, const char *  type, unsigned int size, unsigned int alignment, int declMode);
769
770 void __ecereRegisterModule_OldList(struct __ecereNameSpace__ecere__com__Instance * module)
771 {
772 struct __ecereNameSpace__ecere__com__Class __attribute__((unused)) * class;
773
774 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::Item", 0, sizeof(struct __ecereNameSpace__ecere__sys__Item), 0, 0, 0, module, 4, 1);
775 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
776 __ecereClass___ecereNameSpace__ecere__sys__Item = class;
777 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Copy", "void Copy(ecere::sys::Item src, int size)", __ecereMethod___ecereNameSpace__ecere__sys__Item_Copy, 1);
778 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::Item", arch_PointerSize, arch_PointerSize, 1);
779 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::Item", arch_PointerSize, arch_PointerSize, 1);
780 if(class)
781 class->fixed = (unsigned int)1;
782 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::NamedItem", 0, sizeof(struct __ecereNameSpace__ecere__sys__NamedItem), 0, 0, 0, module, 4, 1);
783 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
784 __ecereClass___ecereNameSpace__ecere__sys__NamedItem = class;
785 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::NamedItem", arch_PointerSize, arch_PointerSize, 1);
786 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::NamedItem", arch_PointerSize, arch_PointerSize, 1);
787 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
788 if(class)
789 class->fixed = (unsigned int)1;
790 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::OldLink", 0, sizeof(struct __ecereNameSpace__ecere__sys__OldLink), 0, 0, 0, module, 4, 1);
791 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
792 __ecereClass___ecereNameSpace__ecere__sys__OldLink = class;
793 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free()", __ecereMethod___ecereNameSpace__ecere__sys__OldLink_Free, 1);
794 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::OldLink", arch_PointerSize, arch_PointerSize, 1);
795 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::OldLink", arch_PointerSize, arch_PointerSize, 1);
796 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
797 if(class)
798 class->fixed = (unsigned int)1;
799 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::NamedLink", 0, sizeof(struct __ecereNameSpace__ecere__sys__NamedLink), 0, 0, 0, module, 4, 1);
800 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
801 __ecereClass___ecereNameSpace__ecere__sys__NamedLink = class;
802 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::NamedLink", arch_PointerSize, arch_PointerSize, 1);
803 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::NamedLink", arch_PointerSize, arch_PointerSize, 1);
804 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
805 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "void *", arch_PointerSize, arch_PointerSize, 1);
806 if(class)
807 class->fixed = (unsigned int)1;
808 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(5, "ecere::sys::NamedLink64", 0, sizeof(struct __ecereNameSpace__ecere__sys__NamedLink64), 0, 0, 0, module, 4, 1);
809 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
810 __ecereClass___ecereNameSpace__ecere__sys__NamedLink64 = class;
811 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "prev", "ecere::sys::NamedLink64", arch_PointerSize, arch_PointerSize, 1);
812 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "next", "ecere::sys::NamedLink64", arch_PointerSize, arch_PointerSize, 1);
813 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "name", "char *", arch_PointerSize, arch_PointerSize, 1);
814 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "data", "int64", 8, 8, 1);
815 if(class)
816 class->fixed = (unsigned int)1;
817 class = __ecereNameSpace__ecere__com__eSystem_RegisterClass(1, "ecere::sys::OldList", 0, sizeof(struct __ecereNameSpace__ecere__sys__OldList), 0, 0, 0, module, 4, 1);
818 if(((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application == ((struct __ecereNameSpace__ecere__com__Module *)(((char *)__thisModule + structSize_Instance)))->application && class)
819 __ecereClass___ecereNameSpace__ecere__sys__OldList = class;
820 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Add", "void Add(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Add, 1);
821 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "AddName", "bool AddName(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_AddName, 1);
822 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Clear", "void Clear(void)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Clear, 1);
823 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Copy", "void Copy(ecere::sys::OldList src, int size, void (* copy)(void * dest, void * src))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Copy, 1);
824 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Delete", "void Delete(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Delete, 1);
825 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindLink", "ecere::sys::OldLink FindLink(void * data)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindLink, 1);
826 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindName", "void * FindName(const char * name, bool warn)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindName, 1);
827 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "FindNamedLink", "void * FindNamedLink(const char * name, bool warn)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_FindNamedLink, 1);
828 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Free", "void Free(void (* freeFn)(void *))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Free, 1);
829 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Insert", "bool Insert(void * prevItem, void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Insert, 1);
830 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Move", "void Move(void * item, void * prevItem)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Move, 1);
831 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "PlaceName", "bool PlaceName(const char * name, void ** place)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_PlaceName, 1);
832 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Remove", "void Remove(void * item)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove, 1);
833 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "RemoveAll", "void RemoveAll(void (* freeFn)(void *))", __ecereMethod___ecereNameSpace__ecere__sys__OldList_RemoveAll, 1);
834 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Sort", "void Sort(int (* compare)(void *, void *, void *), void * data)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Sort, 1);
835 __ecereNameSpace__ecere__com__eClass_AddMethod(class, "Swap", "void Swap(void * item1, void * item2)", __ecereMethod___ecereNameSpace__ecere__sys__OldList_Swap, 1);
836 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "first", "void *", arch_PointerSize, arch_PointerSize, 1);
837 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "last", "void *", arch_PointerSize, arch_PointerSize, 1);
838 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "count", "int", 4, 4, 1);
839 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "offset", "uint", 4, 4, 1);
840 __ecereNameSpace__ecere__com__eClass_AddDataMember(class, "circ", "bool", 4, 4, 1);
841 }
842
843 void __ecereUnregisterModule_OldList(struct __ecereNameSpace__ecere__com__Instance * module)
844 {
845
846 }
847