home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1999-01-27 | 19.5 KB | [TEXT/CWIE] |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
You can browse this item here: ZArray.cpp
Confidence | Program | Detection | Match Type | Support
|
---|
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Wed Jan 27 14:48:36 1999, modified Wed Jan 27 14:48:36 1999, creator 'CWIE', type ASCII, 19314 bytes "ZArray.cpp" , at 0x4bf2 428 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [CWIE] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0a 5a 41 72 72 61 79 | 2e 63 70 70 00 00 00 00 |..ZArray|.cpp....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 57 49 | 45 01 00 00 00 00 00 00 |.TEXTCWI|E.......|
|00000050| 00 00 00 00 00 4b 72 00 | 00 01 ac b2 d5 1e 14 b2 |.....Kr.|........|
|00000060| d5 1e 14 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 5c 4e 00 00 |........|....\N..|
|00000080| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000e0| 2a 2a 0d 2a 0d 2a 0d 2a | 09 09 09 4d 61 63 5a 6f |**.*.*.*|...MacZo|
|000000f0| 6f 70 20 2d 20 22 74 68 | 65 20 66 72 61 6d 65 77 |op - "th|e framew|
|00000100| 6f 72 6b 20 66 6f 72 20 | 74 68 65 20 72 65 73 74 |ork for |the rest|
|00000110| 20 6f 66 20 75 73 22 09 | 09 20 0d 2a 0d 2a 0d 2a | of us".|. .*.*.*|
|00000120| 0d 2a 09 09 09 5a 41 72 | 72 61 79 2e 63 70 70 09 |.*...ZAr|ray.cpp.|
|00000130| 09 09 2d 2d 20 74 68 65 | 20 62 61 73 69 63 20 63 |..-- the| basic c|
|00000140| 6f 6e 74 61 69 6e 65 72 | 20 63 6c 61 73 73 20 6f |ontainer| class o|
|00000150| 62 6a 65 63 74 0d 2a 0d | 2a 0d 2a 0d 2a 0d 2a 0d |bject.*.|*.*.*.*.|
|00000160| 2a 09 09 09 a9 20 31 39 | 39 36 2c 20 47 72 61 68 |*.... 19|96, Grah|
|00000170| 61 6d 20 43 6f 78 0d 2a | 0d 2a 0d 2a 0d 2a 0d 2a |am Cox.*|.*.*.*.*|
|00000180| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000190| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001e0| 2f 0d 0d 0d 23 69 6e 63 | 6c 75 64 65 09 22 5a 41 |/...#inc|lude."ZA|
|000001f0| 72 72 61 79 2e 68 22 0d | 23 69 6e 63 6c 75 64 65 |rray.h".|#include|
|00000200| 09 22 4d 61 63 5a 6f 6f | 70 2e 68 22 0d 0d 23 69 |."MacZoo|p.h"..#i|
|00000210| 6e 63 6c 75 64 65 09 3c | 73 74 64 6c 69 62 2e 68 |nclude.<|stdlib.h|
|00000220| 3e 0d 0d 73 74 61 74 69 | 63 20 73 68 6f 72 74 09 |>..stati|c short.|
|00000230| 76 43 6f 6d 70 61 72 65 | 46 75 6e 63 28 20 76 6f |vCompare|Func( vo|
|00000240| 69 64 2a 20 61 2c 20 76 | 6f 69 64 2a 20 62 2c 20 |id* a, v|oid* b, |
|00000250| 63 6f 6e 73 74 20 6c 6f | 6e 67 20 72 65 66 20 3d |const lo|ng ref =|
|00000260| 20 30 20 29 3b 0d 0d 0d | 43 4c 41 53 53 43 4f 4e | 0 );...|CLASSCON|
|00000270| 53 54 52 55 43 54 4f 52 | 28 20 5a 41 72 72 61 79 |STRUCTOR|( ZArray|
|00000280| 20 29 3b 0d 0d 2f 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d | );../*-|--------|
|00000290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002a0| 2d 2d 2d 2d 2d 2d 2a 2a | 2a 20 20 43 4f 4e 53 54 |------**|* CONST|
|000002b0| 52 55 43 54 4f 52 20 20 | 2a 2a 2a 2d 2d 2d 2d 2d |RUCTOR |***-----|
|000002c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2a 2f 0d |--------|-----*/.|
|000002e0| 0d 0d 5a 41 72 72 61 79 | 3a 3a 5a 41 72 72 61 79 |..ZArray|::ZArray|
|000002f0| 28 20 73 68 6f 72 74 20 | 65 6c 65 6d 65 6e 74 53 |( short |elementS|
|00000300| 69 7a 65 20 29 0d 09 3a | 20 5a 43 6f 6d 72 61 64 |ize )..:| ZComrad|
|00000310| 65 28 29 0d 7b 0d 09 63 | 6c 61 73 73 49 44 20 3d |e().{..c|lassID =|
|00000320| 20 43 4c 41 53 53 5f 5a | 41 72 72 61 79 3b 0d 09 | CLASS_Z|Array;..|
|00000330| 0d 09 62 6c 6b 53 69 7a | 65 20 3d 20 65 6c 65 6d |..blkSiz|e = elem|
|00000340| 65 6e 74 53 69 7a 65 3b | 0d 09 6e 75 6d 45 6c 65 |entSize;|..numEle|
|00000350| 6d 65 6e 74 73 20 3d 20 | 30 3b 0d 09 70 68 79 73 |ments = |0;..phys|
|00000360| 69 63 61 6c 42 6c 6b 73 | 20 3d 20 6b 4e 75 6d 50 |icalBlks| = kNumP|
|00000370| 68 79 73 69 63 61 6c 42 | 6c 6f 63 6b 41 6c 6c 6f |hysicalB|lockAllo|
|00000380| 63 3b 0d 09 0d 09 46 61 | 69 6c 4e 49 4c 28 20 61 |c;....Fa|ilNIL( a|
|00000390| 20 3d 20 4e 65 77 48 61 | 6e 64 6c 65 28 20 65 6c | = NewHa|ndle( el|
|000003a0| 65 6d 65 6e 74 53 69 7a | 65 20 2a 20 70 68 79 73 |ementSiz|e * phys|
|000003b0| 69 63 61 6c 42 6c 6b 73 | 20 29 29 3b 0d 7d 0d 0d |icalBlks| ));.}..|
|000003c0| 0d 2f 2a 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |./*-----|--------|
|000003d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003e0| 2d 2d 2d 2a 2a 2a 20 20 | 44 45 53 54 52 55 43 54 |---*** |DESTRUCT|
|000003f0| 4f 52 20 20 2a 2a 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |OR ***-|--------|
|00000400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2f 0d 0d 5a 41 72 |--------|-*/..ZAr|
|00000420| 72 61 79 3a 3a 7e 5a 41 | 72 72 61 79 28 29 0d 7b |ray::~ZA|rray().{|
|00000430| 0d 09 69 66 20 28 61 29 | 0d 09 09 44 69 73 70 6f |..if (a)|...Dispo|
|00000440| 73 65 48 61 6e 64 6c 65 | 28 20 61 20 29 3b 0d 7d |seHandle|( a );.}|
|00000450| 0d 0d 0d 2f 2a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.../*---|--------|
|00000460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000470| 2d 2d 2d 2d 2d 2a 2a 2a | 20 20 49 4e 53 45 52 54 |-----***| INSERT|
|00000480| 49 54 45 4d 20 20 2a 2a | 2a 2d 2d 2d 2d 2d 2d 2d |ITEM **|*-------|
|00000490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2f 0d 2f 2a |--------|---*/./*|
|000004b0| 09 0d 49 6e 73 65 72 74 | 20 61 6e 20 69 74 65 6d |..Insert| an item|
|000004c0| 20 61 74 20 70 6f 73 69 | 74 69 6f 6e 20 3c 69 6e | at posi|tion <in|
|000004d0| 64 65 78 3e 0d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |dex>.---|--------|
|000004e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000500| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2a 2f 0d |--------|-----*/.|
|00000530| 0d 76 6f 69 64 09 5a 41 | 72 72 61 79 3a 3a 49 6e |.void.ZA|rray::In|
|00000540| 73 65 72 74 49 74 65 6d | 28 76 6f 69 64 2a 20 69 |sertItem|(void* i|
|00000550| 74 65 6d 2c 20 63 6f 6e | 73 74 20 6c 6f 6e 67 20 |tem, con|st long |
|00000560| 69 6e 64 65 78 29 0d 7b | 0d 09 2f 2f 20 69 6e 73 |index).{|..// ins|
|00000570| 65 72 74 20 74 68 65 20 | 69 74 65 6d 20 69 6e 74 |ert the |item int|
|00000580| 6f 20 74 68 65 20 61 72 | 72 61 79 20 61 74 20 70 |o the ar|ray at p|
|00000590| 6f 73 69 74 69 6f 6e 20 | 3c 69 6e 64 65 78 3e 2e |osition |<index>.|
|000005a0| 20 54 68 65 20 76 61 6c | 75 65 20 6f 66 20 3c 69 | The val|ue of <i|
|000005b0| 6e 64 65 78 3e 20 69 73 | 20 6f 6e 65 2d 62 61 73 |ndex> is| one-bas|
|000005c0| 65 64 2e 0d 09 2f 2f 20 | 54 68 69 73 20 65 78 74 |ed...// |This ext|
|000005d0| 65 6e 64 73 20 74 68 65 | 20 61 72 72 61 79 20 62 |ends the| array b|
|000005e0| 79 20 6f 6e 65 20 69 74 | 65 6d 2e 0d 09 0d 09 49 |y one it|em.....I|
|000005f0| 6e 73 65 72 74 45 6c 65 | 6d 65 6e 74 28 20 69 6e |nsertEle|ment( in|
|00000600| 64 65 78 20 2d 20 31 20 | 29 3b 0d 09 53 65 74 41 |dex - 1 |);..SetA|
|00000610| 72 72 61 79 49 74 65 6d | 28 20 69 74 65 6d 2c 20 |rrayItem|( item, |
|00000620| 69 6e 64 65 78 20 29 3b | 0d 09 0d 09 53 65 6e 64 |index );|....Send|
|00000630| 4d 65 73 73 61 67 65 28 | 20 6d 73 67 41 72 72 61 |Message(| msgArra|
|00000640| 79 49 74 65 6d 49 6e 73 | 65 72 74 65 64 2c 20 28 |yItemIns|erted, (|
|00000650| 76 6f 69 64 2a 29 20 69 | 6e 64 65 78 20 29 3b 0d |void*) i|ndex );.|
|00000660| 7d 0d 0d 0d 2f 2a 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}.../*--|--------|
|00000670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000680| 2d 2d 2d 2d 2d 2d 2a 2a | 2a 20 20 41 50 50 45 4e |------**|* APPEN|
|00000690| 44 49 54 45 4d 20 20 2a | 2a 2a 2d 2d 2d 2d 2d 2d |DITEM *|**------|
|000006a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2a 2f 0d 2f |--------|----*/./|
|000006c0| 2a 09 0d 61 64 64 20 61 | 6e 20 69 74 65 6d 20 61 |*..add a|n item a|
|000006d0| 74 20 74 68 65 20 65 6e | 64 20 6f 66 20 74 68 65 |t the en|d of the|
|000006e0| 20 61 72 72 61 79 0d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | array.-|--------|
|000006f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|00000740| 2f 0d 0d 76 6f 69 64 09 | 5a 41 72 72 61 79 3a 3a |/..void.|ZArray::|
|00000750| 41 70 70 65 6e 64 49 74 | 65 6d 28 76 6f 69 64 2a |AppendIt|em(void*|
|00000760| 20 69 74 65 6d 29 0d 7b | 0d 09 2f 2f 20 61 64 64 | item).{|..// add|
|00000770| 73 20 74 68 65 20 69 74 | 65 6d 20 74 6f 20 74 68 |s the it|em to th|
|00000780| 65 20 65 6e 64 20 6f 66 | 20 74 68 65 20 61 72 72 |e end of| the arr|
|00000790| 61 79 2e 20 54 68 69 73 | 20 67 72 6f 77 73 20 69 |ay. This| grows i|
|000007a0| 74 20 62 79 20 6f 6e 65 | 20 69 74 65 6d 2e 0d 09 |t by one| item...|
|000007b0| 0d 09 49 6e 73 65 72 74 | 45 6c 65 6d 65 6e 74 28 |..Insert|Element(|
|000007c0| 20 6e 75 6d 45 6c 65 6d | 65 6e 74 73 20 29 3b 0d | numElem|ents );.|
|000007d0| 09 53 65 74 41 72 72 61 | 79 49 74 65 6d 28 20 69 |.SetArra|yItem( i|
|000007e0| 74 65 6d 2c 20 6e 75 6d | 45 6c 65 6d 65 6e 74 73 |tem, num|Elements|
|000007f0| 20 29 3b 0d 09 0d 09 53 | 65 6e 64 4d 65 73 73 61 | );....S|endMessa|
|00000800| 67 65 28 20 6d 73 67 41 | 72 72 61 79 49 74 65 6d |ge( msgA|rrayItem|
|00000810| 41 64 64 65 64 2c 20 28 | 76 6f 69 64 2a 29 20 6e |Added, (|void*) n|
|00000820| 75 6d 45 6c 65 6d 65 6e | 74 73 20 29 3b 0d 7d 0d |umElemen|ts );.}.|
|00000830| 0d 0d 2f 2a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*----|--------|
|00000840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000850| 2d 2d 2d 2a 2a 2a 20 20 | 53 45 54 41 52 52 41 59 |---*** |SETARRAY|
|00000860| 49 54 45 4d 20 20 2a 2a | 2a 2d 2d 2d 2d 2d 2d 2d |ITEM **|*-------|
|00000870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2f 0d 2f 2a 09 |--------|--*/./*.|
|00000890| 0d 72 65 70 6c 61 63 65 | 20 61 6e 20 69 74 65 6d |.replace| an item|
|000008a0| 20 61 74 20 70 6f 73 69 | 74 69 6f 6e 20 3c 69 6e | at posi|tion <in|
|000008b0| 64 65 78 3e 0d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |dex>.---|--------|
|000008c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2a 2f 0d |--------|-----*/.|
|00000910| 0d 76 6f 69 64 09 5a 41 | 72 72 61 79 3a 3a 53 65 |.void.ZA|rray::Se|
|00000920| 74 41 72 72 61 79 49 74 | 65 6d 28 76 6f 69 64 2a |tArrayIt|em(void*|
|00000930| 20 69 74 65 6d 2c 20 63 | 6f 6e 73 74 20 6c 6f 6e | item, c|onst lon|
|00000940| 67 20 69 6e 64 65 78 29 | 0d 7b 0d 09 2f 2f 20 73 |g index)|.{..// s|
|00000950| 65 74 73 20 74 68 65 20 | 69 74 65 6d 20 69 6e 74 |ets the |item int|
|00000960| 6f 20 74 68 65 20 61 72 | 72 61 79 20 61 74 20 3c |o the ar|ray at <|
|00000970| 69 6e 64 65 78 3e 2c 20 | 77 68 69 63 68 20 69 73 |index>, |which is|
|00000980| 20 6f 6e 65 2d 62 61 73 | 65 64 2e 0d 09 0d 09 41 | one-bas|ed.....A|
|00000990| 53 53 45 52 54 28 20 22 | 49 6e 64 65 78 20 6f 75 |SSERT( "|Index ou|
|000009a0| 74 20 6f 66 20 72 61 6e | 67 65 3b 20 5a 41 72 72 |t of ran|ge; ZArr|
|000009b0| 61 79 3a 3a 53 65 74 41 | 72 72 61 79 49 74 65 6d |ay::SetA|rrayItem|
|000009c0| 22 2c 20 20 69 6e 64 65 | 78 20 3e 3d 20 30 20 26 |", inde|x >= 0 &|
|000009d0| 26 20 69 6e 64 65 78 20 | 3c 3d 20 6e 75 6d 45 6c |& index |<= numEl|
|000009e0| 65 6d 65 6e 74 73 2c 20 | 69 6e 64 65 78 20 29 09 |ements, |index ).|
|000009f0| 09 0d 09 0d 09 42 6c 6f | 63 6b 4d 6f 76 65 44 61 |.....Blo|ckMoveDa|
|00000a00| 74 61 28 69 74 65 6d 2c | 20 28 2a 61 20 2b 20 28 |ta(item,| (*a + (|
|00000a10| 62 6c 6b 53 69 7a 65 20 | 2a 20 28 69 6e 64 65 78 |blkSize |* (index|
|00000a20| 20 2d 20 31 29 29 29 2c | 20 62 6c 6b 53 69 7a 65 | - 1))),| blkSize|
|00000a30| 29 3b 0d 09 0d 09 53 65 | 6e 64 4d 65 73 73 61 67 |);....Se|ndMessag|
|00000a40| 65 28 20 6d 73 67 41 72 | 72 61 79 49 74 65 6d 43 |e( msgAr|rayItemC|
|00000a50| 68 61 6e 67 65 64 2c 20 | 28 76 6f 69 64 2a 29 20 |hanged, |(void*) |
|00000a60| 69 6e 64 65 78 20 29 3b | 0d 7d 0d 0d 0d 2f 2a 2d |index );|.}.../*-|
|00000a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2a |--------|------**|
|00000a90| 2a 20 20 47 45 54 41 52 | 52 41 59 49 54 45 4d 20 |* GETAR|RAYITEM |
|00000aa0| 20 2a 2a 2a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | ***----|--------|
|00000ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ac0| 2d 2d 2d 2d 2d 2a 2f 0d | 2f 2a 09 0d 72 65 74 75 |-----*/.|/*..retu|
|00000ad0| 72 6e 20 74 68 65 20 69 | 74 65 6d 20 61 74 20 70 |rn the i|tem at p|
|00000ae0| 6f 73 69 74 69 6f 6e 20 | 3c 69 6e 64 65 78 3e 20 |osition |<index> |
|00000af0| 28 72 65 74 75 72 6e 73 | 20 61 20 43 4f 50 59 29 |(returns| a COPY)|
|00000b00| 0d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.-------|--------|
|00000b10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2f 0d 0d 76 6f 69 |--------|-*/..voi|
|00000b60| 64 09 5a 41 72 72 61 79 | 3a 3a 47 65 74 41 72 72 |d.ZArray|::GetArr|
|00000b70| 61 79 49 74 65 6d 28 76 | 6f 69 64 2a 20 69 74 65 |ayItem(v|oid* ite|
|00000b80| 6d 2c 20 63 6f 6e 73 74 | 20 6c 6f 6e 67 20 69 6e |m, const| long in|
|00000b90| 64 65 78 29 0d 7b 0d 09 | 2f 2f 20 67 65 74 73 20 |dex).{..|// gets |
|00000ba0| 74 68 65 20 69 74 65 6d | 20 61 74 20 70 6f 69 74 |the item| at poit|
|00000bb0| 69 6f 6e 20 3c 69 6e 64 | 65 78 3e 20 69 6e 20 74 |ion <ind|ex> in t|
|00000bc0| 68 65 20 61 72 72 61 79 | 2e 20 49 6e 64 65 78 20 |he array|. Index |
|00000bd0| 69 73 20 6f 6e 65 2d 62 | 61 73 65 64 2e 0d 09 0d |is one-b|ased....|
|00000be0| 09 41 53 53 45 52 54 28 | 20 22 49 6e 64 65 78 20 |.ASSERT(| "Index |
|00000bf0| 6f 75 74 20 6f 66 20 72 | 61 6e 67 65 3b 20 5a 41 |out of r|ange; ZA|
|00000c00| 72 72 61 79 3a 3a 47 65 | 74 41 72 72 61 79 49 74 |rray::Ge|tArrayIt|
|00000c10| 65 6d 22 2c 20 20 69 6e | 64 65 78 20 3e 3d 20 30 |em", in|dex >= 0|
|00000c20| 20 26 26 20 69 6e 64 65 | 78 20 3c 3d 20 6e 75 6d | && inde|x <= num|
|00000c30| 45 6c 65 6d 65 6e 74 73 | 2c 20 69 6e 64 65 78 20 |Elements|, index |
|00000c40| 29 09 09 0d 09 0d 09 42 | 6c 6f 63 6b 4d 6f 76 65 |)......B|lockMove|
|00000c50| 44 61 74 61 28 28 2a 61 | 20 2b 20 28 62 6c 6b 53 |Data((*a| + (blkS|
|00000c60| 69 7a 65 20 2a 20 28 69 | 6e 64 65 78 20 2d 20 31 |ize * (i|ndex - 1|
|00000c70| 29 29 29 2c 20 69 74 65 | 6d 2c 20 62 6c 6b 53 69 |))), ite|m, blkSi|
|00000c80| 7a 65 29 3b 0d 7d 0d 0d | 0d 2f 2a 2d 2d 2d 2d 2d |ze);.}..|./*-----|
|00000c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ca0| 2d 2d 2d 2d 2d 2d 2a 2a | 2a 20 20 43 4f 4e 43 41 |------**|* CONCA|
|00000cb0| 54 45 4e 41 54 45 41 52 | 52 41 59 20 20 2a 2a 2a |TENATEAR|RAY ***|
|00000cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ce0| 2d 2a 2f 0d 2f 2a 09 0d | 61 70 70 65 6e 64 73 20 |-*/./*..|appends |
|00000cf0| 74 68 65 20 61 72 72 61 | 79 20 70 61 73 73 65 64 |the arra|y passed|
|00000d00| 20 74 6f 20 74 68 65 20 | 65 6e 64 20 6f 66 20 74 | to the |end of t|
|00000d10| 68 69 73 20 6f 6e 65 2e | 20 54 68 69 73 20 64 6f |his one.| This do|
|00000d20| 65 73 20 6e 6f 74 20 61 | 74 74 65 6d 70 74 20 74 |es not a|ttempt t|
|00000d30| 6f 20 6d 61 69 6e 74 61 | 69 6e 20 73 6f 72 74 0d |o mainta|in sort.|
|00000d40| 6f 72 64 65 72 2c 20 65 | 74 63 2d 20 69 74 20 6a |order, e|tc- it j|
|00000d50| 75 73 74 20 6a 6f 69 6e | 73 20 74 68 65 20 61 72 |ust join|s the ar|
|00000d60| 72 61 79 73 2e 20 54 68 | 65 20 73 6f 75 72 63 65 |rays. Th|e source|
|00000d70| 20 61 72 72 61 79 20 69 | 73 20 75 6e 61 66 66 65 | array i|s unaffe|
|00000d80| 63 74 65 64 20 61 6e 64 | 20 69 74 73 20 64 61 74 |cted and| its dat|
|00000d90| 61 20 69 73 0d 63 6f 70 | 69 65 64 2e 20 4e 4f 54 |a is.cop|ied. NOT|
|00000da0| 45 3a 20 54 68 65 20 74 | 77 6f 20 61 72 72 61 79 |E: The t|wo array|
|00000db0| 73 20 2a 4d 55 53 54 2a | 20 68 61 76 65 20 74 68 |s *MUST*| have th|
|00000dc0| 65 20 73 61 6d 65 20 73 | 69 7a 65 64 20 65 6c 65 |e same s|ized ele|
|00000dd0| 6d 65 6e 74 73 2d 20 79 | 6f 75 20 63 61 6e 6e 6f |ments- y|ou canno|
|00000de0| 74 20 63 6f 6e 63 61 74 | 65 6e 61 74 65 0d 61 72 |t concat|enate.ar|
|00000df0| 72 61 79 73 20 74 68 61 | 74 20 63 6f 6e 74 61 69 |rays tha|t contai|
|00000e00| 6e 20 69 6e 63 6f 6d 70 | 61 74 69 62 6c 65 20 64 |n incomp|atible d|
|00000e10| 61 74 61 20 74 79 70 65 | 73 2e 0d 2d 2d 2d 2d 2d |ata type|s..-----|
|00000e20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e70| 2d 2d 2d 2a 2f 0d 0d 76 | 6f 69 64 09 5a 41 72 72 |---*/..v|oid.ZArr|
|00000e80| 61 79 3a 3a 43 6f 6e 63 | 61 74 65 6e 61 74 65 41 |ay::Conc|atenateA|
|00000e90| 72 72 61 79 28 20 5a 41 | 72 72 61 79 2a 20 61 6e |rray( ZA|rray* an|
|00000ea0| 41 72 72 61 79 20 29 0d | 7b 0d 09 6c 6f 6e 67 09 |Array ).|{..long.|
|00000eb0| 61 70 70 65 6e 64 65 64 | 49 74 65 6d 73 3b 0d 09 |appended|Items;..|
|00000ec0| 6c 6f 6e 67 09 70 68 79 | 73 45 78 74 65 6e 74 3b |long.phy|sExtent;|
|00000ed0| 0d 09 0d 09 46 61 69 6c | 4e 49 4c 50 61 72 61 6d |....Fail|NILParam|
|00000ee0| 28 20 61 6e 41 72 72 61 | 79 20 29 3b 0d 09 0d 09 |( anArra|y );....|
|00000ef0| 2f 2f 20 63 68 65 63 6b | 20 65 6c 65 6d 65 6e 74 |// check| element|
|00000f00| 20 73 69 7a 65 73 20 61 | 72 65 20 63 6f 6d 70 61 | sizes a|re compa|
|00000f10| 74 69 62 6c 65 3a 0d 09 | 0d 09 41 53 53 45 52 54 |tible:..|..ASSERT|
|00000f20| 28 20 22 42 6c 6f 63 6b | 20 73 69 7a 65 73 20 64 |( "Block| sizes d|
|00000f30| 6f 6e 27 74 20 6d 61 74 | 63 68 3b 20 5a 41 72 72 |on't mat|ch; ZArr|
|00000f40| 61 79 3a 3a 43 6f 6e 63 | 61 74 65 6e 74 61 74 65 |ay::Conc|atentate|
|00000f50| 41 72 72 61 79 22 2c 20 | 61 6e 41 72 72 61 79 2d |Array", |anArray-|
|00000f60| 3e 62 6c 6b 53 69 7a 65 | 20 3d 3d 20 62 6c 6b 53 |>blkSize| == blkS|
|00000f70| 69 7a 65 2c 20 62 6c 6b | 53 69 7a 65 20 29 0d 09 |ize, blk|Size )..|
|00000f80| 0d 09 2f 2f 20 69 73 20 | 74 68 65 72 65 20 61 6e |..// is |there an|
|00000f90| 79 74 68 69 6e 67 20 74 | 6f 20 63 6f 70 79 3f 0d |ything t|o copy?.|
|00000fa0| 09 0d 09 69 66 20 28 28 | 20 61 70 70 65 6e 64 65 |...if ((| appende|
|00000fb0| 64 49 74 65 6d 73 20 3d | 20 61 6e 41 72 72 61 79 |dItems =| anArray|
|00000fc0| 2d 3e 43 6f 75 6e 74 49 | 74 65 6d 73 28 29 29 20 |->CountI|tems()) |
|00000fd0| 3e 20 30 20 29 0d 09 7b | 0d 09 09 2f 2f 20 65 78 |> 0 )..{|...// ex|
|00000fe0| 74 65 6e 64 20 6f 75 72 | 20 68 61 6e 64 6c 65 20 |tend our| handle |
|00000ff0| 74 6f 20 61 63 63 6f 6d | 6d 6f 64 61 74 65 20 74 |to accom|modate t|
|00001000| 68 65 20 61 64 64 69 74 | 69 6f 6e 61 6c 20 73 74 |he addit|ional st|
|00001010| 75 66 66 2e 20 4e 6f 74 | 65 20 74 68 61 74 20 73 |uff. Not|e that s|
|00001020| 69 6e 63 65 20 77 65 20 | 61 6c 6c 6f 63 61 74 65 |ince we |allocate|
|00001030| 0d 09 09 2f 2f 20 69 6e | 20 6d 75 6c 74 69 70 6c |...// in| multipl|
|00001040| 65 73 20 6f 66 20 61 20 | 70 68 79 73 69 63 61 6c |es of a |physical|
|00001050| 20 62 6c 6f 63 6b 20 63 | 6f 75 6e 74 2c 20 77 65 | block c|ount, we|
|00001060| 20 6e 65 65 64 20 74 6f | 20 74 61 6b 65 20 74 68 | need to| take th|
|00001070| 69 73 20 69 6e 74 6f 20 | 61 63 63 6f 75 6e 74 20 |is into |account |
|00001080| 77 68 65 6e 0d 09 09 2f | 2f 20 6a 6f 69 6e 69 6e |when.../|/ joinin|
|00001090| 67 20 74 68 65 20 61 72 | 72 61 79 73 0d 09 09 0d |g the ar|rays....|
|000010a0| 09 09 70 68 79 73 45 78 | 74 65 6e 74 20 3d 20 61 |..physEx|tent = a|
|000010b0| 70 70 65 6e 64 65 64 49 | 74 65 6d 73 20 2b 20 6e |ppendedI|tems + n|
|000010c0| 75 6d 45 6c 65 6d 65 6e | 74 73 3b 0d 09 09 70 68 |umElemen|ts;...ph|
|000010d0| 79 73 45 78 74 65 6e 74 | 20 2b 3d 20 6b 4e 75 6d |ysExtent| += kNum|
|000010e0| 50 68 79 73 69 63 61 6c | 42 6c 6f 63 6b 41 6c 6c |Physical|BlockAll|
|000010f0| 6f 63 20 2d 20 28 20 70 | 68 79 73 45 78 74 65 6e |oc - ( p|hysExten|
|00001100| 74 20 25 20 6b 4e 75 6d | 50 68 79 73 69 63 61 6c |t % kNum|Physical|
|00001110| 42 6c 6f 63 6b 41 6c 6c | 6f 63 20 29 3b 0d 09 09 |BlockAll|oc );...|
|00001120| 0d 09 09 69 66 20 28 20 | 70 68 79 73 45 78 74 65 |...if ( |physExte|
|00001130| 6e 74 20 3e 20 70 68 79 | 73 69 63 61 6c 42 6c 6b |nt > phy|sicalBlk|
|00001140| 73 20 29 0d 09 09 7b 0d | 09 09 09 70 68 79 73 69 |s )...{.|...physi|
|00001150| 63 61 6c 42 6c 6b 73 20 | 3d 20 70 68 79 73 45 78 |calBlks |= physEx|
|00001160| 74 65 6e 74 3b 0d 09 09 | 09 0d 09 09 09 53 65 74 |tent;...|.....Set|
|00001170| 48 61 6e 64 6c 65 53 69 | 7a 65 28 20 61 2c 20 70 |HandleSi|ze( a, p|
|00001180| 68 79 73 69 63 61 6c 42 | 6c 6b 73 20 2a 20 62 6c |hysicalB|lks * bl|
|00001190| 6b 53 69 7a 65 20 29 3b | 0d 09 09 09 46 61 69 6c |kSize );|....Fail|
|000011a0| 4d 65 6d 45 72 72 6f 72 | 28 29 3b 0d 09 09 7d 0d |MemError|();...}.|
|000011b0| 09 09 0d 09 09 50 74 72 | 20 70 20 3d 20 2a 61 6e |.....Ptr| p = *an|
|000011c0| 41 72 72 61 79 2d 3e 61 | 3b 0d 09 09 50 74 72 09 |Array->a|;...Ptr.|
|000011d0| 71 20 3d 20 2a 61 20 2b | 20 28 20 6e 75 6d 45 6c |q = *a +| ( numEl|
|000011e0| 65 6d 65 6e 74 73 20 2a | 20 62 6c 6b 53 69 7a 65 |ements *| blkSize|
|000011f0| 20 29 3b 0d 09 09 0d 09 | 09 42 6c 6f 63 6b 4d 6f | );.....|.BlockMo|
|00001200| 76 65 44 61 74 61 28 20 | 70 2c 20 71 2c 20 61 70 |veData( |p, q, ap|
|00001210| 70 65 6e 64 65 64 49 74 | 65 6d 73 20 2a 20 62 6c |pendedIt|ems * bl|
|00001220| 6b 53 69 7a 65 20 29 3b | 0d 09 09 0d 09 09 6e 75 |kSize );|......nu|
|00001230| 6d 45 6c 65 6d 65 6e 74 | 73 20 2b 3d 20 61 70 70 |mElement|s += app|
|00001240| 65 6e 64 65 64 49 74 65 | 6d 73 3b 0d 09 7d 0d 7d |endedIte|ms;..}.}|
|00001250| 0d 0d 0d 2f 2a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.../*---|--------|
|00001260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001270| 2d 2d 2d 2d 2d 2d 2a 2a | 2a 20 20 46 49 4e 44 49 |------**|* FINDI|
|00001280| 4e 44 45 58 20 20 2a 2a | 2a 2d 2d 2d 2d 2d 2d 2d |NDEX **|*-------|
|00001290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000012a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2f 0d 2f 2a |--------|---*/./*|
|000012b0| 0d 72 65 74 75 72 6e 73 | 20 74 68 65 20 69 6e 64 |.returns| the ind|
|000012c0| 65 78 20 6f 66 20 61 6e | 20 69 74 65 6d 20 69 6e |ex of an| item in|
|000012d0| 20 74 68 65 20 61 72 72 | 61 79 2c 20 6f 72 20 30 | the arr|ay, or 0|
|000012e0| 20 69 66 20 6e 6f 74 20 | 66 6f 75 6e 64 2e 09 0d | if not |found...|
|000012f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001340| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2f 0d 0d 6c 6f 6e 67 |--------|*/..long|
|00001350| 09 5a 41 72 72 61 79 3a | 3a 46 69 6e 64 49 6e 64 |.ZArray:|:FindInd|
|00001360| 65 78 28 76 6f 69 64 2a | 20 69 74 65 6d 29 0d 7b |ex(void*| item).{|
|00001370| 0d 09 2f 2f 20 70 65 72 | 66 6f 72 6d 73 20 61 20 |..// per|forms a |
|00001380| 6c 69 6e 65 61 72 20 73 | 65 61 72 63 68 20 61 6e |linear s|earch an|
|00001390| 64 20 72 65 74 75 72 6e | 73 20 74 68 65 20 69 6e |d return|s the in|
|000013a0| 64 65 78 20 6f 66 20 74 | 68 65 20 69 74 65 6d 2c |dex of t|he item,|
|000013b0| 20 69 66 20 66 6f 75 6e | 64 2e 0d 09 0d 09 69 66 | if foun|d.....if|
|000013c0| 20 28 20 6e 75 6d 45 6c | 65 6d 65 6e 74 73 20 3c | ( numEl|ements <|
|000013d0| 20 31 20 29 0d 09 09 72 | 65 74 75 72 6e 20 30 3b | 1 )...r|eturn 0;|
|000013e0| 0d 09 09 0d 09 6c 6f 6e | 67 09 09 69 20 3d 20 30 |.....lon|g..i = 0|
|000013f0| 3b 0d 09 42 6f 6f 6c 65 | 61 6e 09 09 66 6f 75 6e |;..Boole|an..foun|
|00001400| 64 20 3d 20 46 41 4c 53 | 45 3b 0d 09 0d 09 64 6f |d = FALS|E;....do|
|00001410| 0d 09 7b 0d 09 09 69 66 | 20 28 45 71 75 61 6c 4d |..{...if| (EqualM|
|00001420| 65 6d 28 2a 61 20 2b 20 | 28 20 62 6c 6b 53 69 7a |em(*a + |( blkSiz|
|00001430| 65 20 2a 20 69 20 29 2c | 20 69 74 65 6d 2c 20 62 |e * i ),| item, b|
|00001440| 6c 6b 53 69 7a 65 29 29 | 0d 09 09 7b 0d 09 09 09 |lkSize))|...{....|
|00001450| 66 6f 75 6e 64 20 3d 20 | 54 52 55 45 3b 0d 09 09 |found = |TRUE;...|
|00001460| 09 62 72 65 61 6b 3b 0d | 09 09 7d 0d 09 7d 0d 09 |.break;.|..}..}..|
|00001470| 77 68 69 6c 65 28 20 69 | 2b 2b 20 3c 20 6e 75 6d |while( i|++ < num|
|00001480| 45 6c 65 6d 65 6e 74 73 | 20 29 3b 0d 0d 09 72 65 |Elements| );...re|
|00001490| 74 75 72 6e 20 28 20 66 | 6f 75 6e 64 3f 20 69 20 |turn ( f|ound? i |
|000014a0| 2b 20 31 20 3a 20 30 20 | 29 3b 0d 7d 0d 0d 2f 2a |+ 1 : 0 |);.}../*|
|000014b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014d0| 2a 2a 2a 20 20 44 45 4c | 45 54 45 49 54 45 4d 20 |*** DEL|ETEITEM |
|000014e0| 20 2a 2a 2a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | ***----|--------|
|000014f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001500| 2d 2d 2d 2d 2d 2d 2a 2f | 0d 2f 2a 09 0d 44 65 6c |------*/|./*..Del|
|00001510| 65 74 65 20 61 6e 20 69 | 74 65 6d 20 61 74 20 70 |ete an i|tem at p|
|00001520| 6f 73 69 74 69 6f 6e 20 | 3c 69 6e 64 65 78 3e 0d |osition |<index>.|
|00001530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001580| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2f 0d 0d 76 6f 69 64 |--------|*/..void|
|00001590| 09 5a 41 72 72 61 79 3a | 3a 44 65 6c 65 74 65 49 |.ZArray:|:DeleteI|
|000015a0| 74 65 6d 28 20 63 6f 6e | 73 74 20 6c 6f 6e 67 20 |tem( con|st long |
|000015b0| 69 6e 64 65 78 20 29 0d | 7b 0d 09 2f 2f 20 64 65 |index ).|{..// de|
|000015c0| 6c 65 74 65 73 20 74 68 | 65 20 69 74 65 6d 20 61 |letes th|e item a|
|000015d0| 74 20 70 6f 73 69 74 69 | 6f 6e 20 3c 69 6e 64 65 |t positi|on <inde|
|000015e0| 78 3e 20 28 31 2d 62 61 | 73 65 64 29 2e 20 49 74 |x> (1-ba|sed). It|
|000015f0| 65 6d 73 20 61 62 6f 76 | 65 20 61 72 65 20 6d 6f |ems abov|e are mo|
|00001600| 76 65 64 20 64 6f 77 6e | 20 6f 6e 65 2e 0d 09 0d |ved down| one....|
|00001610| 09 44 65 6c 65 74 65 45 | 6c 65 6d 65 6e 74 28 20 |.DeleteE|lement( |
|00001620| 69 6e 64 65 78 20 2d 20 | 31 20 29 3b 0d 09 0d 09 |index - |1 );....|
|00001630| 53 65 6e 64 4d 65 73 73 | 61 67 65 28 20 6d 73 67 |SendMess|age( msg|
|00001640| 41 72 72 61 79 49 74 65 | 6d 44 65 6c 65 74 65 64 |ArrayIte|mDeleted|
|00001650| 2c 20 28 76 6f 69 64 2a | 29 20 69 6e 64 65 78 20 |, (void*|) index |
|00001660| 29 3b 0d 7d 0d 0d 0d 2f | 2a 2d 2d 2d 2d 2d 2d 2d |);.}.../|*-------|
|00001670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2a 2a 20 20 44 |--------|--*** D|
|00001690| 45 4c 45 54 45 41 4c 4c | 20 20 2a 2a 2a 2d 2d 2d |ELETEALL| ***---|
|000016a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|000016c0| 2f 0d 2f 2a 09 0d 64 65 | 6c 65 74 65 73 20 61 6c |/./*..de|letes al|
|000016d0| 6c 20 69 74 65 6d 73 20 | 69 6e 20 74 68 65 20 61 |l items |in the a|
|000016e0| 72 72 61 79 0d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |rray.---|--------|
|000016f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2a 2f 0d |--------|-----*/.|
|00001740| 0d 76 6f 69 64 09 5a 41 | 72 72 61 79 3a 3a 44 65 |.void.ZA|rray::De|
|00001750| 6c 65 74 65 41 6c 6c 28 | 29 0d 7b 0d 09 6e 75 6d |leteAll(|).{..num|
|00001760| 45 6c 65 6d 65 6e 74 73 | 20 3d 20 30 3b 0d 09 70 |Elements| = 0;..p|
|00001770| 68 79 73 69 63 61 6c 42 | 6c 6b 73 20 3d 20 6b 4e |hysicalB|lks = kN|
|00001780| 75 6d 50 68 79 73 69 63 | 61 6c 42 6c 6f 63 6b 41 |umPhysic|alBlockA|
|00001790| 6c 6c 6f 63 3b 0d 09 0d | 09 53 65 74 48 61 6e 64 |lloc;...|.SetHand|
|000017a0| 6c 65 53 69 7a 65 28 20 | 61 2c 20 62 6c 6b 53 69 |leSize( |a, blkSi|
|000017b0| 7a 65 20 2a 20 70 68 79 | 73 69 63 61 6c 42 6c 6b |ze * phy|sicalBlk|
|000017c0| 73 20 29 3b 0d 09 0d 09 | 53 65 6e 64 4d 65 73 73 |s );....|SendMess|
|000017d0| 61 67 65 28 20 6d 73 67 | 41 72 72 61 79 41 6c 6c |age( msg|ArrayAll|
|000017e0| 44 65 6c 65 74 65 64 2c | 20 4e 55 4c 4c 20 29 3b |Deleted,| NULL );|
|000017f0| 0d 7d 0d 0d 0d 2f 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.}.../*-|--------|
|00001800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2a 2a 20 20 4d 4f |--------|-*** MO|
|00001820| 56 45 49 54 45 4d 20 20 | 2a 2a 2a 2d 2d 2d 2d 2d |VEITEM |***-----|
|00001830| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2a 2f 0d |--------|-----*/.|
|00001850| 2f 2a 09 0d 6d 6f 76 65 | 20 61 6e 20 69 74 65 6d |/*..move| an item|
|00001860| 20 66 72 6f 6d 20 6f 6e | 65 20 70 6c 61 63 65 20 | from on|e place |
|00001870| 69 6e 20 74 68 65 20 61 | 72 72 61 79 20 74 6f 20 |in the a|rray to |
|00001880| 61 6e 6f 74 68 65 72 0d | 2d 2d 2d 2d 2d 2d 2d 2d |another.|--------|
|00001890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000018a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000018b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000018c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000018d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000018e0| 2a 2f 0d 0d 76 6f 69 64 | 09 5a 41 72 72 61 79 3a |*/..void|.ZArray:|
|000018f0| 3a 4d 6f 76 65 49 74 65 | 6d 28 20 63 6f 6e 73 74 |:MoveIte|m( const|
|00001900| 20 6c 6f 6e 67 20 63 75 | 72 49 6e 64 65 78 2c 20 | long cu|rIndex, |
|00001910| 63 6f 6e 73 74 20 6c 6f | 6e 67 20 6e 65 77 49 6e |const lo|ng newIn|
|00001920| 64 65 78 20 29 0d 7b 0d | 09 2f 2f 20 6d 6f 76 65 |dex ).{.|.// move|
|00001930| 73 20 74 68 65 20 69 74 | 65 6d 20 61 74 20 3c 63 |s the it|em at <c|
|00001940| 75 72 49 6e 64 65 78 3e | 20 74 6f 20 70 6f 73 69 |urIndex>| to posi|
|00001950| 74 69 6f 6e 20 3c 6e 65 | 77 49 6e 64 65 78 3e 20 |tion <ne|wIndex> |
|00001960| 28 61 6c 6c 20 31 2d 62 | 61 73 65 64 29 2c 20 6d |(all 1-b|ased), m|
|00001970| 6f 76 69 6e 67 20 6f 74 | 68 65 72 20 69 74 65 6d |oving ot|her item|
|00001980| 73 0d 09 2f 2f 20 61 73 | 20 6e 65 65 64 65 64 20 |s..// as| needed |
|00001990| 74 6f 20 6b 65 65 70 20 | 74 68 69 6e 67 73 20 69 |to keep |things i|
|000019a0| 6e 20 6f 72 64 65 72 2e | 0d 09 0d 09 41 53 53 45 |n order.|....ASSE|
|000019b0| 52 54 28 20 22 42 61 64 | 20 69 6e 64 65 78 3b 20 |RT( "Bad| index; |
|000019c0| 5a 41 72 72 61 79 3a 3a | 4d 6f 76 65 49 74 65 6d |ZArray::|MoveItem|
|000019d0| 22 2c 20 63 75 72 49 6e | 64 65 78 20 3e 20 30 20 |", curIn|dex > 0 |
|000019e0| 26 26 20 63 75 72 49 6e | 64 65 78 20 3c 3d 20 6e |&& curIn|dex <= n|
|000019f0| 75 6d 45 6c 65 6d 65 6e | 74 73 20 26 26 20 6e 65 |umElemen|ts && ne|
|00001a00| 77 49 6e 64 65 78 20 3e | 20 30 20 26 26 20 6e 65 |wIndex >| 0 && ne|
|00001a10| 77 49 6e 64 65 78 20 3c | 3d 20 6e 75 6d 45 6c 65 |wIndex <|= numEle|
|00001a20| 6d 65 6e 74 73 2c 20 30 | 20 29 0d 09 0d 09 76 6f |ments, 0| )....vo|
|00001a30| 69 64 2a 20 74 65 6d 70 | 20 3d 20 28 76 6f 69 64 |id* temp| = (void|
|00001a40| 2a 29 20 4e 65 77 50 74 | 72 28 20 62 6c 6b 53 69 |*) NewPt|r( blkSi|
|00001a50| 7a 65 20 29 3b 0d 09 0d | 09 46 61 69 6c 4e 49 4c |ze );...|.FailNIL|
|00001a60| 28 74 65 6d 70 29 3b 0d | 09 0d 09 2f 2f 20 63 6f |(temp);.|...// co|
|00001a70| 70 79 20 74 68 65 20 69 | 74 65 6d 20 77 65 20 77 |py the i|tem we w|
|00001a80| 61 6e 74 20 74 6f 20 6d | 6f 76 65 20 74 6f 20 61 |ant to m|ove to a|
|00001a90| 20 74 65 6d 70 6f 72 61 | 72 79 20 73 70 61 63 65 | tempora|ry space|
|00001aa0| 0d 09 0d 09 47 65 74 41 | 72 72 61 79 49 74 65 6d |....GetA|rrayItem|
|00001ab0| 28 20 74 65 6d 70 2c 20 | 63 75 72 49 6e 64 65 78 |( temp, |curIndex|
|00001ac0| 29 3b 0d 09 0d 09 2f 2f | 20 64 65 6c 65 74 65 20 |);....//| delete |
|00001ad0| 69 74 73 20 63 75 72 72 | 65 6e 74 20 70 6f 73 69 |its curr|ent posi|
|00001ae0| 74 69 6f 6e 2c 20 77 68 | 69 63 68 20 77 69 6c 6c |tion, wh|ich will|
|00001af0| 20 6d 6f 76 65 20 73 74 | 75 66 66 20 61 73 20 6e | move st|uff as n|
|00001b00| 65 65 64 65 64 0d 09 0d | 09 44 65 6c 65 74 65 45 |eeded...|.DeleteE|
|00001b10| 6c 65 6d 65 6e 74 28 20 | 63 75 72 49 6e 64 65 78 |lement( |curIndex|
|00001b20| 20 2d 20 31 20 29 3b 0d | 09 0d 09 2f 2f 20 69 6e | - 1 );.|...// in|
|00001b30| 73 65 72 74 20 69 74 20 | 69 6e 74 6f 20 74 68 65 |sert it |into the|
|00001b40| 20 6e 65 77 20 70 6f 73 | 69 74 69 6f 6e 2c 20 77 | new pos|ition, w|
|00001b50| 68 69 63 68 20 6d 6f 76 | 65 73 20 6f 74 68 65 72 |hich mov|es other|
|00001b60| 20 73 74 75 66 66 20 61 | 73 20 6e 65 65 64 65 64 | stuff a|s needed|
|00001b70| 0d 09 0d 09 49 6e 73 65 | 72 74 49 74 65 6d 28 20 |....Inse|rtItem( |
|00001b80| 74 65 6d 70 2c 20 6e 65 | 77 49 6e 64 65 78 20 29 |temp, ne|wIndex )|
|00001b90| 3b 0d 09 0d 09 2f 2f 20 | 67 65 74 20 72 69 64 20 |;....// |get rid |
|00001ba0| 6f 66 20 74 68 65 20 74 | 65 6d 70 6f 72 61 72 79 |of the t|emporary|
|00001bb0| 20 73 70 61 63 65 0d 09 | 0d 09 44 69 73 70 6f 73 | space..|..Dispos|
|00001bc0| 65 50 74 72 28 28 50 74 | 72 29 20 74 65 6d 70 29 |ePtr((Pt|r) temp)|
|00001bd0| 3b 0d 09 53 65 6e 64 4d | 65 73 73 61 67 65 28 20 |;..SendM|essage( |
|00001be0| 6d 73 67 41 72 72 61 79 | 49 74 65 6d 4d 6f 76 65 |msgArray|ItemMove|
|00001bf0| 64 2c 20 28 76 6f 69 64 | 2a 29 20 6e 65 77 49 6e |d, (void|*) newIn|
|00001c00| 64 65 78 20 29 3b 0d 7d | 0d 0d 0d 2f 2a 2d 2d 2d |dex );.}|.../*---|
|00001c10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|00001c30| 2a 2a 20 20 53 57 41 50 | 49 54 45 4d 20 20 2a 2a |** SWAP|ITEM **|
|00001c40| 2a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*-------|--------|
|00001c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c60| 2d 2d 2d 2a 2f 0d 2f 2a | 09 0d 53 77 61 70 20 74 |---*/./*|..Swap t|
|00001c70| 77 6f 20 69 74 65 6d 73 | 20 69 6e 20 74 68 65 20 |wo items| in the |
|00001c80| 61 72 72 61 79 0d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |array.--|--------|
|00001c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00001ce0| 0d 0d 76 6f 69 64 09 5a | 41 72 72 61 79 3a 3a 53 |..void.Z|Array::S|
|00001cf0| 77 61 70 28 20 63 6f 6e | 73 74 20 6c 6f 6e 67 20 |wap( con|st long |
|00001d00| 69 74 65 6d 61 2c 20 63 | 6f 6e 73 74 20 6c 6f 6e |itema, c|onst lon|
|00001d10| 67 20 69 74 65 6d 62 20 | 29 0d 7b 0d 09 2f 2f 20 |g itemb |).{..// |
|00001d20| 73 77 61 70 73 20 69 74 | 65 6d 73 20 61 20 61 6e |swaps it|ems a an|
|00001d30| 64 20 62 2e 0d 09 41 53 | 53 45 52 54 28 20 22 42 |d b...AS|SERT( "B|
|00001d40| 61 64 20 69 6e 64 65 78 | 3b 20 5a 41 72 72 61 79 |ad index|; ZArray|
|00001d50| 3a 3a 53 77 61 70 22 2c | 20 69 74 65 6d 61 20 3e |::Swap",| itema >|
|00001d60| 20 30 20 26 26 20 69 74 | 65 6d 61 20 3c 3d 20 6e | 0 && it|ema <= n|
|00001d70| 75 6d 45 6c 65 6d 65 6e | 74 73 20 26 26 20 69 74 |umElemen|ts && it|
|00001d80| 65 6d 62 20 3e 20 30 20 | 26 26 20 69 74 65 6d 62 |emb > 0 |&& itemb|
|00001d90| 20 3c 3d 20 6e 75 6d 45 | 6c 65 6d 65 6e 74 73 2c | <= numE|lements,|
|00001da0| 20 30 20 29 0d 09 0d 09 | 2f 2f 20 6d 61 6b 65 20 | 0 )....|// make |
|00001db0| 73 6f 6d 65 20 73 77 61 | 70 20 73 70 61 63 65 0d |some swa|p space.|
|00001dc0| 09 0d 09 76 6f 69 64 2a | 20 74 65 6d 70 61 20 3d |...void*| tempa =|
|00001dd0| 20 28 76 6f 69 64 2a 29 | 20 4e 65 77 50 74 72 28 | (void*)| NewPtr(|
|00001de0| 20 62 6c 6b 53 69 7a 65 | 20 29 3b 0d 09 76 6f 69 | blkSize| );..voi|
|00001df0| 64 2a 20 74 65 6d 70 62 | 20 3d 20 28 76 6f 69 64 |d* tempb| = (void|
|00001e00| 2a 29 20 4e 65 77 50 74 | 72 28 20 62 6c 6b 53 69 |*) NewPt|r( blkSi|
|00001e10| 7a 65 20 29 3b 0d 09 46 | 61 69 6c 4e 49 4c 28 74 |ze );..F|ailNIL(t|
|00001e20| 65 6d 70 61 29 3b 0d 09 | 46 61 69 6c 4e 49 4c 28 |empa);..|FailNIL(|
|00001e30| 74 65 6d 70 62 29 3b 0d | 09 0d 09 47 65 74 41 72 |tempb);.|...GetAr|
|00001e40| 72 61 79 49 74 65 6d 28 | 20 74 65 6d 70 61 2c 20 |rayItem(| tempa, |
|00001e50| 69 74 65 6d 61 29 3b 0d | 09 47 65 74 41 72 72 61 |itema);.|.GetArra|
|00001e60| 79 49 74 65 6d 28 20 74 | 65 6d 70 62 2c 20 69 74 |yItem( t|empb, it|
|00001e70| 65 6d 62 29 3b 0d 09 53 | 65 74 41 72 72 61 79 49 |emb);..S|etArrayI|
|00001e80| 74 65 6d 28 20 74 65 6d | 70 61 2c 20 69 74 65 6d |tem( tem|pa, item|
|00001e90| 62 29 3b 0d 09 53 65 74 | 41 72 72 61 79 49 74 65 |b);..Set|ArrayIte|
|00001ea0| 6d 28 20 74 65 6d 70 62 | 2c 20 69 74 65 6d 61 29 |m( tempb|, itema)|
|00001eb0| 3b 0d 09 0d 09 44 69 73 | 70 6f 73 65 50 74 72 28 |;....Dis|posePtr(|
|00001ec0| 28 50 74 72 29 20 74 65 | 6d 70 61 29 3b 0d 09 44 |(Ptr) te|mpa);..D|
|00001ed0| 69 73 70 6f 73 65 50 74 | 72 28 28 50 74 72 29 20 |isposePt|r((Ptr) |
|00001ee0| 74 65 6d 70 62 29 3b 0d | 09 0d 09 53 65 6e 64 4d |tempb);.|...SendM|
|00001ef0| 65 73 73 61 67 65 28 20 | 6d 73 67 41 72 72 61 79 |essage( |msgArray|
|00001f00| 49 74 65 6d 4d 6f 76 65 | 64 2c 20 28 76 6f 69 64 |ItemMove|d, (void|
|00001f10| 2a 29 20 69 74 65 6d 61 | 20 29 3b 0d 7d 0d 0d 0d |*) itema| );.}...|
|00001f20| 2f 2a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/*------|--------|
|00001f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f40| 2d 2d 2d 2a 2a 2a 20 20 | 43 4f 55 4e 54 49 54 45 |---*** |COUNTITE|
|00001f50| 4d 53 20 20 2a 2a 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |MS ***-|--------|
|00001f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2f 0d 2f 2a 09 0d 72 |--------|*/./*..r|
|00001f80| 65 74 75 72 6e 20 74 68 | 65 20 6e 75 6d 62 65 72 |eturn th|e number|
|00001f90| 20 6f 66 20 69 74 65 6d | 73 20 69 6e 20 74 68 65 | of item|s in the|
|00001fa0| 20 61 72 72 61 79 0d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | array.-|--------|
|00001fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fe0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ff0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|00002000| 2f 0d 0d 6c 6f 6e 67 09 | 5a 41 72 72 61 79 3a 3a |/..long.|ZArray::|
|00002010| 43 6f 75 6e 74 49 74 65 | 6d 73 28 29 0d 7b 0d 09 |CountIte|ms().{..|
|00002020| 72 65 74 75 72 6e 20 6e | 75 6d 45 6c 65 6d 65 6e |return n|umElemen|
|00002030| 74 73 3b 0d 7d 0d 0d 0d | 2f 2a 2d 2d 2d 2d 2d 2d |ts;.}...|/*------|
|00002040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2a 2a 2a 20 |--------|----*** |
|00002060| 20 44 4f 46 4f 52 45 41 | 43 48 20 20 2a 2a 2a 2d | DOFOREA|CH ***-|
|00002070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002090| 2a 2f 0d 2f 2a 09 0d 66 | 6f 72 20 65 61 63 68 20 |*/./*..f|or each |
|000020a0| 69 74 65 6d 20 69 6e 20 | 74 68 65 20 61 72 72 61 |item in |the arra|
|000020b0| 79 2c 20 70 61 73 73 20 | 69 74 20 74 6f 20 74 68 |y, pass |it to th|
|000020c0| 65 20 67 72 6f 76 65 6c | 6c 69 6e 67 20 70 72 6f |e grovel|ling pro|
|000020d0| 63 20 70 61 73 73 65 64 | 0d 2d 2d 2d 2d 2d 2d 2d |c passed|.-------|
|000020e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000020f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002130| 2d 2a 2f 0d 0d 76 6f 69 | 64 09 5a 41 72 72 61 79 |-*/..voi|d.ZArray|
|00002140| 3a 3a 44 6f 46 6f 72 45 | 61 63 68 28 49 74 65 72 |::DoForE|ach(Iter|
|00002150| 61 74 6f 72 50 72 6f 63 | 50 74 72 20 61 50 72 6f |atorProc|Ptr aPro|
|00002160| 63 2c 20 63 6f 6e 73 74 | 20 6c 6f 6e 67 20 72 65 |c, const| long re|
|00002170| 66 29 0d 7b 0d 09 69 66 | 20 28 61 50 72 6f 63 20 |f).{..if| (aProc |
|00002180| 26 26 20 28 6e 75 6d 45 | 6c 65 6d 65 6e 74 73 20 |&& (numE|lements |
|00002190| 3e 20 30 29 29 0d 09 7b | 0d 09 09 6c 6f 6e 67 09 |> 0))..{|...long.|
|000021a0| 69 20 3d 20 6e 75 6d 45 | 6c 65 6d 65 6e 74 73 3b |i = numE|lements;|
|000021b0| 0d 09 09 76 6f 69 64 2a | 09 74 65 6d 70 20 3d 20 |...void*|.temp = |
|000021c0| 28 76 6f 69 64 2a 29 20 | 4e 65 77 50 74 72 28 20 |(void*) |NewPtr( |
|000021d0| 62 6c 6b 53 69 7a 65 20 | 29 3b 0d 09 09 0d 09 09 |blkSize |);......|
|000021e0| 46 61 69 6c 4e 49 4c 28 | 20 74 65 6d 70 20 29 3b |FailNIL(| temp );|
|000021f0| 0d 09 09 0d 09 09 77 68 | 69 6c 65 20 28 20 69 20 |......wh|ile ( i |
|00002200| 29 0d 09 09 7b 0d 09 09 | 09 47 65 74 41 72 72 61 |)...{...|.GetArra|
|00002210| 79 49 74 65 6d 28 20 74 | 65 6d 70 2c 20 69 29 3b |yItem( t|emp, i);|
|00002220| 0d 09 09 09 28 2a 61 50 | 72 6f 63 29 28 74 65 6d |....(*aP|roc)(tem|
|00002230| 70 2c 20 72 65 66 29 3b | 0d 09 09 09 0d 09 09 09 |p, ref);|........|
|00002240| 2f 2f 20 69 6e 20 63 61 | 73 65 20 74 68 65 20 70 |// in ca|se the p|
|00002250| 72 6f 63 20 63 68 61 6e | 67 65 64 20 74 68 65 20 |roc chan|ged the |
|00002260| 69 74 65 6d 2c 20 73 65 | 74 20 69 74 20 62 61 63 |item, se|t it bac|
|00002270| 6b 0d 09 09 09 0d 09 09 | 09 53 65 74 41 72 72 61 |k.......|.SetArra|
|00002280| 79 49 74 65 6d 28 20 74 | 65 6d 70 2c 20 69 2d 2d |yItem( t|emp, i--|
|00002290| 29 3b 0d 09 09 7d 0d 09 | 09 0d 09 09 44 69 73 70 |);...}..|....Disp|
|000022a0| 6f 73 65 50 74 72 28 28 | 50 74 72 29 20 74 65 6d |osePtr((|Ptr) tem|
|000022b0| 70 29 3b 0d 09 7d 0d 7d | 0d 0d 0d 2f 2a 2d 2d 2d |p);..}.}|.../*---|
|000022c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022e0| 2d 2d 2a 2a 2a 20 20 53 | 4f 52 54 20 20 2a 2a 2a |--*** S|ORT ***|
|000022f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002310| 2d 2d 2d 2a 2f 0d 2f 2a | 09 0d 73 6f 72 74 20 74 |---*/./*|..sort t|
|00002320| 68 65 20 69 74 65 6d 73 | 20 69 6e 20 74 68 65 20 |he items| in the |
|00002330| 61 72 72 61 79 20 69 6e | 74 6f 20 6f 72 64 65 72 |array in|to order|
|00002340| 2e 20 54 68 65 20 73 75 | 70 70 6c 69 65 64 20 63 |. The su|pplied c|
|00002350| 6f 6d 70 61 72 69 73 6f | 6e 20 66 75 6e 63 74 69 |ompariso|n functi|
|00002360| 6f 6e 20 61 6c 6c 6f 77 | 73 20 79 6f 75 20 74 6f |on allow|s you to|
|00002370| 0d 73 6f 72 74 20 61 6e | 79 74 68 69 6e 67 20 62 |.sort an|ything b|
|00002380| 61 73 65 64 20 6f 6e 20 | 61 6e 79 20 6f 72 64 65 |ased on |any orde|
|00002390| 72 69 6e 67 20 63 72 69 | 74 65 72 69 61 2e 20 55 |ring cri|teria. U|
|000023a0| 73 65 73 20 61 20 76 65 | 72 79 20 66 61 73 74 20 |ses a ve|ry fast |
|000023b0| 73 68 65 6c 6c 73 6f 72 | 74 20 61 6c 67 6f 72 69 |shellsor|t algori|
|000023c0| 74 68 6d 2e 20 59 6f 75 | 72 0d 73 6f 72 74 20 66 |thm. You|r.sort f|
|000023d0| 75 6e 63 74 69 6f 6e 20 | 6e 65 65 64 73 20 74 6f |unction |needs to|
|000023e0| 20 65 78 61 6d 69 6e 65 | 20 74 68 65 20 72 65 6c | examine| the rel|
|000023f0| 65 76 61 6e 74 20 63 72 | 69 74 65 72 69 61 20 69 |evant cr|iteria i|
|00002400| 6e 20 74 68 65 20 69 74 | 65 6d 73 20 70 61 73 73 |n the it|ems pass|
|00002410| 65 64 2c 20 61 6e 64 20 | 64 65 63 69 64 65 20 77 |ed, and |decide w|
|00002420| 68 61 74 0d 6f 72 64 65 | 72 20 74 68 65 79 20 63 |hat.orde|r they c|
|00002430| 6f 6d 65 20 69 6e 2e 20 | 49 74 20 73 68 6f 75 6c |ome in. |It shoul|
|00002440| 64 20 72 65 74 75 72 6e | 20 2d 31 20 69 66 20 61 |d return| -1 if a|
|00002450| 20 3c 20 62 2c 20 2b 31 | 20 69 66 20 61 20 3e 20 | < b, +1| if a > |
|00002460| 62 2c 20 61 6e 64 20 30 | 20 69 66 20 65 71 75 61 |b, and 0| if equa|
|00002470| 6c 2e 20 3c 72 65 66 3e | 20 63 61 6e 20 62 65 0d |l. <ref>| can be.|
|00002480| 61 6e 79 74 68 69 6e 67 | 20 79 6f 75 20 77 61 6e |anything| you wan|
|00002490| 74 2d 20 69 74 20 69 73 | 20 73 69 6d 70 6c 79 20 |t- it is| simply |
|000024a0| 70 61 73 73 65 64 20 74 | 6f 20 74 68 65 20 63 6f |passed t|o the co|
|000024b0| 6d 70 61 72 65 20 66 75 | 6e 63 74 69 6f 6e 2e 20 |mpare fu|nction. |
|000024c0| 49 74 20 6d 69 67 68 74 | 20 62 65 20 61 6e 6f 74 |It might| be anot|
|000024d0| 68 65 72 20 6f 62 6a 65 | 63 74 0d 66 6f 72 20 65 |her obje|ct.for e|
|000024e0| 78 61 6d 70 6c 65 20 28 | 68 69 6e 74 2c 20 68 69 |xample (|hint, hi|
|000024f0| 6e 74 21 29 2e 0d 0d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |nt!)...-|--------|
|00002500| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|00002550| 2f 0d 0d 76 6f 69 64 09 | 5a 41 72 72 61 79 3a 3a |/..void.|ZArray::|
|00002560| 53 6f 72 74 28 20 72 65 | 67 69 73 74 65 72 20 53 |Sort( re|gister S|
|00002570| 6f 72 74 43 6d 70 50 72 | 6f 63 50 74 72 20 63 6f |ortCmpPr|ocPtr co|
|00002580| 6d 70 61 72 65 50 72 6f | 63 2c 20 72 65 67 69 73 |mparePro|c, regis|
|00002590| 74 65 72 20 63 6f 6e 73 | 74 20 6c 6f 6e 67 20 72 |ter cons|t long r|
|000025a0| 65 66 20 29 0d 7b 0d 09 | 72 65 67 69 73 74 65 72 |ef ).{..|register|
|000025b0| 20 6c 6f 6e 67 09 45 2c | 4e 2c 4d 2c 4a 2c 4b 2c | long.E,|N,M,J,K,|
|000025c0| 52 3b 0d 09 72 65 67 69 | 73 74 65 72 20 73 68 6f |R;..regi|ster sho|
|000025d0| 72 74 09 63 70 3b 0d 09 | 0d 09 72 65 67 69 73 74 |rt.cp;..|..regist|
|000025e0| 65 72 20 76 6f 69 64 2a | 09 69 74 65 6d 61 3b 0d |er void*|.itema;.|
|000025f0| 09 72 65 67 69 73 74 65 | 72 20 76 6f 69 64 2a 09 |.registe|r void*.|
|00002600| 69 74 65 6d 62 3b 0d 09 | 0d 09 2f 2f 20 73 61 6e |itemb;..|..// san|
|00002610| 69 74 79 20 63 68 65 63 | 6b 2d 20 74 68 65 72 65 |ity chec|k- there|
|00002620| 20 49 53 20 61 20 73 6f | 72 74 20 66 75 6e 63 74 | IS a so|rt funct|
|00002630| 69 6f 6e 2c 20 72 69 67 | 68 74 3f 0d 09 0d 09 46 |ion, rig|ht?....F|
|00002640| 61 69 6c 4f 53 45 72 72 | 28 28 63 6f 6d 70 61 72 |ailOSErr|((compar|
|00002650| 65 50 72 6f 63 20 3d 3d | 20 4e 55 4c 4c 29 3f 20 |eProc ==| NULL)? |
|00002660| 6b 55 6e 64 65 66 69 6e | 65 64 43 6f 6d 70 50 72 |kUndefin|edCompPr|
|00002670| 6f 63 45 72 72 20 3a 20 | 6e 6f 45 72 72 20 29 3b |ocErr : |noErr );|
|00002680| 0d 09 0d 09 2f 2f 20 61 | 6c 6c 6f 63 61 74 65 20 |....// a|llocate |
|00002690| 73 6f 6d 65 20 74 65 6d | 70 6f 72 61 72 79 20 73 |some tem|porary s|
|000026a0| 74 6f 72 61 67 65 0d 09 | 0d 09 46 61 69 6c 4e 49 |torage..|..FailNI|
|000026b0| 4c 28 69 74 65 6d 61 20 | 3d 20 28 76 6f 69 64 2a |L(itema |= (void*|
|000026c0| 29 20 4e 65 77 50 74 72 | 28 20 62 6c 6b 53 69 7a |) NewPtr|( blkSiz|
|000026d0| 65 20 29 29 3b 0d 09 46 | 61 69 6c 4e 49 4c 28 69 |e ));..F|ailNIL(i|
|000026e0| 74 65 6d 62 20 3d 20 28 | 76 6f 69 64 2a 29 20 4e |temb = (|void*) N|
|000026f0| 65 77 50 74 72 28 20 62 | 6c 6b 53 69 7a 65 20 29 |ewPtr( b|lkSize )|
|00002700| 29 3b 0d 09 0d 09 2f 2f | 20 69 6e 69 74 69 61 6c |);....//| initial|
|00002710| 69 73 65 20 74 68 65 20 | 63 6f 6e 74 72 6f 6c 20 |ise the |control |
|00002720| 76 61 72 69 61 62 6c 65 | 73 20 74 6f 20 74 68 65 |variable|s to the|
|00002730| 20 6e 75 6d 62 65 72 20 | 6f 66 20 65 6c 65 6d 65 | number |of eleme|
|00002740| 6e 74 73 20 69 6e 20 74 | 68 65 20 6c 69 73 74 0d |nts in t|he list.|
|00002750| 09 0d 09 4d 20 3d 20 45 | 20 3d 20 4e 20 3d 20 6e |...M = E| = N = n|
|00002760| 75 6d 45 6c 65 6d 65 6e | 74 73 3b 0d 09 4e 2b 2b |umElemen|ts;..N++|
|00002770| 3b 0d 09 0d 09 2f 2f 20 | 61 6e 64 2e 2e 2e 20 73 |;....// |and... s|
|00002780| 6f 72 74 21 0d 09 0d 09 | 64 6f 0d 09 7b 0d 09 09 |ort!....|do..{...|
|00002790| 4d 20 2f 3d 20 32 3b 0d | 09 09 69 66 20 28 4d 20 |M /= 2;.|..if (M |
|000027a0| 3c 3d 20 30 29 0d 09 09 | 09 62 72 65 61 6b 3b 0d |<= 0)...|.break;.|
|000027b0| 09 09 09 0d 09 09 4b 20 | 3d 20 45 20 2d 20 4d 3b |......K |= E - M;|
|000027c0| 0d 09 09 4a 20 3d 20 31 | 3b 0d 09 09 0d 09 09 64 |...J = 1|;......d|
|000027d0| 6f 0d 09 09 7b 0d 09 09 | 09 4e 20 3d 20 4a 3b 0d |o...{...|.N = J;.|
|000027e0| 09 09 09 64 6f 0d 09 09 | 09 7b 0d 09 09 09 09 52 |...do...|.{.....R|
|000027f0| 20 3d 20 4e 20 2b 20 4d | 3b 0d 09 09 09 09 47 65 | = N + M|;.....Ge|
|00002800| 74 41 72 72 61 79 49 74 | 65 6d 28 20 69 74 65 6d |tArrayIt|em( item|
|00002810| 61 2c 20 4e 20 29 3b 09 | 09 09 09 09 09 2f 2f 20 |a, N );.|.....// |
|00002820| 67 65 74 20 66 69 72 73 | 74 20 69 74 65 6d 0d 09 |get firs|t item..|
|00002830| 09 09 09 47 65 74 41 72 | 72 61 79 49 74 65 6d 28 |...GetAr|rayItem(|
|00002840| 20 69 74 65 6d 62 2c 20 | 52 20 29 3b 09 09 09 09 | itemb, |R );....|
|00002850| 09 09 2f 2f 20 67 65 74 | 20 73 65 63 6f 6e 64 20 |..// get| second |
|00002860| 69 74 65 6d 0d 09 09 09 | 09 0d 09 09 09 09 63 70 |item....|......cp|
|00002870| 20 3d 20 28 2a 63 6f 6d | 70 61 72 65 50 72 6f 63 | = (*com|pareProc|
|00002880| 29 28 20 69 74 65 6d 61 | 2c 20 69 74 65 6d 62 2c |)( itema|, itemb,|
|00002890| 20 72 65 66 20 29 3b 09 | 09 2f 2f 20 63 61 6c 6c | ref );.|.// call|
|000028a0| 20 74 68 65 20 63 6f 6d | 70 61 72 69 73 6f 6e 20 | the com|parison |
|000028b0| 66 75 6e 63 74 69 6f 6e | 0d 09 09 09 09 0d 09 09 |function|........|
|000028c0| 09 09 69 66 20 28 20 63 | 70 20 3c 20 31 20 29 09 |..if ( c|p < 1 ).|
|000028d0| 09 09 09 09 09 09 09 09 | 2f 2f 20 6e 6f 20 6e 65 |........|// no ne|
|000028e0| 65 64 20 74 6f 20 73 77 | 61 70 20 28 61 20 3c 3d |ed to sw|ap (a <=|
|000028f0| 20 62 29 0d 09 09 09 09 | 09 62 72 65 61 6b 3b 0d | b).....|.break;.|
|00002900| 09 09 09 09 09 0d 09 09 | 09 09 53 77 61 70 28 20 |........|..Swap( |
|00002910| 4e 2c 20 52 20 29 3b 09 | 09 09 09 09 09 09 09 09 |N, R );.|........|
|00002920| 2f 2f 20 73 77 61 70 20 | 69 74 65 6d 73 20 69 6e |// swap |items in|
|00002930| 20 74 68 65 20 61 72 72 | 61 79 0d 09 09 09 09 09 | the arr|ay......|
|00002940| 0d 09 09 09 09 4e 20 2d | 3d 20 4d 3b 0d 09 09 09 |.....N -|= M;....|
|00002950| 7d 0d 09 09 09 77 68 69 | 6c 65 20 28 20 4e 20 3e |}....whi|le ( N >|
|00002960| 20 30 20 29 3b 0d 09 09 | 09 4a 2b 2b 3b 0d 09 09 | 0 );...|.J++;...|
|00002970| 7d 0d 09 09 77 68 69 6c | 65 20 28 4a 20 3c 3d 20 |}...whil|e (J <= |
|00002980| 4b 29 3b 0d 09 7d 0d 09 | 77 68 69 6c 65 28 20 4d |K);..}..|while( M|
|00002990| 20 3e 20 30 20 29 3b 0d | 09 0d 09 2f 2f 20 61 6c | > 0 );.|...// al|
|000029a0| 6c 20 64 6f 6e 65 2c 20 | 6e 6f 77 20 72 65 6c 65 |l done, |now rele|
|000029b0| 61 73 65 20 74 68 65 20 | 74 65 6d 70 6f 72 61 72 |ase the |temporar|
|000029c0| 79 20 73 74 6f 72 61 67 | 65 0d 09 0d 09 44 69 73 |y storag|e....Dis|
|000029d0| 70 6f 73 65 50 74 72 28 | 28 50 74 72 29 20 69 74 |posePtr(|(Ptr) it|
|000029e0| 65 6d 61 29 3b 0d 09 44 | 69 73 70 6f 73 65 50 74 |ema);..D|isposePt|
|000029f0| 72 28 28 50 74 72 29 20 | 69 74 65 6d 62 29 3b 0d |r((Ptr) |itemb);.|
|00002a00| 7d 0d 0d 2f 2a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}../*---|--------|
|00002a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2a 2a 20 20 53 |--------|--*** S|
|00002a30| 4f 52 54 20 20 2a 2a 2a | 2d 2d 2d 2d 2d 2d 2d 2d |ORT ***|--------|
|00002a40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2f 0d 2f 2a |--------|---*/./*|
|00002a60| 09 0d 73 69 6d 70 6c 65 | 72 20 69 6e 74 65 72 66 |..simple|r interf|
|00002a70| 61 63 65 20 74 6f 20 53 | 6f 72 74 2d 20 69 6e 64 |ace to S|ort- ind|
|00002a80| 69 72 65 63 74 6c 79 20 | 63 61 6c 6c 73 20 74 68 |irectly |calls th|
|00002a90| 65 20 43 6f 6d 70 61 72 | 65 20 6d 65 74 68 6f 64 |e Compar|e method|
|00002aa0| 2c 20 77 68 69 63 68 20 | 79 6f 75 20 63 61 6e 20 |, which |you can |
|00002ab0| 6f 76 65 72 72 69 64 65 | 2e 0d 0d 2d 2d 2d 2d 2d |override|...-----|
|00002ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ae0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002af0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b10| 2d 2d 2d 2a 2f 0d 0d 76 | 6f 69 64 09 5a 41 72 72 |---*/..v|oid.ZArr|
|00002b20| 61 79 3a 3a 53 6f 72 74 | 28 29 0d 7b 0d 09 53 6f |ay::Sort|().{..So|
|00002b30| 72 74 28 20 76 43 6f 6d | 70 61 72 65 46 75 6e 63 |rt( vCom|pareFunc|
|00002b40| 2c 20 28 6c 6f 6e 67 29 | 20 74 68 69 73 20 29 3b |, (long)| this );|
|00002b50| 0d 7d 0d 0d 2f 2a 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.}../*--|--------|
|00002b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2a 2a 20 20 51 |--------|--*** Q|
|00002b80| 53 4f 52 54 20 20 2a 2a | 2a 2d 2d 2d 2d 2d 2d 2d |SORT **|*-------|
|00002b90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ba0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2a 2f 0d 2f |--------|----*/./|
|00002bb0| 2a 09 0d 73 6f 72 74 73 | 20 75 73 69 6e 67 20 71 |*..sorts| using q|
|00002bc0| 73 6f 72 74 20 69 6e 20 | 73 74 64 20 43 20 6c 69 |sort in |std C li|
|00002bd0| 62 2c 20 77 68 69 63 68 | 20 63 61 6e 20 74 61 6b |b, which| can tak|
|00002be0| 65 20 66 72 6f 6d 20 31 | 2f 34 20 74 6f 20 31 2f |e from 1|/4 to 1/|
|00002bf0| 32 20 74 68 65 20 74 69 | 6d 65 20 61 73 20 53 6f |2 the ti|me as So|
|00002c00| 72 74 2e 20 4e 6f 74 65 | 0d 74 68 6f 75 67 68 20 |rt. Note|.though |
|00002c10| 74 68 61 74 20 79 6f 75 | 20 63 61 6e 6e 6f 74 20 |that you| cannot |
|00002c20| 70 61 73 73 20 61 20 3c | 72 65 66 3e 2c 20 73 6f |pass a <|ref>, so|
|00002c30| 20 79 6f 75 20 63 6f 6d | 70 61 72 65 20 70 72 6f | you com|pare pro|
|00002c40| 63 20 6d 75 73 74 20 4e | 4f 54 20 72 65 6c 79 20 |c must N|OT rely |
|00002c50| 6f 6e 20 69 74 20 66 6f | 72 20 61 6e 79 0d 70 75 |on it fo|r any.pu|
|00002c60| 72 70 6f 73 65 20 69 66 | 20 75 73 69 6e 67 20 51 |rpose if| using Q|
|00002c70| 53 6f 72 74 20 69 6e 73 | 74 65 61 64 20 6f 66 20 |Sort ins|tead of |
|00002c80| 53 6f 72 74 2e 0d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |Sort..--|--------|
|00002c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00002ce0| 0d 0d 76 6f 69 64 09 5a | 41 72 72 61 79 3a 3a 51 |..void.Z|Array::Q|
|00002cf0| 53 6f 72 74 28 20 53 6f | 72 74 43 6d 70 50 72 6f |Sort( So|rtCmpPro|
|00002d00| 63 50 74 72 20 63 6f 6d | 70 61 72 65 50 72 6f 63 |cPtr com|pareProc|
|00002d10| 20 29 0d 7b 0d 09 63 68 | 61 72 09 68 73 20 3d 20 | ).{..ch|ar.hs = |
|00002d20| 48 47 65 74 53 74 61 74 | 65 28 20 61 20 29 3b 0d |HGetStat|e( a );.|
|00002d30| 09 0d 09 48 4c 6f 63 6b | 28 20 61 20 29 3b 09 0d |...HLock|( a );..|
|00002d40| 09 0d 09 71 73 6f 72 74 | 28 20 2a 61 2c 20 6e 75 |...qsort|( *a, nu|
|00002d50| 6d 45 6c 65 6d 65 6e 74 | 73 2c 20 62 6c 6b 53 69 |mElement|s, blkSi|
|00002d60| 7a 65 2c 20 28 20 69 6e | 74 28 2a 29 28 20 63 6f |ze, ( in|t(*)( co|
|00002d70| 6e 73 74 20 76 6f 69 64 | 2a 2c 20 63 6f 6e 73 74 |nst void|*, const|
|00002d80| 20 76 6f 69 64 2a 20 29 | 29 20 63 6f 6d 70 61 72 | void* )|) compar|
|00002d90| 65 50 72 6f 63 20 29 3b | 0d 09 0d 09 48 53 65 74 |eProc );|....HSet|
|00002da0| 53 74 61 74 65 28 20 61 | 2c 20 68 73 20 29 3b 0d |State( a|, hs );.|
|00002db0| 7d 0d 0d 2f 2a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}../*---|--------|
|00002dc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002dd0| 2d 2d 2d 2d 2d 2d 2d 2a | 2a 2a 20 20 43 4f 4d 50 |-------*|** COMP|
|00002de0| 41 52 45 20 20 2a 2a 2a | 2d 2d 2d 2d 2d 2d 2d 2d |ARE ***|--------|
|00002df0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002e00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2f 0d 2f 2a |--------|---*/./*|
|00002e10| 0d 63 6f 6d 70 61 72 65 | 20 74 77 6f 20 69 74 65 |.compare| two ite|
|00002e20| 6d 73 20 61 6e 64 20 72 | 65 74 75 72 6e 20 74 68 |ms and r|eturn th|
|00002e30| 65 69 72 20 72 65 6c 61 | 74 69 76 65 20 6f 72 64 |eir rela|tive ord|
|00002e40| 65 72 69 6e 67 3a 20 2d | 31 20 69 66 20 61 20 3c |ering: -|1 if a <|
|00002e50| 20 62 2c 20 2b 31 20 69 | 66 20 61 20 3e 20 62 2c | b, +1 i|f a > b,|
|00002e60| 20 30 20 69 66 20 61 20 | 3d 3d 20 62 2e 0d 59 6f | 0 if a |== b..Yo|
|00002e70| 75 20 6e 65 65 64 20 74 | 6f 20 6f 76 65 72 72 69 |u need t|o overri|
|00002e80| 64 65 20 74 68 69 73 20 | 69 66 20 79 6f 75 20 77 |de this |if you w|
|00002e90| 69 73 68 20 74 6f 20 75 | 73 65 20 74 68 65 20 73 |ish to u|se the s|
|00002ea0| 69 6d 70 6c 65 20 63 61 | 6c 6c 20 74 6f 20 53 6f |imple ca|ll to So|
|00002eb0| 72 74 28 29 20 61 62 6f | 76 65 2e 09 0d 2d 2d 2d |rt() abo|ve...---|
|00002ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f10| 2d 2d 2d 2d 2d 2a 2f 0d | 0d 73 68 6f 72 74 09 5a |-----*/.|.short.Z|
|00002f20| 41 72 72 61 79 3a 3a 43 | 6f 6d 70 61 72 65 28 20 |Array::C|ompare( |
|00002f30| 76 6f 69 64 2a 20 69 74 | 65 6d 61 2c 20 76 6f 69 |void* it|ema, voi|
|00002f40| 64 2a 20 69 74 65 6d 62 | 2c 20 63 6f 6e 73 74 20 |d* itemb|, const |
|00002f50| 6c 6f 6e 67 20 72 65 66 | 20 29 0d 7b 0d 09 72 65 |long ref| ).{..re|
|00002f60| 74 75 72 6e 20 30 3b 0d | 7d 0d 0d 2f 2a 2d 2d 2d |turn 0;.|}../*---|
|00002f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2a 2a 20 20 |--------|---*** |
|00002f90| 49 4e 53 45 52 54 53 4f | 52 54 45 44 49 54 45 4d |INSERTSO|RTEDITEM|
|00002fa0| 20 20 2a 2a 2a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | ***---|--------|
|00002fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fc0| 2d 2d 2d 2a 2f 0d 2f 2a | 0d 69 6e 73 65 72 74 20 |---*/./*|.insert |
|00002fd0| 74 68 65 20 69 74 65 6d | 20 69 6e 74 6f 20 74 68 |the item| into th|
|00002fe0| 65 20 6c 69 73 74 20 61 | 74 20 74 68 65 20 63 6f |e list a|t the co|
|00002ff0| 72 72 65 63 74 20 70 6c | 61 63 65 20 61 73 73 75 |rrect pl|ace assu|
|00003000| 6d 69 6e 67 20 74 68 65 | 20 6c 69 73 74 20 69 73 |ming the| list is|
|00003010| 20 73 6f 72 74 65 64 2e | 20 54 68 69 73 0d 64 6f | sorted.| This.do|
|00003020| 65 73 20 61 20 62 69 6e | 61 72 79 20 73 65 61 72 |es a bin|ary sear|
|00003030| 63 68 20 74 6f 20 6c 6f | 63 61 74 65 20 74 68 65 |ch to lo|cate the|
|00003040| 20 70 6f 73 69 74 69 6f | 6e 2c 20 62 61 73 65 64 | positio|n, based|
|00003050| 20 6f 6e 20 74 68 65 20 | 63 6f 6d 70 61 72 69 73 | on the |comparis|
|00003060| 6f 6e 20 66 75 6e 63 74 | 69 6f 6e 20 70 72 6f 76 |on funct|ion prov|
|00003070| 69 64 65 64 2e 0d 4e 6f | 72 6d 61 6c 6c 79 20 74 |ided..No|rmally t|
|00003080| 68 65 20 63 6f 6d 70 61 | 72 69 73 6f 6e 20 66 75 |he compa|rison fu|
|00003090| 6e 63 74 69 6f 6e 20 69 | 73 20 74 68 65 20 73 61 |nction i|s the sa|
|000030a0| 6d 65 20 6f 6e 65 20 79 | 6f 75 27 64 20 75 73 65 |me one y|ou'd use|
|000030b0| 20 77 69 74 68 20 73 6f | 72 74 2c 20 73 6f 20 65 | with so|rt, so e|
|000030c0| 76 65 72 79 74 68 69 6e | 67 0d 61 67 72 65 65 73 |verythin|g.agrees|
|000030d0| 2e 20 52 65 74 75 72 6e | 73 20 74 68 65 20 69 6e |. Return|s the in|
|000030e0| 64 65 78 20 70 6f 73 69 | 74 69 6f 6e 20 69 74 20 |dex posi|tion it |
|000030f0| 77 61 73 20 69 6e 73 65 | 72 74 65 64 20 61 74 2e |was inse|rted at.|
|00003100| 0d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.-------|--------|
|00003110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003150| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2f 0d 0d 6c 6f 6e |--------|-*/..lon|
|00003160| 67 09 5a 41 72 72 61 79 | 3a 3a 49 6e 73 65 72 74 |g.ZArray|::Insert|
|00003170| 53 6f 72 74 65 64 49 74 | 65 6d 28 20 76 6f 69 64 |SortedIt|em( void|
|00003180| 2a 20 69 74 65 6d 2c 20 | 53 6f 72 74 43 6d 70 50 |* item, |SortCmpP|
|00003190| 72 6f 63 50 74 72 20 63 | 6f 6d 70 61 72 65 50 72 |rocPtr c|omparePr|
|000031a0| 6f 63 2c 20 63 6f 6e 73 | 74 20 6c 6f 6e 67 20 72 |oc, cons|t long r|
|000031b0| 65 66 20 29 0d 7b 0d 09 | 46 61 69 6c 4e 49 4c 50 |ef ).{..|FailNILP|
|000031c0| 61 72 61 6d 28 20 63 6f | 6d 70 61 72 65 50 72 6f |aram( co|mparePro|
|000031d0| 63 20 29 3b 0d 09 0d 09 | 73 68 6f 72 74 09 72 65 |c );....|short.re|
|000031e0| 6c 3b 0d 09 6c 6f 6e 67 | 09 70 6f 73 20 3d 20 42 |l;..long|.pos = B|
|000031f0| 46 69 6e 64 49 6e 64 65 | 78 28 20 69 74 65 6d 2c |FindInde|x( item,|
|00003200| 20 63 6f 6d 70 61 72 65 | 50 72 6f 63 2c 20 72 65 | compare|Proc, re|
|00003210| 66 20 29 3b 0d 09 76 6f | 69 64 2a 09 69 74 65 6d |f );..vo|id*.item|
|00003220| 42 3b 0d 09 0d 09 2f 2f | 20 3c 70 6f 73 3e 20 72 |B;....//| <pos> r|
|00003230| 65 70 72 65 73 65 6e 74 | 73 20 74 68 65 20 4e 45 |epresent|s the NE|
|00003240| 41 52 45 53 54 20 69 74 | 65 6d 2c 20 62 75 74 20 |AREST it|em, but |
|00003250| 77 65 20 64 6f 6e 27 74 | 20 6b 6e 6f 77 20 69 66 |we don't| know if|
|00003260| 20 77 65 20 6e 65 65 64 | 20 74 6f 20 69 6e 73 65 | we need| to inse|
|00003270| 72 74 0d 09 2f 2f 20 62 | 65 66 6f 72 65 20 6f 72 |rt..// b|efore or|
|00003280| 20 61 66 74 65 72 20 74 | 68 69 73 20 69 74 65 6d | after t|his item|
|00003290| 2c 20 73 6f 20 77 65 20 | 6e 65 65 64 20 74 6f 20 |, so we |need to |
|000032a0| 64 6f 20 6f 6e 65 20 6d | 6f 72 65 20 63 6f 6d 70 |do one m|ore comp|
|000032b0| 61 72 65 0d 09 0d 09 69 | 66 20 28 20 70 6f 73 20 |are....i|f ( pos |
|000032c0| 3e 20 30 20 29 0d 09 7b | 0d 09 09 46 61 69 6c 4e |> 0 )..{|...FailN|
|000032d0| 49 4c 28 20 69 74 65 6d | 42 20 3d 20 28 76 6f 69 |IL( item|B = (voi|
|000032e0| 64 2a 29 20 4e 65 77 50 | 74 72 28 20 62 6c 6b 53 |d*) NewP|tr( blkS|
|000032f0| 69 7a 65 20 29 29 3b 0d | 09 09 0d 09 09 47 65 74 |ize ));.|.....Get|
|00003300| 41 72 72 61 79 49 74 65 | 6d 28 20 69 74 65 6d 42 |ArrayIte|m( itemB|
|00003310| 2c 20 70 6f 73 20 29 3b | 0d 09 09 0d 09 09 72 65 |, pos );|......re|
|00003320| 6c 20 3d 20 28 2a 63 6f | 6d 70 61 72 65 50 72 6f |l = (*co|mparePro|
|00003330| 63 29 28 20 69 74 65 6d | 2c 20 69 74 65 6d 42 2c |c)( item|, itemB,|
|00003340| 20 72 65 66 20 29 3b 0d | 09 09 0d 09 09 44 69 73 | ref );.|.....Dis|
|00003350| 70 6f 73 65 50 74 72 28 | 28 50 74 72 29 20 69 74 |posePtr(|(Ptr) it|
|00003360| 65 6d 42 20 29 3b 0d 09 | 09 0d 09 09 69 66 20 28 |emB );..|....if (|
|00003370| 20 72 65 6c 20 3e 20 30 | 20 29 0d 09 09 09 70 6f | rel > 0| )....po|
|00003380| 73 2b 2b 3b 0d 09 7d 09 | 0d 09 0d 09 69 66 20 28 |s++;..}.|....if (|
|00003390| 28 20 70 6f 73 20 3e 20 | 6e 75 6d 45 6c 65 6d 65 |( pos > |numEleme|
|000033a0| 6e 74 73 20 29 20 7c 7c | 20 28 20 70 6f 73 20 3d |nts ) ||| ( pos =|
|000033b0| 3d 20 30 20 29 29 0d 09 | 7b 0d 09 09 41 70 70 65 |= 0 ))..|{...Appe|
|000033c0| 6e 64 49 74 65 6d 28 20 | 69 74 65 6d 20 29 3b 0d |ndItem( |item );.|
|000033d0| 09 09 70 6f 73 20 3d 20 | 6e 75 6d 45 6c 65 6d 65 |..pos = |numEleme|
|000033e0| 6e 74 73 3b 0d 09 7d 0d | 09 65 6c 73 65 0d 09 09 |nts;..}.|.else...|
|000033f0| 49 6e 73 65 72 74 49 74 | 65 6d 28 20 69 74 65 6d |InsertIt|em( item|
|00003400| 2c 20 70 6f 73 20 29 3b | 0d 09 09 0d 09 72 65 74 |, pos );|.....ret|
|00003410| 75 72 6e 20 70 6f 73 3b | 0d 7d 0d 0d 2f 2a 2d 2d |urn pos;|.}../*--|
|00003420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003430| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2a 2a 2a 20 |--------|----*** |
|00003440| 20 49 4e 53 45 52 54 53 | 4f 52 54 45 44 49 54 45 | INSERTS|ORTEDITE|
|00003450| 4d 20 20 2a 2a 2a 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |M ***--|--------|
|00003460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003470| 2d 2d 2d 2d 2a 2f 0d 2f | 2a 0d 69 6e 73 65 72 74 |----*/./|*.insert|
|00003480| 20 74 68 65 20 69 74 65 | 6d 20 69 6e 74 6f 20 74 | the ite|m into t|
|00003490| 68 65 20 6c 69 73 74 20 | 61 74 20 74 68 65 20 63 |he list |at the c|
|000034a0| 6f 72 72 65 63 74 20 70 | 6c 61 63 65 20 61 73 73 |orrect p|lace ass|
|000034b0| 75 6d 69 6e 67 20 74 68 | 65 20 6c 69 73 74 20 69 |uming th|e list i|
|000034c0| 73 20 73 6f 72 74 65 64 | 2e 20 54 68 69 73 20 75 |s sorted|. This u|
|000034d0| 73 65 73 0d 74 68 65 20 | 62 75 69 6c 74 20 69 6e |ses.the |built in|
|000034e0| 20 63 6f 6d 70 61 72 65 | 20 66 75 6e 63 74 69 6f | compare| functio|
|000034f0| 6e 20 77 68 69 63 68 20 | 63 61 6c 6c 73 20 74 68 |n which |calls th|
|00003500| 65 20 43 6f 6d 70 61 72 | 65 20 6d 65 74 68 6f 64 |e Compar|e method|
|00003510| 2e 0d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..------|--------|
|00003520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2f 0d 0d 6c 6f |--------|--*/..lo|
|00003570| 6e 67 09 5a 41 72 72 61 | 79 3a 3a 49 6e 73 65 72 |ng.ZArra|y::Inser|
|00003580| 74 53 6f 72 74 65 64 49 | 74 65 6d 28 20 76 6f 69 |tSortedI|tem( voi|
|00003590| 64 2a 20 69 74 65 6d 2c | 20 63 6f 6e 73 74 20 6c |d* item,| const l|
|000035a0| 6f 6e 67 20 72 65 66 20 | 29 0d 7b 0d 09 72 65 74 |ong ref |).{..ret|
|000035b0| 75 72 6e 20 49 6e 73 65 | 72 74 53 6f 72 74 65 64 |urn Inse|rtSorted|
|000035c0| 49 74 65 6d 28 20 69 74 | 65 6d 2c 20 76 43 6f 6d |Item( it|em, vCom|
|000035d0| 70 61 72 65 46 75 6e 63 | 2c 20 72 65 66 20 29 3b |pareFunc|, ref );|
|000035e0| 0d 7d 0d 0d 0d 2f 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.}.../*-|--------|
|000035f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003600| 2d 2d 2d 2d 2a 2a 2a 20 | 20 50 72 6f 74 65 63 74 |----*** | Protect|
|00003610| 65 64 20 4d 65 6d 62 65 | 72 73 20 20 2a 2a 2a 2d |ed Membe|rs ***-|
|00003620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003630| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2a 2f 0d |--------|-----*/.|
|00003640| 0d 0d 2f 2a 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*----|--------|
|00003650| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003660| 2d 2d 2d 2a 2a 2a 20 20 | 49 4e 53 45 52 54 45 4c |---*** |INSERTEL|
|00003670| 45 4d 45 4e 54 20 20 2a | 2a 2a 2d 2d 2d 2d 2d 2d |EMENT *|**------|
|00003680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2f 0d 2f 2a 09 |--------|--*/./*.|
|000036a0| 0d 6d 61 6b 65 20 73 70 | 61 63 65 20 66 6f 72 20 |.make sp|ace for |
|000036b0| 6f 6e 65 20 65 6c 65 6d | 65 6e 74 20 69 6e 20 74 |one elem|ent in t|
|000036c0| 68 65 20 68 61 6e 64 6c | 65 0d 2d 2d 2d 2d 2d 2d |he handl|e.------|
|000036d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003720| 2d 2d 2a 2f 0d 0d 76 6f | 69 64 09 5a 41 72 72 61 |--*/..vo|id.ZArra|
|00003730| 79 3a 3a 49 6e 73 65 72 | 74 45 6c 65 6d 65 6e 74 |y::Inser|tElement|
|00003740| 28 20 63 6f 6e 73 74 20 | 6c 6f 6e 67 20 69 6e 64 |( const |long ind|
|00003750| 65 78 20 29 0d 7b 0d 09 | 2f 2f 20 67 72 6f 77 20 |ex ).{..|// grow |
|00003760| 74 68 65 20 68 61 6e 64 | 6c 65 20 62 79 20 6f 6e |the hand|le by on|
|00003770| 65 20 65 6c 65 6d 65 6e | 74 2c 20 6d 6f 76 69 6e |e elemen|t, movin|
|00003780| 67 20 69 74 65 6d 73 20 | 61 62 6f 76 65 20 3c 69 |g items |above <i|
|00003790| 6e 64 65 78 3e 20 75 70 | 20 6f 6e 65 2e 20 54 68 |ndex> up| one. Th|
|000037a0| 69 73 20 61 6c 73 6f 0d | 09 2f 2f 20 73 65 74 73 |is also.|.// sets|
|000037b0| 20 74 68 65 20 6e 75 6d | 45 6c 65 6d 65 6e 74 73 | the num|Elements|
|000037c0| 20 64 61 74 61 20 6d 65 | 6d 62 65 72 2e 20 49 6e | data me|mber. In|
|000037d0| 64 65 78 20 69 73 20 7a | 65 72 6f 2d 62 61 73 65 |dex is z|ero-base|
|000037e0| 64 2e 0d 09 0d 09 6c 6f | 6e 67 09 6e 65 77 53 69 |d.....lo|ng.newSi|
|000037f0| 7a 65 3b 0d 09 0d 09 2f | 2f 20 63 68 65 63 6b 20 |ze;..../|/ check |
|00003800| 74 68 61 74 20 74 68 65 | 20 69 6e 64 65 78 20 70 |that the| index p|
|00003810| 61 72 61 6d 65 74 65 72 | 20 69 73 20 73 65 6e 73 |arameter| is sens|
|00003820| 69 62 6c 65 0d 09 0d 09 | 41 53 53 45 52 54 28 20 |ible....|ASSERT( |
|00003830| 22 49 6e 64 65 78 20 6f | 75 74 20 6f 66 20 72 61 |"Index o|ut of ra|
|00003840| 6e 67 65 3b 20 5a 41 72 | 72 61 79 3a 3a 49 6e 73 |nge; ZAr|ray::Ins|
|00003850| 65 72 74 45 6c 65 6d 65 | 6e 74 22 2c 20 20 69 6e |ertEleme|nt", in|
|00003860| 64 65 78 20 3e 3d 20 30 | 20 26 26 20 69 6e 64 65 |dex >= 0| && inde|
|00003870| 78 20 3c 3d 20 6e 75 6d | 45 6c 65 6d 65 6e 74 73 |x <= num|Elements|
|00003880| 2c 20 69 6e 64 65 78 20 | 29 0d 09 0d 09 2f 2f 20 |, index |)....// |
|00003890| 67 72 6f 77 20 74 68 65 | 20 68 61 6e 64 6c 65 20 |grow the| handle |
|000038a0| 69 66 20 74 68 65 20 6e | 75 6d 62 65 72 20 6f 66 |if the n|umber of|
|000038b0| 20 70 68 79 73 69 63 61 | 6c 20 62 6c 6f 63 6b 73 | physica|l blocks|
|000038c0| 20 69 73 20 69 6e 73 75 | 66 66 69 63 69 65 6e 74 | is insu|fficient|
|000038d0| 0d 09 0d 09 6e 65 77 53 | 69 7a 65 20 3d 20 28 20 |....newS|ize = ( |
|000038e0| 6e 75 6d 45 6c 65 6d 65 | 6e 74 73 20 2b 20 31 20 |numEleme|nts + 1 |
|000038f0| 29 20 2a 20 62 6c 6b 53 | 69 7a 65 3b 0d 09 0d 09 |) * blkS|ize;....|
|00003900| 69 66 20 28 20 6e 65 77 | 53 69 7a 65 20 3e 20 28 |if ( new|Size > (|
|00003910| 20 70 68 79 73 69 63 61 | 6c 42 6c 6b 73 20 2a 20 | physica|lBlks * |
|00003920| 62 6c 6b 53 69 7a 65 20 | 29 29 0d 09 7b 0d 09 09 |blkSize |))..{...|
|00003930| 70 68 79 73 69 63 61 6c | 42 6c 6b 73 20 2b 3d 20 |physical|Blks += |
|00003940| 6b 4e 75 6d 50 68 79 73 | 69 63 61 6c 42 6c 6f 63 |kNumPhys|icalBloc|
|00003950| 6b 41 6c 6c 6f 63 3b 0d | 09 09 0d 09 09 53 65 74 |kAlloc;.|.....Set|
|00003960| 48 61 6e 64 6c 65 53 69 | 7a 65 28 20 61 2c 20 70 |HandleSi|ze( a, p|
|00003970| 68 79 73 69 63 61 6c 42 | 6c 6b 73 20 2a 20 62 6c |hysicalB|lks * bl|
|00003980| 6b 53 69 7a 65 20 29 3b | 0d 09 09 46 61 69 6c 4f |kSize );|...FailO|
|00003990| 53 45 72 72 28 4d 65 6d | 45 72 72 6f 72 28 29 29 |SErr(Mem|Error())|
|000039a0| 3b 0d 09 7d 0d 09 0d 09 | 2f 2f 20 4f 4b 2c 20 74 |;..}....|// OK, t|
|000039b0| 68 65 20 68 61 6e 64 6c | 65 20 69 73 20 6e 6f 77 |he handl|e is now|
|000039c0| 20 6c 61 72 67 65 72 20 | 62 79 20 6f 6e 65 20 65 | larger |by one e|
|000039d0| 6c 65 6d 65 6e 74 2d 20 | 64 6f 20 77 65 20 6e 65 |lement- |do we ne|
|000039e0| 65 64 20 74 6f 20 6d 6f | 76 65 20 61 6e 79 20 64 |ed to mo|ve any d|
|000039f0| 61 74 61 20 61 72 6f 75 | 6e 64 3f 0d 09 0d 09 69 |ata arou|nd?....i|
|00003a00| 66 20 28 69 6e 64 65 78 | 20 3c 20 6e 75 6d 45 6c |f (index| < numEl|
|00003a10| 65 6d 65 6e 74 73 29 0d | 09 7b 0d 09 09 2f 2f 20 |ements).|.{...// |
|00003a20| 79 65 73 2c 20 73 75 62 | 73 65 71 75 65 6e 74 20 |yes, sub|sequent |
|00003a30| 65 6e 74 72 69 65 73 20 | 6d 6f 76 65 20 75 70 20 |entries |move up |
|00003a40| 62 79 20 3c 62 6c 6b 53 | 69 7a 65 3e 20 62 79 74 |by <blkS|ize> byt|
|00003a50| 65 73 0d 09 09 0d 09 09 | 48 4c 6f 63 6b 28 20 61 |es......|HLock( a|
|00003a60| 20 29 3b 0d 09 09 42 6c | 6f 63 6b 4d 6f 76 65 44 | );...Bl|ockMoveD|
|00003a70| 61 74 61 28 09 2a 61 20 | 2b 20 28 62 6c 6b 53 69 |ata(.*a |+ (blkSi|
|00003a80| 7a 65 20 2a 20 69 6e 64 | 65 78 29 2c 0d 09 09 09 |ze * ind|ex),....|
|00003a90| 09 09 09 2a 61 20 2b 20 | 28 62 6c 6b 53 69 7a 65 |...*a + |(blkSize|
|00003aa0| 20 2a 20 28 69 6e 64 65 | 78 20 2b 20 31 29 29 2c | * (inde|x + 1)),|
|00003ab0| 0d 09 09 09 09 09 09 62 | 6c 6b 53 69 7a 65 20 2a |.......b|lkSize *|
|00003ac0| 20 28 6e 75 6d 45 6c 65 | 6d 65 6e 74 73 20 2d 20 | (numEle|ments - |
|00003ad0| 69 6e 64 65 78 29 29 3b | 0d 09 09 48 55 6e 6c 6f |index));|...HUnlo|
|00003ae0| 63 6b 28 20 61 20 29 3b | 0d 09 7d 0d 09 0d 09 2f |ck( a );|..}..../|
|00003af0| 2f 20 69 6e 63 72 65 6d | 65 6e 74 20 74 68 65 20 |/ increm|ent the |
|00003b00| 63 6f 75 6e 74 20 6f 66 | 20 65 6c 65 6d 65 6e 74 |count of| element|
|00003b10| 73 0d 09 0d 09 6e 75 6d | 45 6c 65 6d 65 6e 74 73 |s....num|Elements|
|00003b20| 2b 2b 3b 0d 7d 0d 0d 2f | 2a 2d 2d 2d 2d 2d 2d 2d |++;.}../|*-------|
|00003b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b40| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2a 2a 20 20 44 45 4c |--------|*** DEL|
|00003b50| 45 54 45 45 4c 45 4d 45 | 4e 54 20 20 2a 2a 2a 2d |ETEELEME|NT ***-|
|00003b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|00003b80| 2f 0d 2f 2a 09 0d 72 65 | 6d 6f 76 65 20 73 70 61 |/./*..re|move spa|
|00003b90| 63 65 20 66 6f 72 20 6f | 6e 65 20 65 6c 65 6d 65 |ce for o|ne eleme|
|00003ba0| 6e 74 20 69 6e 20 74 68 | 65 20 68 61 6e 64 6c 65 |nt in th|e handle|
|00003bb0| 0d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.-------|--------|
|00003bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003c00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2f 0d 0d 76 6f 69 |--------|-*/..voi|
|00003c10| 64 09 5a 41 72 72 61 79 | 3a 3a 44 65 6c 65 74 65 |d.ZArray|::Delete|
|00003c20| 45 6c 65 6d 65 6e 74 28 | 20 63 6f 6e 73 74 20 6c |Element(| const l|
|00003c30| 6f 6e 67 20 69 6e 64 65 | 78 20 29 0d 7b 0d 09 2f |ong inde|x ).{../|
|00003c40| 2f 20 73 68 72 69 6e 6b | 20 74 68 65 20 68 61 6e |/ shrink| the han|
|00003c50| 64 6c 65 20 62 79 20 6f | 6e 65 20 65 6c 65 6d 65 |dle by o|ne eleme|
|00003c60| 6e 74 2c 20 61 66 74 65 | 72 20 6d 6f 76 69 6e 67 |nt, afte|r moving|
|00003c70| 20 65 6e 74 72 69 65 73 | 20 61 62 6f 76 65 20 3c | entries| above <|
|00003c80| 69 6e 64 65 78 3e 20 64 | 6f 77 6e 20 62 79 20 6f |index> d|own by o|
|00003c90| 6e 65 2e 0d 09 2f 2f 20 | 3c 69 6e 64 65 78 3e 20 |ne...// |<index> |
|00003ca0| 69 73 20 7a 65 72 6f 2d | 62 61 73 65 64 2e 0d 09 |is zero-|based...|
|00003cb0| 0d 09 2f 2f 20 63 68 65 | 63 6b 20 74 68 61 74 20 |..// che|ck that |
|00003cc0| 74 68 65 20 69 6e 64 65 | 78 20 70 61 72 61 6d 65 |the inde|x parame|
|00003cd0| 74 65 72 20 69 73 20 73 | 65 6e 73 69 62 6c 65 0d |ter is s|ensible.|
|00003ce0| 09 0d 09 41 53 53 45 52 | 54 28 20 22 49 6e 64 65 |...ASSER|T( "Inde|
|00003cf0| 78 20 6f 75 74 20 6f 66 | 20 72 61 6e 67 65 3b 20 |x out of| range; |
|00003d00| 5a 41 72 72 61 79 3a 3a | 44 65 6c 65 74 65 45 6c |ZArray::|DeleteEl|
|00003d10| 65 6d 65 6e 74 22 2c 20 | 20 69 6e 64 65 78 20 3e |ement", | index >|
|00003d20| 3d 20 30 20 26 26 20 69 | 6e 64 65 78 20 3c 20 6e |= 0 && i|ndex < n|
|00003d30| 75 6d 45 6c 65 6d 65 6e | 74 73 2c 20 69 6e 64 65 |umElemen|ts, inde|
|00003d40| 78 20 29 09 09 0d 09 0d | 09 2f 2f 20 6f 6e 65 20 |x ).....|.// one |
|00003d50| 6c 65 73 73 20 65 6c 65 | 6d 65 6e 74 0d 09 0d 09 |less ele|ment....|
|00003d60| 6e 75 6d 45 6c 65 6d 65 | 6e 74 73 2d 2d 3b 0d 09 |numEleme|nts--;..|
|00003d70| 09 0d 09 2f 2f 20 69 66 | 20 74 68 65 20 69 6e 64 |...// if| the ind|
|00003d80| 65 78 20 69 73 20 6e 6f | 74 20 74 68 65 20 6c 61 |ex is no|t the la|
|00003d90| 73 74 20 69 74 65 6d 2c | 20 6d 6f 76 65 20 65 76 |st item,| move ev|
|00003da0| 65 72 79 74 68 69 6e 67 | 20 64 6f 77 6e 20 74 6f |erything| down to|
|00003db0| 20 66 69 6c 6c 20 74 68 | 65 20 73 70 61 63 65 0d | fill th|e space.|
|00003dc0| 09 0d 09 69 66 20 28 69 | 6e 64 65 78 20 3c 20 6e |...if (i|ndex < n|
|00003dd0| 75 6d 45 6c 65 6d 65 6e | 74 73 29 0d 09 7b 0d 09 |umElemen|ts)..{..|
|00003de0| 09 48 4c 6f 63 6b 28 20 | 61 20 29 3b 0d 09 09 42 |.HLock( |a );...B|
|00003df0| 6c 6f 63 6b 4d 6f 76 65 | 44 61 74 61 28 09 2a 61 |lockMove|Data(.*a|
|00003e00| 20 2b 20 28 62 6c 6b 53 | 69 7a 65 20 2a 20 28 69 | + (blkS|ize * (i|
|00003e10| 6e 64 65 78 20 2b 20 31 | 29 29 2c 0d 09 09 09 09 |ndex + 1|)),.....|
|00003e20| 09 09 2a 61 20 2b 20 28 | 62 6c 6b 53 69 7a 65 20 |..*a + (|blkSize |
|00003e30| 2a 20 69 6e 64 65 78 29 | 2c 0d 09 09 09 09 09 09 |* index)|,.......|
|00003e40| 62 6c 6b 53 69 7a 65 20 | 2a 20 28 6e 75 6d 45 6c |blkSize |* (numEl|
|00003e50| 65 6d 65 6e 74 73 20 2d | 20 69 6e 64 65 78 20 2b |ements -| index +|
|00003e60| 20 31 29 29 3b 0d 09 09 | 48 55 6e 6c 6f 63 6b 28 | 1));...|HUnlock(|
|00003e70| 20 61 20 29 3b 0d 09 7d | 0d 09 0d 09 2f 2f 20 73 | a );..}|....// s|
|00003e80| 68 72 69 6e 6b 20 74 68 | 65 20 68 61 6e 64 6c 65 |hrink th|e handle|
|00003e90| 20 69 66 20 77 65 20 63 | 61 6e 20 72 65 6d 6f 76 | if we c|an remov|
|00003ea0| 65 20 61 20 77 68 6f 6c | 65 20 6d 75 6c 74 69 70 |e a whol|e multip|
|00003eb0| 6c 65 20 6f 66 20 70 68 | 79 73 69 63 61 6c 20 62 |le of ph|ysical b|
|00003ec0| 6c 6f 63 6b 73 0d 09 0d | 09 69 66 20 28 28 20 70 |locks...|.if (( p|
|00003ed0| 68 79 73 69 63 61 6c 42 | 6c 6b 73 20 2d 20 6e 75 |hysicalB|lks - nu|
|00003ee0| 6d 45 6c 65 6d 65 6e 74 | 73 20 29 20 3e 20 6b 4e |mElement|s ) > kN|
|00003ef0| 75 6d 50 68 79 73 69 63 | 61 6c 42 6c 6f 63 6b 41 |umPhysic|alBlockA|
|00003f00| 6c 6c 6f 63 20 29 0d 09 | 7b 0d 09 09 70 68 79 73 |lloc )..|{...phys|
|00003f10| 69 63 61 6c 42 6c 6b 73 | 20 3d 20 4d 41 58 28 20 |icalBlks| = MAX( |
|00003f20| 30 2c 20 70 68 79 73 69 | 63 61 6c 42 6c 6b 73 20 |0, physi|calBlks |
|00003f30| 2d 20 6b 4e 75 6d 50 68 | 79 73 69 63 61 6c 42 6c |- kNumPh|ysicalBl|
|00003f40| 6f 63 6b 41 6c 6c 6f 63 | 20 29 3b 0d 09 09 53 65 |ockAlloc| );...Se|
|00003f50| 74 48 61 6e 64 6c 65 53 | 69 7a 65 28 20 61 2c 20 |tHandleS|ize( a, |
|00003f60| 62 6c 6b 53 69 7a 65 20 | 2a 20 70 68 79 73 69 63 |blkSize |* physic|
|00003f70| 61 6c 42 6c 6b 73 20 29 | 3b 0d 09 7d 0d 7d 0d 0d |alBlks )|;..}.}..|
|00003f80| 0d 2f 2a 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |./*-----|--------|
|00003f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003fa0| 2d 2d 2d 2d 2a 2a 2a 20 | 20 42 46 49 4e 44 49 4e |----*** | BFINDIN|
|00003fb0| 44 45 58 20 20 2a 2a 2a | 2d 2d 2d 2d 2d 2d 2d 2d |DEX ***|--------|
|00003fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2f 0d 2f 2a 09 0d |--------|-*/./*..|
|00003fe0| 75 73 65 20 74 68 65 20 | 63 6f 6d 70 61 72 65 20 |use the |compare |
|00003ff0| 66 75 6e 63 74 69 6f 6e | 20 74 6f 20 64 65 74 65 |function| to dete|
|00004000| 72 6d 69 6e 65 20 77 68 | 65 72 65 20 74 68 65 20 |rmine wh|ere the |
|00004010| 69 74 65 6d 20 53 48 4f | 55 4c 44 20 62 65 20 69 |item SHO|ULD be i|
|00004020| 6e 73 65 72 74 65 64 20 | 28 62 69 6e 61 72 79 20 |nserted |(binary |
|00004030| 73 65 61 72 63 68 29 0d | 2d 2d 2d 2d 2d 2d 2d 2d |search).|--------|
|00004040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004060| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004090| 2a 2f 0d 0d 6c 6f 6e 67 | 09 5a 41 72 72 61 79 3a |*/..long|.ZArray:|
|000040a0| 3a 42 46 69 6e 64 49 6e | 64 65 78 28 20 76 6f 69 |:BFindIn|dex( voi|
|000040b0| 64 2a 20 69 74 65 6d 2c | 20 53 6f 72 74 43 6d 70 |d* item,| SortCmp|
|000040c0| 50 72 6f 63 50 74 72 20 | 63 6f 6d 70 61 72 65 50 |ProcPtr |compareP|
|000040d0| 72 6f 63 2c 20 63 6f 6e | 73 74 20 6c 6f 6e 67 20 |roc, con|st long |
|000040e0| 72 65 66 20 29 0d 7b 0d | 09 75 6e 73 69 67 6e 65 |ref ).{.|.unsigne|
|000040f0| 64 20 6c 6f 6e 67 09 6c | 6f 77 49 74 65 6d 2c 20 |d long.l|owItem, |
|00004100| 68 69 67 68 49 74 65 6d | 2c 20 6d 69 64 49 74 65 |highItem|, midIte|
|00004110| 6d 2c 20 70 6f 73 20 3d | 20 31 3b 0d 09 73 68 6f |m, pos =| 1;..sho|
|00004120| 72 74 09 09 09 63 6f 6d | 70 61 72 65 3b 0d 09 76 |rt...com|pare;..v|
|00004130| 6f 69 64 2a 09 09 09 69 | 74 65 6d 42 3b 0d 09 0d |oid*...i|temB;...|
|00004140| 09 46 61 69 6c 4e 49 4c | 50 61 72 61 6d 28 20 63 |.FailNIL|Param( c|
|00004150| 6f 6d 70 61 72 65 50 72 | 6f 63 20 29 3b 0d 09 0d |omparePr|oc );...|
|00004160| 09 6c 6f 77 49 74 65 6d | 20 3d 20 31 3b 0d 09 68 |.lowItem| = 1;..h|
|00004170| 69 67 68 49 74 65 6d 20 | 3d 20 6e 75 6d 45 6c 65 |ighItem |= numEle|
|00004180| 6d 65 6e 74 73 3b 0d 09 | 0d 09 2f 2f 20 69 66 20 |ments;..|..// if |
|00004190| 74 68 65 20 6c 69 73 74 | 20 69 73 20 65 6d 70 74 |the list| is empt|
|000041a0| 79 2c 20 77 65 20 72 65 | 74 75 72 6e 20 69 74 65 |y, we re|turn ite|
|000041b0| 6d 20 31 2c 20 73 69 6e | 63 65 20 77 65 20 63 61 |m 1, sin|ce we ca|
|000041c0| 6e 20 73 69 6d 70 6c 79 | 20 61 70 70 65 6e 64 20 |n simply| append |
|000041d0| 74 68 65 20 69 74 65 6d | 2e 0d 09 0d 09 69 66 20 |the item|.....if |
|000041e0| 28 20 6e 75 6d 45 6c 65 | 6d 65 6e 74 73 20 3c 20 |( numEle|ments < |
|000041f0| 31 20 29 0d 09 09 70 6f | 73 20 3d 20 30 3b 0d 09 |1 )...po|s = 0;..|
|00004200| 65 6c 73 65 0d 09 7b 0d | 09 09 2f 2f 20 6d 61 6b |else..{.|..// mak|
|00004210| 65 20 73 70 61 63 65 20 | 66 6f 72 20 74 68 65 20 |e space |for the |
|00004220| 69 74 65 6d 20 77 65 20 | 61 72 65 20 67 6f 69 6e |item we |are goin|
|00004230| 67 20 74 6f 20 63 6f 6d | 70 61 72 65 0d 09 09 0d |g to com|pare....|
|00004240| 09 09 46 61 69 6c 4e 49 | 4c 28 20 69 74 65 6d 42 |..FailNI|L( itemB|
|00004250| 20 3d 20 28 76 6f 69 64 | 2a 29 20 4e 65 77 50 74 | = (void|*) NewPt|
|00004260| 72 28 20 62 6c 6b 53 69 | 7a 65 20 29 29 3b 0d 09 |r( blkSi|ze ));..|
|00004270| 09 0d 09 09 77 68 69 6c | 65 20 28 20 6c 6f 77 49 |....whil|e ( lowI|
|00004280| 74 65 6d 20 3c 3d 20 68 | 69 67 68 49 74 65 6d 20 |tem <= h|ighItem |
|00004290| 29 0d 09 09 7b 0d 09 09 | 09 6d 69 64 49 74 65 6d |)...{...|.midItem|
|000042a0| 20 3d 20 28 20 68 69 67 | 68 49 74 65 6d 20 2b 20 | = ( hig|hItem + |
|000042b0| 6c 6f 77 49 74 65 6d 20 | 29 20 3e 3e 20 31 3b 0d |lowItem |) >> 1;.|
|000042c0| 09 09 09 0d 09 09 09 47 | 65 74 41 72 72 61 79 49 |.......G|etArrayI|
|000042d0| 74 65 6d 28 20 69 74 65 | 6d 42 2c 20 6d 69 64 49 |tem( ite|mB, midI|
|000042e0| 74 65 6d 20 29 3b 0d 09 | 09 09 0d 09 09 09 2f 2f |tem );..|......//|
|000042f0| 20 63 6f 6d 70 61 72 65 | 20 74 68 69 73 20 69 74 | compare| this it|
|00004300| 65 6d 20 74 6f 20 74 68 | 65 20 6f 6e 65 20 77 65 |em to th|e one we|
|00004310| 20 61 72 65 20 6c 6f 6f | 6b 69 6e 67 20 66 6f 72 | are loo|king for|
|00004320| 0d 09 09 09 0d 09 09 09 | 63 6f 6d 70 61 72 65 20 |........|compare |
|00004330| 3d 20 28 2a 63 6f 6d 70 | 61 72 65 50 72 6f 63 29 |= (*comp|areProc)|
|00004340| 28 20 69 74 65 6d 2c 20 | 69 74 65 6d 42 2c 20 72 |( item, |itemB, r|
|00004350| 65 66 20 29 3b 0d 09 09 | 09 0d 09 09 09 2f 2f 20 |ef );...|.....// |
|00004360| 69 66 20 61 6e 20 65 78 | 61 63 74 20 6d 61 74 63 |if an ex|act matc|
|00004370| 68 2c 20 74 68 65 6e 20 | 69 6e 73 65 72 74 20 72 |h, then |insert r|
|00004380| 69 67 68 74 20 68 65 72 | 65 0d 09 09 09 0d 09 09 |ight her|e.......|
|00004390| 09 69 66 20 28 20 63 6f | 6d 70 61 72 65 20 3d 3d |.if ( co|mpare ==|
|000043a0| 20 30 20 29 0d 09 09 09 | 09 62 72 65 61 6b 3b 0d | 0 )....|.break;.|
|000043b0| 09 09 09 09 0d 09 09 09 | 2f 2f 20 6f 74 68 65 72 |........|// other|
|000043c0| 77 69 73 65 20 73 65 61 | 72 63 68 20 68 61 6c 66 |wise sea|rch half|
|000043d0| 20 74 68 65 20 6c 69 73 | 74 0d 09 09 09 0d 09 09 | the lis|t.......|
|000043e0| 09 69 66 20 28 20 63 6f | 6d 70 61 72 65 20 3e 20 |.if ( co|mpare > |
|000043f0| 30 20 29 0d 09 09 09 09 | 6c 6f 77 49 74 65 6d 20 |0 ).....|lowItem |
|00004400| 3d 20 6d 69 64 49 74 65 | 6d 20 2b 20 31 3b 0d 09 |= midIte|m + 1;..|
|00004410| 09 09 65 6c 73 65 0d 09 | 09 09 09 68 69 67 68 49 |..else..|...highI|
|00004420| 74 65 6d 20 3d 20 6d 69 | 64 49 74 65 6d 20 2d 20 |tem = mi|dItem - |
|00004430| 31 3b 0d 09 09 7d 0d 09 | 09 0d 09 09 44 69 73 70 |1;...}..|....Disp|
|00004440| 6f 73 65 50 74 72 28 28 | 50 74 72 29 20 69 74 65 |osePtr((|Ptr) ite|
|00004450| 6d 42 20 29 3b 0d 09 09 | 70 6f 73 20 3d 20 4d 41 |mB );...|pos = MA|
|00004460| 58 28 20 6d 69 64 49 74 | 65 6d 2c 20 31 20 29 3b |X( midIt|em, 1 );|
|00004470| 0d 09 7d 0d 09 0d 09 72 | 65 74 75 72 6e 20 70 6f |..}....r|eturn po|
|00004480| 73 3b 0d 7d 0d 0d 0d 2f | 2a 2d 2d 2d 2d 2d 2d 2d |s;.}.../|*-------|
|00004490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044a0| 2d 2d 2d 2d 2d 2d 2d 2a | 2a 2a 20 20 52 45 41 44 |-------*|** READ|
|000044b0| 46 52 4f 4d 53 54 52 45 | 41 4d 20 20 2a 2a 2a 2d |FROMSTRE|AM ***-|
|000044c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000044d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|000044e0| 2f 0d 2f 2a 09 0d 72 65 | 62 75 69 6c 64 2f 69 6e |/./*..re|build/in|
|000044f0| 69 74 69 61 6c 69 73 65 | 20 61 72 72 61 79 20 66 |itialise| array f|
|00004500| 72 6f 6d 20 73 74 72 65 | 61 6d 2e 20 54 68 69 73 |rom stre|am. This|
|00004510| 20 6f 76 65 72 77 72 69 | 74 65 73 2f 72 65 6d 6f | overwri|tes/remo|
|00004520| 76 65 73 20 61 6e 79 20 | 65 78 69 73 74 69 6e 67 |ves any |existing|
|00004530| 20 63 6f 6e 74 65 6e 74 | 73 2e 0d 2d 2d 2d 2d 2d | content|s..-----|
|00004540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004590| 2d 2d 2d 2a 2f 0d 0d 76 | 6f 69 64 09 5a 41 72 72 |---*/..v|oid.ZArr|
|000045a0| 61 79 3a 3a 52 65 61 64 | 46 72 6f 6d 53 74 72 65 |ay::Read|FromStre|
|000045b0| 61 6d 28 20 5a 53 74 72 | 65 61 6d 2a 20 61 53 74 |am( ZStr|eam* aSt|
|000045c0| 72 65 61 6d 20 29 0d 7b | 0d 23 69 66 20 5f 4d 41 |ream ).{|.#if _MA|
|000045d0| 43 5a 4f 4f 50 5f 53 54 | 52 45 41 4d 53 0d 09 5a |CZOOP_ST|REAMS..Z|
|000045e0| 43 6f 6d 72 61 64 65 3a | 3a 52 65 61 64 46 72 6f |Comrade:|:ReadFro|
|000045f0| 6d 53 74 72 65 61 6d 28 | 20 61 53 74 72 65 61 6d |mStream(| aStream|
|00004600| 20 29 3b 0d 09 0d 09 2f | 2f 20 72 65 61 64 20 61 | );..../|/ read a|
|00004610| 72 72 61 79 20 64 61 74 | 61 20 69 74 65 6d 73 20 |rray dat|a items |
|00004620| 66 72 6f 6d 20 74 68 65 | 20 73 74 72 65 61 6d 2e |from the| stream.|
|00004630| 20 46 69 72 73 74 20 69 | 74 65 6d 20 69 73 20 62 | First i|tem is b|
|00004640| 6c 6f 63 6b 20 73 69 7a | 65 2c 20 74 68 65 6e 20 |lock siz|e, then |
|00004650| 63 6f 75 6e 74 2e 0d 09 | 0d 09 61 53 74 72 65 61 |count...|..aStrea|
|00004660| 6d 2d 3e 52 65 61 64 4c | 6f 6e 67 28 20 26 62 6c |m->ReadL|ong( &bl|
|00004670| 6b 53 69 7a 65 20 29 3b | 0d 09 61 53 74 72 65 61 |kSize );|..aStrea|
|00004680| 6d 2d 3e 52 65 61 64 4c | 6f 6e 67 28 20 26 6e 75 |m->ReadL|ong( &nu|
|00004690| 6d 45 6c 65 6d 65 6e 74 | 73 20 29 3b 0d 09 0d 09 |mElement|s );....|
|000046a0| 2f 2f 20 69 66 20 6e 75 | 6d 20 65 6c 65 6d 65 6e |// if nu|m elemen|
|000046b0| 74 73 20 69 73 20 6e 6f | 74 20 30 2c 20 72 65 61 |ts is no|t 0, rea|
|000046c0| 64 20 64 61 74 61 20 69 | 6e 74 6f 20 61 72 72 61 |d data i|nto arra|
|000046d0| 79 27 73 20 73 74 6f 72 | 61 67 65 20 68 61 6e 64 |y's stor|age hand|
|000046e0| 6c 65 0d 09 0d 09 69 66 | 20 28 20 6e 75 6d 45 6c |le....if| ( numEl|
|000046f0| 65 6d 65 6e 74 73 20 3e | 20 30 20 29 0d 09 7b 0d |ements >| 0 )..{.|
|00004700| 09 09 69 66 20 28 20 61 | 20 29 0d 09 09 09 44 69 |..if ( a| )....Di|
|00004710| 73 70 6f 73 65 48 61 6e | 64 6c 65 28 20 61 20 29 |sposeHan|dle( a )|
|00004720| 3b 0d 09 09 0d 09 09 61 | 53 74 72 65 61 6d 2d 3e |;......a|Stream->|
|00004730| 52 65 61 64 48 61 6e 64 | 6c 65 28 20 26 61 20 29 |ReadHand|le( &a )|
|00004740| 3b 0d 09 09 0d 09 09 2f | 2f 20 74 68 65 20 6e 75 |;....../|/ the nu|
|00004750| 6d 62 65 72 20 6f 66 20 | 70 68 79 69 63 61 6c 20 |mber of |phyical |
|00004760| 62 6c 6f 63 6b 73 20 6e | 65 65 64 73 20 74 6f 20 |blocks n|eeds to |
|00004770| 62 65 20 61 64 6a 75 73 | 74 65 64 20 74 6f 20 74 |be adjus|ted to t|
|00004780| 68 69 73 20 73 69 7a 65 | 2e 0d 09 09 2f 2f 20 57 |his size|....// W|
|00004790| 65 20 64 6f 20 6e 6f 74 | 20 62 6f 74 68 65 72 20 |e do not| bother |
|000047a0| 72 6f 75 6e 64 69 6e 67 | 20 74 68 69 73 20 75 70 |rounding| this up|
|000047b0| 20 74 6f 20 61 20 77 68 | 6f 6c 65 20 6d 75 6c 74 | to a wh|ole mult|
|000047c0| 69 70 6c 65 20 6f 66 0d | 09 09 2f 2f 20 74 68 65 |iple of.|..// the|
|000047d0| 20 70 68 79 73 69 63 61 | 6c 20 62 6c 6f 63 6b 20 | physica|l block |
|000047e0| 63 6f 75 6e 74 2d 20 69 | 74 27 6c 6c 20 77 6f 72 |count- i|t'll wor|
|000047f0| 6b 20 61 6e 79 77 61 79 | 2e 0d 09 09 0d 09 09 70 |k anyway|.......p|
|00004800| 68 79 73 69 63 61 6c 42 | 6c 6b 73 20 3d 20 47 65 |hysicalB|lks = Ge|
|00004810| 74 48 61 6e 64 6c 65 53 | 69 7a 65 28 20 61 20 29 |tHandleS|ize( a )|
|00004820| 20 2f 20 62 6c 6b 53 69 | 7a 65 3b 0d 09 7d 0d 23 | / blkSi|ze;..}.#|
|00004830| 65 6e 64 69 66 0d 7d 0d | 0d 0d 2f 2a 2d 2d 2d 2d |endif.}.|../*----|
|00004840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2a 2a 20 20 |--------|---*** |
|00004860| 57 52 49 54 45 54 4f 53 | 54 52 45 41 4d 20 20 2a |WRITETOS|TREAM *|
|00004870| 2a 2a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |**------|--------|
|00004880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004890| 2d 2d 2a 2f 0d 2f 2a 09 | 0d 77 72 69 74 65 20 65 |--*/./*.|.write e|
|000048a0| 6e 74 69 72 65 20 61 72 | 72 61 79 20 6f 62 6a 65 |ntire ar|ray obje|
|000048b0| 63 74 20 74 6f 20 73 74 | 72 65 61 6d 0d 2d 2d 2d |ct to st|ream.---|
|000048c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000048d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000048e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000048f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004910| 2d 2d 2d 2d 2d 2a 2f 0d | 0d 76 6f 69 64 09 5a 41 |-----*/.|.void.ZA|
|00004920| 72 72 61 79 3a 3a 57 72 | 69 74 65 54 6f 53 74 72 |rray::Wr|iteToStr|
|00004930| 65 61 6d 28 20 5a 53 74 | 72 65 61 6d 2a 20 61 53 |eam( ZSt|ream* aS|
|00004940| 74 72 65 61 6d 20 29 0d | 7b 0d 23 69 66 20 5f 4d |tream ).|{.#if _M|
|00004950| 41 43 5a 4f 4f 50 5f 53 | 54 52 45 41 4d 53 0d 09 |ACZOOP_S|TREAMS..|
|00004960| 5a 43 6f 6d 72 61 64 65 | 3a 3a 57 72 69 74 65 54 |ZComrade|::WriteT|
|00004970| 6f 53 74 72 65 61 6d 28 | 20 61 53 74 72 65 61 6d |oStream(| aStream|
|00004980| 20 29 3b 0d 09 0d 09 2f | 2f 20 77 72 69 74 65 20 | );..../|/ write |
|00004990| 61 6c 6c 20 74 68 65 20 | 61 72 72 61 79 20 69 74 |all the |array it|
|000049a0| 65 6d 73 20 74 6f 20 74 | 68 65 20 73 74 72 65 61 |ems to t|he strea|
|000049b0| 6d 2e 0d 09 0d 09 6c 6f | 6e 67 09 69 2c 20 6e 75 |m.....lo|ng.i, nu|
|000049c0| 6d 49 74 65 6d 73 3b 0d | 09 76 6f 69 64 2a 09 74 |mItems;.|.void*.t|
|000049d0| 65 6d 70 3b 0d 09 0d 09 | 6e 75 6d 49 74 65 6d 73 |emp;....|numItems|
|000049e0| 20 3d 20 43 6f 75 6e 74 | 49 74 65 6d 73 28 29 3b | = Count|Items();|
|000049f0| 0d 09 0d 09 2f 2f 20 66 | 69 72 73 74 20 74 77 6f |....// f|irst two|
|00004a00| 20 69 74 65 6d 73 20 69 | 6e 20 73 74 72 65 61 6d | items i|n stream|
|00004a10| 20 61 72 65 20 62 6c 6f | 63 6b 20 73 69 7a 65 20 | are blo|ck size |
|00004a20| 61 6e 64 20 69 74 65 6d | 20 63 6f 75 6e 74 0d 09 |and item| count..|
|00004a30| 0d 09 61 53 74 72 65 61 | 6d 2d 3e 57 72 69 74 65 |..aStrea|m->Write|
|00004a40| 4c 6f 6e 67 28 20 62 6c | 6b 53 69 7a 65 20 29 3b |Long( bl|kSize );|
|00004a50| 0d 09 61 53 74 72 65 61 | 6d 2d 3e 57 72 69 74 65 |..aStrea|m->Write|
|00004a60| 4c 6f 6e 67 28 20 6e 75 | 6d 49 74 65 6d 73 20 29 |Long( nu|mItems )|
|00004a70| 3b 0d 09 0d 09 2f 2f 20 | 2e 2e 2e 66 6f 6c 6c 6f |;....// |...follo|
|00004a80| 77 65 64 20 62 79 20 74 | 68 65 20 64 61 74 61 3a |wed by t|he data:|
|00004a90| 0d 09 0d 09 69 66 20 28 | 20 6e 75 6d 49 74 65 6d |....if (| numItem|
|00004aa0| 73 20 3e 20 30 20 29 0d | 09 09 61 53 74 72 65 61 |s > 0 ).|..aStrea|
|00004ab0| 6d 2d 3e 57 72 69 74 65 | 48 61 6e 64 6c 65 28 20 |m->Write|Handle( |
|00004ac0| 61 20 29 3b 0d 23 65 6e | 64 69 66 0d 7d 0d 0d 0d |a );.#en|dif.}...|
|00004ad0| 0d 23 70 72 61 67 6d 61 | 20 6d 61 72 6b 20 2d 0d |.#pragma| mark -.|
|00004ae0| 2f 2a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/*------|--------|
|00004af0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004b00| 2d 2d 2a 2a 2a 20 20 76 | 43 6f 6d 70 61 72 65 46 |--*** v|CompareF|
|00004b10| 75 6e 63 20 20 2a 2a 2a | 2d 2d 2d 2d 2d 2d 2d 2d |unc ***|--------|
|00004b20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2f 0d 0d 73 74 61 74 |--------|*/..stat|
|00004b40| 69 63 20 73 68 6f 72 74 | 09 76 43 6f 6d 70 61 72 |ic short|.vCompar|
|00004b50| 65 46 75 6e 63 28 20 76 | 6f 69 64 2a 20 61 2c 20 |eFunc( v|oid* a, |
|00004b60| 76 6f 69 64 2a 20 62 2c | 20 63 6f 6e 73 74 20 6c |void* b,| const l|
|00004b70| 6f 6e 67 20 72 65 66 29 | 0d 7b 0d 09 5a 41 72 72 |ong ref)|.{..ZArr|
|00004b80| 61 79 2a 09 09 74 68 65 | 41 72 72 61 79 20 3d 20 |ay*..the|Array = |
|00004b90| 28 5a 41 72 72 61 79 2a | 29 20 72 65 66 3b 0d 09 |(ZArray*|) ref;..|
|00004ba0| 0d 09 69 66 20 28 20 74 | 68 65 41 72 72 61 79 20 |..if ( t|heArray |
|00004bb0| 29 0d 09 09 72 65 74 75 | 72 6e 20 74 68 65 41 72 |)...retu|rn theAr|
|00004bc0| 72 61 79 2d 3e 43 6f 6d | 70 61 72 65 28 20 61 2c |ray->Com|pare( a,|
|00004bd0| 20 62 2c 20 72 65 66 20 | 29 3b 09 0d 09 65 6c 73 | b, ref |);...els|
|00004be0| 65 0d 09 09 72 65 74 75 | 72 6e 20 30 3b 0d 7d 0d |e...retu|rn 0;.}.|
|00004bf0| 0d 0d 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004c00| 00 00 01 00 00 00 01 5a | 00 00 00 5a 00 00 00 52 |.......Z|...Z...R|
|00004c10| 50 58 57 4b 59 50 40 3e | 39 17 2f 1b 14 19 1b 40 |PXWKYP@>|9./....@|
|00004c20| 37 11 22 55 68 2b 38 3c | 00 00 08 02 02 09 13 21 |7."Uh+8<|.......!|
|00004c30| 0a 5a 41 72 72 61 79 2e | 63 70 70 61 02 00 00 00 |.ZArray.|cppa....|
|00004c40| 50 61 72 74 53 49 54 21 | 00 00 00 00 00 00 00 00 |PartSIT!|........|
|00004c50| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......|
|00004c60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004c70| 00 00 b3 41 d6 33 00 00 | 00 00 00 00 01 ac 13 0a |...A.3..|........|
|00004c80| 25 1e 18 18 07 2e 68 46 | 56 41 00 00 08 01 00 03 |%.....hF|VA......|
|00004c90| 08 19 0a 28 2a 23 36 3b | 2d 29 27 23 0a 0e 05 00 |...(*#6;|-)'#....|
|00004ca0| 13 13 0f 0e 00 17 30 32 | 4e 37 00 61 5f 00 71 5a |......02|N7.a_.qZ|
|00004cb0| 51 5c 50 32 30 4f 57 9b | e6 e1 cf ca cd cf ba 8c |Q\P20OW.|........|
|00004cc0| 78 9a a5 a4 9b 9b 8f 82 | a8 c0 c0 c2 00 00 11 0b |x.......|........|
|00004cd0| 08 0c 20 2c 29 4b 53 3d | 41 44 33 2c 2f 34 22 0c |.. ,)KS=|AD3,/4".|
|00004ce0| 18 0c 21 15 0e 0b 0a 25 | 5e 21 24 21 00 00 04 01 |..!....%|^!$!....|
|00004cf0| 00 01 0a 0d 09 1f 29 24 | 38 3c 28 23 24 2d 19 03 |......)$|8<(#$-..|
|00004d00| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00004d10| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004d20| 00 00 00 00 00 00 00 02 | 00 04 00 63 01 17 02 80 |........|...c....|
|00004d30| 03 6d 00 63 01 17 02 80 | 03 6d b2 f8 9f eb 00 00 |.m.c....|.m......|
|00004d40| 2c 67 00 00 2c 74 00 00 | 2a d4 01 00 00 00 00 02 |,g..,t..|*.......|
|00004d50| 00 00 00 00 00 04 00 01 | 00 01 00 00 01 00 00 00 |........|........|
|00004d60| 01 5a 00 00 00 5a 00 00 | 00 52 04 63 6a d8 37 74 |.Z...Z..|.R.cj.7t|
|00004d70| 00 00 00 1c 00 52 00 01 | 4d 50 53 52 00 01 00 12 |.....R..|MPSR....|
|00004d80| 4d 57 42 42 00 00 00 2a | 03 ed ff ff 00 00 00 00 |MWBB...*|........|
|00004d90| 00 00 00 00 03 ef ff ff | 00 00 00 4c 00 00 00 00 |........|...L....|
|00004da0| 03 f0 ff ff 00 00 00 52 | 00 00 00 00 00 00 00 00 |.......R|........|
|00004db0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004dc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004dd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004de0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004df0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+