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