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