home *** CD-ROM | disk | FTP | other *** search
/ Graphics 16,000 / graphics-16000.iso / msdos / raytrace / pov / pov2.1 / povsrc.sea / POVSRC / SOURCE / POVMalloc.c < prev    next >
MacBinary  |  1993-12-01  |  18.6 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Wed Dec 1 17:12:48 1993, modified Wed Dec 1 17:12:48 1993, creator 'MPS ', type ASCII, 17995 bytes "POVMalloc.c" , at 0x46cb 800 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0b 50 4f 56 4d 61 6c | 6c 6f 63 2e 63 00 00 00 |..POVMal|loc.c...|
|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 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 46 4b 00 | 00 03 20 a9 22 c7 60 a9 |.....FK.|.. .".`.|
|00000060| 22 c7 60 00 00 02 00 00 | 00 00 00 00 00 00 00 00 |".`.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 38 f8 00 00 |........|....8...|
|00000080| 2f 2a 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |/*======|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000d0| 0d 50 72 6f 6a 65 63 74 | 3a 09 50 4f 56 2d 52 61 |.Project|:.POV-Ra|
|000000e0| 79 0d 0d 56 65 72 73 69 | 6f 6e 3a 09 32 2e 31 0d |y..Versi|on:.2.1.|
|000000f0| 0d 46 69 6c 65 3a 09 09 | 50 4f 56 4d 61 6c 6c 6f |.File:..|POVMallo|
|00000100| 63 2e 63 0d 0d 44 65 73 | 63 72 69 70 74 69 6f 6e |c.c..Des|cription|
|00000110| 3a 0d 4c 69 62 72 61 72 | 79 20 72 6f 75 74 69 6e |:.Librar|y routin|
|00000120| 65 73 20 61 6e 64 20 64 | 65 66 69 6e 69 74 69 6f |es and d|efinitio|
|00000130| 6e 73 20 74 6f 20 72 65 | 2d 72 6f 75 74 65 20 74 |ns to re|-route t|
|00000140| 68 65 20 53 74 64 20 43 | 20 6c 69 62 72 61 72 79 |he Std C| library|
|00000150| 0d 63 61 6c 6c 73 20 74 | 6f 20 6d 61 6c 6c 6f 63 |.calls t|o malloc|
|00000160| 2f 66 72 65 65 2c 20 74 | 72 61 63 6b 20 74 68 65 |/free, t|rack the|
|00000170| 6d 2c 20 61 6e 64 20 68 | 61 6e 64 6c 65 20 67 61 |m, and h|andle ga|
|00000180| 72 62 61 67 65 2d 63 6f | 6c 6c 65 63 74 69 6f 6e |rbage-co|llection|
|00000190| 2e 0d 0d 54 68 65 72 65 | 20 61 72 65 20 73 6f 6d |...There| are som|
|000001a0| 65 20 63 6f 6d 70 69 6c | 65 2d 74 69 6d 65 20 66 |e compil|e-time f|
|000001b0| 6c 61 67 73 20 69 6e 20 | 68 65 72 65 20 6f 66 20 |lags in |here of |
|000001c0| 69 6d 70 6f 72 74 61 6e | 63 65 2e 20 20 54 68 65 |importan|ce. The|
|000001d0| 79 0d 61 72 65 20 6e 6f | 74 20 64 65 66 69 6e 65 |y.are no|t define|
|000001e0| 64 20 28 6f 66 66 29 2c | 20 62 75 74 20 69 66 20 |d (off),| but if |
|000001f0| 64 65 66 69 6e 65 64 2c | 20 77 69 6c 6c 20 63 68 |defined,| will ch|
|00000200| 61 6e 67 65 20 74 68 65 | 20 62 65 68 61 76 69 6f |ange the| behavio|
|00000210| 72 0d 6f 66 20 74 68 65 | 20 6d 65 6d 6f 72 79 20 |r.of the| memory |
|00000220| 61 6c 6c 6f 63 61 74 69 | 6f 6e 20 63 6f 64 65 3a |allocati|on code:|
|00000230| 0d 0d 55 53 45 5f 4e 41 | 54 49 56 45 5f 4d 41 4c |..USE_NA|TIVE_MAL|
|00000240| 4c 4f 43 20 2d 20 69 66 | 20 64 65 66 69 6e 65 64 |LOC - if| defined|
|00000250| 2c 20 77 69 6c 6c 20 75 | 73 65 20 74 68 65 20 4d |, will u|se the M|
|00000260| 61 63 27 73 20 4e 65 77 | 50 74 72 28 29 20 63 61 |ac's New|Ptr() ca|
|00000270| 6c 6c 73 0d 69 6e 73 74 | 65 61 64 20 6f 66 20 43 |lls.inst|ead of C|
|00000280| 27 73 20 6d 61 6c 6c 6f | 63 28 29 2e 20 20 54 68 |'s mallo|c(). Th|
|00000290| 69 73 20 74 75 72 6e 73 | 20 6f 75 74 20 74 6f 20 |is turns| out to |
|000002a0| 62 65 20 61 20 6c 69 74 | 74 6c 65 20 73 6c 6f 77 |be a lit|tle slow|
|000002b0| 65 72 2c 0d 62 75 74 20 | 6c 65 61 76 65 73 20 61 |er,.but |leaves a|
|000002c0| 20 63 6c 65 61 6e 65 72 | 20 68 65 61 70 2e 20 20 | cleaner| heap. |
|000002d0| 6d 61 6c 6c 6f 63 20 61 | 6c 6c 6f 63 61 74 65 73 |malloc a|llocates|
|000002e0| 20 63 68 75 6e 6b 73 20 | 74 68 61 74 20 61 72 65 | chunks |that are|
|000002f0| 0d 6e 6f 74 20 61 63 74 | 75 61 6c 6c 79 20 64 69 |.not act|ually di|
|00000300| 73 63 61 72 64 65 64 20 | 77 68 65 6e 20 66 72 65 |scarded |when fre|
|00000310| 65 20 69 73 20 63 61 6c | 6c 65 64 2e 0d 0d 55 53 |e is cal|led...US|
|00000320| 45 5f 4d 45 4d 48 41 4e | 44 4c 45 53 20 2d 20 54 |E_MEMHAN|DLES - T|
|00000330| 68 69 73 20 61 6c 6c 6f | 63 61 74 65 73 20 68 61 |his allo|cates ha|
|00000340| 6e 64 6c 65 73 20 69 6e | 73 74 65 61 64 20 6f 66 |ndles in|stead of|
|00000350| 20 70 6f 69 6e 74 65 72 | 73 2c 20 74 68 65 6e 0d | pointer|s, then.|
|00000360| 6c 6f 63 6b 73 20 61 6e | 64 20 64 65 72 65 66 73 |locks an|d derefs|
|00000370| 20 74 68 65 6d 2e 0d 0d | 55 53 45 5f 4d 45 4d 54 | them...|USE_MEMT|
|00000380| 41 47 53 20 2d 20 69 66 | 20 64 65 66 69 6e 65 64 |AGS - if| defined|
|00000390| 2c 20 77 69 6c 6c 20 61 | 64 64 20 61 20 34 20 62 |, will a|dd a 4 b|
|000003a0| 79 74 65 20 74 61 67 20 | 74 6f 20 65 61 63 68 20 |yte tag |to each |
|000003b0| 6d 65 6d 6f 72 79 0d 63 | 68 75 6e 6b 20 61 6c 6c |memory.c|hunk all|
|000003c0| 6f 63 61 74 65 64 2c 20 | 61 6e 64 20 69 6e 73 75 |ocated, |and insu|
|000003d0| 72 65 20 74 68 61 74 20 | 74 68 65 20 64 65 2d 61 |re that |the de-a|
|000003e0| 6c 6c 6f 63 61 74 69 6f | 6e 20 6f 66 20 6d 65 6d |llocatio|n of mem|
|000003f0| 6f 72 79 20 68 61 73 0d | 74 68 69 73 20 74 61 67 |ory has.|this tag|
|00000400| 2e 20 20 54 68 69 73 20 | 77 69 6c 6c 20 64 65 74 |. This |will det|
|00000410| 65 63 74 20 61 6e 79 20 | 66 72 65 65 20 63 61 6c |ect any |free cal|
|00000420| 6c 73 20 74 68 61 74 20 | 61 72 65 20 70 61 73 73 |ls that |are pass|
|00000430| 65 64 20 62 61 64 0d 70 | 6f 69 6e 74 65 72 73 2e |ed bad.p|ointers.|
|00000440| 0d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.-------|--------|
|00000450| 2d 2d 2d 2d 2d 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 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00000490| 41 75 74 68 6f 72 3a 0d | 09 4a 69 6d 20 4e 69 74 |Author:.|.Jim Nit|
|000004a0| 63 68 61 6c 73 20 61 6e | 64 20 45 64 75 61 72 64 |chals an|d Eduard|
|000004b0| 20 5b 65 73 70 5d 20 53 | 63 68 77 61 6e 0d 2d 2d | [esp] S|chwan.--|
|000004c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|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 0d 09 66 72 |--------|----..fr|
|00000510| 6f 6d 20 50 65 72 73 69 | 73 74 65 6e 63 65 20 6f |om Persi|stence o|
|00000520| 66 20 56 69 73 69 6f 6e | 20 52 61 79 74 72 61 63 |f Vision| Raytrac|
|00000530| 65 72 0d 09 43 6f 70 79 | 72 69 67 68 74 20 31 39 |er..Copy|right 19|
|00000540| 39 33 20 50 65 72 73 69 | 73 74 65 6e 63 65 20 6f |93 Persi|stence o|
|00000550| 66 20 56 69 73 69 6f 6e | 20 54 65 61 6d 0d 2d 2d |f Vision| Team.--|
|00000560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 09 4e 4f |--------|----..NO|
|000005b0| 54 49 43 45 3a 20 54 68 | 69 73 20 73 6f 75 72 63 |TICE: Th|is sourc|
|000005c0| 65 20 63 6f 64 65 20 66 | 69 6c 65 20 69 73 20 70 |e code f|ile is p|
|000005d0| 72 6f 76 69 64 65 64 20 | 73 6f 20 74 68 61 74 20 |rovided |so that |
|000005e0| 75 73 65 72 73 20 6d 61 | 79 20 65 78 70 65 72 69 |users ma|y experi|
|000005f0| 6d 65 6e 74 0d 09 77 69 | 74 68 20 65 6e 68 61 6e |ment..wi|th enhan|
|00000600| 63 65 6d 65 6e 74 73 20 | 74 6f 20 50 4f 56 2d 52 |cements |to POV-R|
|00000610| 61 79 20 61 6e 64 20 74 | 6f 20 70 6f 72 74 20 74 |ay and t|o port t|
|00000620| 68 65 20 73 6f 66 74 77 | 61 72 65 20 74 6f 20 70 |he softw|are to p|
|00000630| 6c 61 74 66 6f 72 6d 73 | 20 6f 74 68 65 72 20 0d |latforms| other .|
|00000640| 09 74 68 61 6e 20 74 68 | 6f 73 65 20 73 75 70 70 |.than th|ose supp|
|00000650| 6f 72 74 65 64 20 62 79 | 20 74 68 65 20 50 4f 56 |orted by| the POV|
|00000660| 2d 52 61 79 20 54 65 61 | 6d 2e 20 20 54 68 65 72 |-Ray Tea|m. Ther|
|00000670| 65 20 61 72 65 20 73 74 | 72 69 63 74 20 72 75 6c |e are st|rict rul|
|00000680| 65 73 20 75 6e 64 65 72 | 0d 09 77 68 69 63 68 20 |es under|..which |
|00000690| 79 6f 75 20 61 72 65 20 | 70 65 72 6d 69 74 74 65 |you are |permitte|
|000006a0| 64 20 74 6f 20 75 73 65 | 20 74 68 69 73 20 66 69 |d to use| this fi|
|000006b0| 6c 65 2e 20 20 54 68 65 | 20 72 75 6c 65 73 20 61 |le. The| rules a|
|000006c0| 72 65 20 69 6e 20 74 68 | 65 20 66 69 6c 65 0d 09 |re in th|e file..|
|000006d0| 6e 61 6d 65 64 20 50 4f | 56 4c 45 47 41 4c 2e 44 |named PO|VLEGAL.D|
|000006e0| 4f 43 20 77 68 69 63 68 | 20 73 68 6f 75 6c 64 20 |OC which| should |
|000006f0| 62 65 20 64 69 73 74 72 | 69 62 75 74 65 64 20 77 |be distr|ibuted w|
|00000700| 69 74 68 20 74 68 69 73 | 20 66 69 6c 65 2e 20 49 |ith this| file. I|
|00000710| 66 20 0d 09 50 4f 56 4c | 45 47 41 4c 2e 44 4f 43 |f ..POVL|EGAL.DOC|
|00000720| 20 69 73 20 6e 6f 74 20 | 61 76 61 69 6c 61 62 6c | is not |availabl|
|00000730| 65 20 6f 72 20 66 6f 72 | 20 6d 6f 72 65 20 69 6e |e or for| more in|
|00000740| 66 6f 20 70 6c 65 61 73 | 65 20 63 6f 6e 74 61 63 |fo pleas|e contac|
|00000750| 74 20 74 68 65 20 50 4f | 56 2d 52 61 79 0d 09 54 |t the PO|V-Ray..T|
|00000760| 65 61 6d 20 43 6f 6f 72 | 64 69 6e 61 74 6f 72 20 |eam Coor|dinator |
|00000770| 62 79 20 6c 65 61 76 69 | 6e 67 20 61 20 6d 65 73 |by leavi|ng a mes|
|00000780| 73 61 67 65 20 69 6e 20 | 43 6f 6d 70 75 53 65 72 |sage in |CompuSer|
|00000790| 76 65 27 73 20 47 72 61 | 70 68 69 63 73 20 44 65 |ve's Gra|phics De|
|000007a0| 76 65 6c 6f 70 65 72 27 | 73 0d 09 46 6f 72 75 6d |veloper'|s..Forum|
|000007b0| 2e 20 20 54 68 65 20 6c | 61 74 65 73 74 20 76 65 |. The l|atest ve|
|000007c0| 72 73 69 6f 6e 20 6f 66 | 20 50 4f 56 2d 52 61 79 |rsion of| POV-Ray|
|000007d0| 20 6d 61 79 20 62 65 20 | 66 6f 75 6e 64 20 74 68 | may be |found th|
|000007e0| 65 72 65 20 61 73 20 77 | 65 6c 6c 2e 0d 0d 09 54 |ere as w|ell....T|
|000007f0| 68 69 73 20 70 72 6f 67 | 72 61 6d 20 69 73 20 62 |his prog|ram is b|
|00000800| 61 73 65 64 20 6f 6e 20 | 74 68 65 20 70 6f 70 75 |ased on |the popu|
|00000810| 6c 61 72 20 44 4b 42 20 | 72 61 79 74 72 61 63 65 |lar DKB |raytrace|
|00000820| 72 20 76 65 72 73 69 6f | 6e 20 32 2e 31 32 2e 0d |r versio|n 2.12..|
|00000830| 09 44 4b 42 54 72 61 63 | 65 20 77 61 73 20 6f 72 |.DKBTrac|e was or|
|00000840| 69 67 69 6e 61 6c 6c 79 | 20 77 72 69 74 74 65 6e |iginally| written|
|00000850| 20 62 79 20 44 61 76 69 | 64 20 4b 2e 20 42 75 63 | by Davi|d K. Buc|
|00000860| 6b 2e 0d 09 44 4b 42 54 | 72 61 63 65 20 56 65 72 |k...DKBT|race Ver|
|00000870| 20 32 2e 30 2d 32 2e 31 | 32 20 77 65 72 65 20 77 | 2.0-2.1|2 were w|
|00000880| 72 69 74 74 65 6e 20 62 | 79 20 44 61 76 69 64 20 |ritten b|y David |
|00000890| 4b 2e 20 42 75 63 6b 20 | 26 20 41 61 72 6f 6e 20 |K. Buck |& Aaron |
|000008a0| 41 2e 20 43 6f 6c 6c 69 | 6e 73 2e 0d 2d 2d 2d 2d |A. Colli|ns..----|
|000008b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|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 0d 4d 6f 72 65 20 |--------|--.More |
|00000900| 49 6e 66 6f 3a 0d 09 54 | 68 69 73 20 4d 61 63 69 |Info:..T|his Maci|
|00000910| 6e 74 6f 73 68 20 76 65 | 72 73 69 6f 6e 20 6f 66 |ntosh ve|rsion of|
|00000920| 20 50 4f 56 2d 52 61 79 | 20 77 61 73 20 63 72 65 | POV-Ray| was cre|
|00000930| 61 74 65 64 20 61 6e 64 | 20 63 6f 6d 70 69 6c 65 |ated and| compile|
|00000940| 64 20 62 79 20 4a 69 6d | 20 4e 69 74 63 68 61 6c |d by Jim| Nitchal|
|00000950| 73 0d 09 28 54 68 69 6e | 6b 20 35 2e 30 29 20 61 |s..(Thin|k 5.0) a|
|00000960| 6e 64 20 45 64 75 61 72 | 64 20 53 63 68 77 61 6e |nd Eduar|d Schwan|
|00000970| 20 28 4d 50 57 20 33 2e | 32 29 2c 20 62 61 73 65 | (MPW 3.|2), base|
|00000980| 64 20 28 6c 6f 6f 73 65 | 6c 79 29 20 6f 6e 20 74 |d (loose|ly) on t|
|00000990| 68 65 20 6f 72 69 67 69 | 6e 61 6c 0d 09 70 6f 72 |he origi|nal..por|
|000009a0| 74 20 62 79 20 54 68 6f | 6d 61 73 20 4f 6b 6b 65 |t by Tho|mas Okke|
|000009b0| 6e 20 61 6e 64 20 44 61 | 76 69 64 20 4c 69 63 68 |n and Da|vid Lich|
|000009c0| 74 6d 61 6e 2c 20 77 69 | 74 68 20 73 6f 6d 65 20 |tman, wi|th some |
|000009d0| 68 65 6c 70 20 66 72 6f | 6d 20 47 6c 65 6e 6e 20 |help fro|m Glenn |
|000009e0| 53 75 67 64 65 6e 2e 0d | 0d 09 46 6f 72 20 62 75 |Sugden..|..For bu|
|000009f0| 67 20 72 65 70 6f 72 74 | 73 20 72 65 67 61 72 64 |g report|s regard|
|00000a00| 69 6e 67 20 74 68 65 20 | 4d 61 63 69 6e 74 6f 73 |ing the |Macintos|
|00000a10| 68 20 76 65 72 73 69 6f | 6e 2c 20 79 6f 75 20 73 |h versio|n, you s|
|00000a20| 68 6f 75 6c 64 20 63 6f | 6e 74 61 63 74 3a 0d 09 |hould co|ntact:..|
|00000a30| 45 64 75 61 72 64 20 5b | 65 73 70 5d 20 53 63 68 |Eduard [|esp] Sch|
|00000a40| 77 61 6e 0d 09 09 43 6f | 6d 70 75 53 65 72 76 65 |wan...Co|mpuServe|
|00000a50| 3a 20 37 31 35 31 33 2c | 32 31 36 31 0d 09 09 49 |: 71513,|2161...I|
|00000a60| 6e 74 65 72 6e 65 74 3a | 20 6a 6c 2e 74 65 63 68 |nternet:| jl.tech|
|00000a70| 40 61 70 70 6c 65 6c 69 | 6e 6b 2e 61 70 70 6c 65 |@appleli|nk.apple|
|00000a80| 2e 63 6f 6d 0d 09 09 41 | 70 70 6c 65 4c 69 6e 6b |.com...A|ppleLink|
|00000a90| 3a 20 6a 6c 2e 74 65 63 | 68 0d 09 4a 69 6d 20 4e |: jl.tec|h..Jim N|
|00000aa0| 69 74 63 68 61 6c 73 0d | 09 09 43 6f 6d 70 75 73 |itchals.|..Compus|
|00000ab0| 65 72 76 65 3a 20 37 33 | 31 31 37 2c 33 30 32 30 |erve: 73|117,3020|
|00000ac0| 0d 09 09 41 6d 65 72 69 | 63 61 20 4f 6e 6c 69 6e |...Ameri|ca Onlin|
|00000ad0| 65 3a 20 4a 49 4d 4e 38 | 0d 09 09 49 6e 74 65 72 |e: JIMN8|...Inter|
|00000ae0| 6e 65 74 3a 20 6a 69 6d | 6e 38 40 61 6f 6c 2e 63 |net: jim|n8@aol.c|
|00000af0| 6f 6d 20 2d 6f 72 2d 20 | 6a 69 6d 6e 38 40 61 70 |om -or- |jimn8@ap|
|00000b00| 70 6c 65 6c 69 6e 6b 2e | 61 70 70 6c 65 2e 63 6f |plelink.|apple.co|
|00000b10| 6d 0d 09 09 41 70 70 6c | 65 4c 69 6e 6b 3a 20 4a |m...Appl|eLink: J|
|00000b20| 49 4d 4e 38 0d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |IMN8.---|--------|
|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 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000b70| 2d 2d 2d 0d 43 68 61 6e | 67 65 20 48 69 73 74 6f |---.Chan|ge Histo|
|00000b80| 72 79 3a 0d 09 39 32 31 | 30 32 33 09 5b 65 73 70 |ry:..921|023.[esp|
|00000b90| 5d 09 43 72 65 61 74 65 | 64 2e 0d 09 39 32 31 32 |].Create|d...9212|
|00000ba0| 30 32 09 5b 65 73 70 5d | 09 41 64 64 65 64 20 50 |02.[esp]|.Added P|
|00000bb0| 4f 56 5f 6e 65 65 64 5f | 74 6f 5f 72 65 63 6c 61 |OV_need_|to_recla|
|00000bc0| 69 6d 28 29 20 72 6f 75 | 74 69 6e 65 0d 09 39 32 |im() rou|tine..92|
|00000bd0| 31 32 32 31 09 5b 65 73 | 70 5d 09 41 64 64 65 64 |1221.[es|p].Added|
|00000be0| 20 42 65 56 65 72 62 6f | 73 65 20 70 61 72 6d 20 | BeVerbo|se parm |
|00000bf0| 74 6f 20 50 4f 56 5f 52 | 65 63 6c 61 69 6d 20 72 |to POV_R|eclaim r|
|00000c00| 6f 75 74 69 6e 65 0d 09 | 39 33 30 34 32 33 09 5b |outine..|930423.[|
|00000c10| 65 73 70 5d 09 41 64 64 | 65 64 20 6c 6f 77 2d 6d |esp].Add|ed low-m|
|00000c20| 65 6d 6f 72 79 20 63 68 | 65 63 6b 20 69 6e 20 6d |emory ch|eck in m|
|00000c30| 61 6c 6c 6f 63 2f 63 61 | 6c 6c 6f 63 20 28 4d 49 |alloc/ca|lloc (MI|
|00000c40| 4e 5f 53 41 46 45 5f 42 | 59 54 45 53 29 2e 0d 09 |N_SAFE_B|YTES)...|
|00000c50| 39 33 30 36 31 38 09 5b | 65 73 70 5d 09 41 64 64 |930618.[|esp].Add|
|00000c60| 65 64 20 55 53 45 5f 4e | 41 54 49 56 45 5f 4d 41 |ed USE_N|ATIVE_MA|
|00000c70| 4c 4c 4f 43 20 63 6f 64 | 65 20 28 61 67 61 69 6e |LLOC cod|e (again|
|00000c80| 29 20 61 6e 64 20 72 65 | 6e 61 6d 65 64 20 55 53 |) and re|named US|
|00000c90| 45 5f 4d 45 4d 54 41 47 | 53 0d 09 39 33 31 30 30 |E_MEMTAG|S..93100|
|00000ca0| 31 09 5b 65 73 70 5d 09 | 76 65 72 73 69 6f 6e 20 |1.[esp].|version |
|00000cb0| 32 2e 30 20 66 69 6e 69 | 73 68 65 64 20 28 52 65 |2.0 fini|shed (Re|
|00000cc0| 6c 65 61 73 65 64 20 6f | 6e 20 31 30 2f 34 2f 39 |leased o|n 10/4/9|
|00000cd0| 33 29 0d 09 39 33 31 30 | 32 30 09 5b 65 73 70 5d |3)..9310|20.[esp]|
|00000ce0| 09 41 64 64 65 64 20 72 | 65 61 6c 6c 6f 63 20 66 |.Added r|ealloc f|
|00000cf0| 75 6e 63 74 69 6f 6e 0d | 09 39 33 31 30 32 30 09 |unction.|.931020.|
|00000d00| 5b 65 73 70 5d 09 42 65 | 67 61 6e 20 61 64 64 69 |[esp].Be|gan addi|
|00000d10| 6e 67 20 65 78 70 65 72 | 69 6d 65 6e 74 61 6c 20 |ng exper|imental |
|00000d20| 4e 65 77 48 61 6e 64 6c | 65 2f 4d 6f 76 65 48 48 |NewHandl|e/MoveHH|
|00000d30| 69 20 28 55 53 45 5f 4d | 45 4d 48 41 4e 44 4c 45 |i (USE_M|EMHANDLE|
|00000d40| 53 29 20 63 6f 64 65 0d | 09 39 33 31 31 31 36 09 |S) code.|.931116.|
|00000d50| 5b 65 73 70 5d 09 41 64 | 64 65 64 20 6f 75 74 2d |[esp].Ad|ded out-|
|00000d60| 6f 66 2d 6d 65 6d 20 68 | 61 6e 64 6c 69 6e 67 20 |of-mem h|andling |
|00000d70| 63 6f 64 65 20 28 67 52 | 65 73 65 72 76 65 42 75 |code (gR|eserveBu|
|00000d80| 66 66 65 72 2c 20 48 61 | 6e 64 6c 65 4f 75 74 4f |ffer, Ha|ndleOutO|
|00000d90| 66 4d 65 6d 29 0d 09 39 | 33 31 31 31 39 09 5b 64 |fMem)..9|31119.[d|
|00000da0| 6a 68 5d 09 41 64 64 65 | 64 20 3c 54 6f 6f 6c 55 |jh].Adde|d <ToolU|
|00000db0| 74 69 6c 73 2e 68 3e 20 | 66 6f 72 20 50 50 43 20 |tils.h> |for PPC |
|00000dc0| 63 6f 6d 70 61 74 69 62 | 69 6c 69 74 79 0d 3d 3d |compatib|ility.==|
|00000dd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000de0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000df0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000e10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 2a 2f 0d 0d |========|====*/..|
|00000e20| 23 64 65 66 69 6e 65 20 | 50 4f 56 4d 41 4c 4c 4f |#define |POVMALLO|
|00000e30| 43 5f 43 0d 0d 23 69 6e | 63 6c 75 64 65 20 3c 74 |C_C..#in|clude <t|
|00000e40| 79 70 65 73 2e 68 3e 0d | 23 69 6e 63 6c 75 64 65 |ypes.h>.|#include|
|00000e50| 20 3c 73 74 64 6c 69 62 | 2e 68 3e 09 2f 2f 20 6d | <stdlib|.h>.// m|
|00000e60| 61 6c 6c 6f 63 0d 23 69 | 6e 63 6c 75 64 65 20 3c |alloc.#i|nclude <|
|00000e70| 6d 65 6d 6f 72 79 2e 68 | 3e 09 2f 2f 20 4e 65 77 |memory.h|>.// New|
|00000e80| 50 74 72 0d 23 69 6e 63 | 6c 75 64 65 20 3c 65 72 |Ptr.#inc|lude <er|
|00000e90| 72 6f 72 73 2e 68 3e 09 | 2f 2f 20 6d 65 6d 46 75 |rors.h>.|// memFu|
|00000ea0| 6c 6c 45 72 72 0d 23 69 | 6e 63 6c 75 64 65 20 3c |llErr.#i|nclude <|
|00000eb0| 54 6f 6f 6c 55 74 69 6c | 73 2e 68 3e 20 2f 2f 20 |ToolUtil|s.h> // |
|00000ec0| 77 61 74 63 68 43 75 72 | 73 6f 72 0d 0d 23 69 6e |watchCur|sor..#in|
|00000ed0| 63 6c 75 64 65 20 22 50 | 4f 56 4d 61 6c 6c 6f 63 |clude "P|OVMalloc|
|00000ee0| 2e 68 22 0d 23 69 6e 63 | 6c 75 64 65 20 22 50 4f |.h".#inc|lude "PO|
|00000ef0| 56 4c 69 62 2e 68 22 0d | 0d 0d 2f 2f 20 6f 75 74 |VLib.h".|..// out|
|00000f00| 2d 6f 66 2d 6d 65 6d 20 | 72 65 73 65 72 76 65 20 |-of-mem |reserve |
|00000f10| 73 70 61 63 65 0d 23 64 | 65 66 69 6e 65 20 52 45 |space.#d|efine RE|
|00000f20| 53 45 52 56 45 5f 4d 45 | 4d 5f 53 49 5a 45 09 36 |SERVE_ME|M_SIZE.6|
|00000f30| 30 30 30 30 4c 0d 0d 2f | 2f 20 54 68 69 73 20 64 |0000L../|/ This d|
|00000f40| 65 66 69 6e 65 73 20 74 | 68 65 20 6c 6f 77 65 73 |efines t|he lowes|
|00000f50| 74 20 66 72 65 65 20 6d | 65 6d 6f 72 79 20 69 73 |t free m|emory is|
|00000f60| 20 61 6c 6c 6f 77 65 64 | 20 74 6f 20 67 65 74 20 | allowed| to get |
|00000f70| 62 65 66 6f 72 65 0d 2f | 2f 20 6d 61 6c 6c 6f 63 |before./|/ malloc|
|00000f80| 20 26 20 63 61 6c 6c 6f | 63 20 66 61 69 6c 2e 20 | & callo|c fail. |
|00000f90| 20 54 68 69 73 20 67 75 | 61 72 61 6e 74 65 65 73 | This gu|arantees|
|00000fa0| 20 73 6f 6d 65 20 66 72 | 65 65 20 68 65 61 70 20 | some fr|ee heap |
|00000fb0| 73 70 61 63 65 20 66 6f | 72 0d 2f 2f 20 65 72 72 |space fo|r.// err|
|00000fc0| 6f 72 20 72 65 63 6f 76 | 65 72 79 2e 0d 23 64 65 |or recov|ery..#de|
|00000fd0| 66 69 6e 65 09 4d 49 4e | 5f 53 41 46 45 5f 42 59 |fine.MIN|_SAFE_BY|
|00000fe0| 54 45 53 09 09 36 30 30 | 30 30 4c 0d 0d 23 69 66 |TES..600|00L..#if|
|00000ff0| 20 55 53 45 5f 4d 45 4d | 54 41 47 53 0d 2f 2f 20 | USE_MEM|TAGS.// |
|00001000| 6c 6f 6e 67 20 69 6e 74 | 20 74 61 67 20 75 73 65 |long int| tag use|
|00001010| 64 20 74 6f 20 64 65 74 | 65 63 74 20 62 61 64 20 |d to det|ect bad |
|00001020| 70 74 72 73 20 70 61 73 | 73 65 64 20 74 6f 20 66 |ptrs pas|sed to f|
|00001030| 72 65 65 28 29 0d 23 64 | 65 66 69 6e 65 20 4d 41 |ree().#d|efine MA|
|00001040| 4c 4c 4f 43 5f 54 41 47 | 09 09 27 4d 54 41 47 27 |LLOC_TAG|..'MTAG'|
|00001050| 0d 23 65 6e 64 69 66 20 | 2f 2f 20 55 53 45 5f 4d |.#endif |// USE_M|
|00001060| 45 4d 54 41 47 53 0d 0d | 0d 2f 2f 20 4d 65 6d 6f |EMTAGS..|.// Memo|
|00001070| 72 79 20 61 6c 6c 6f 63 | 61 74 69 6f 6e 20 74 72 |ry alloc|ation tr|
|00001080| 61 63 6b 69 6e 67 20 28 | 47 61 72 62 61 67 65 20 |acking (|Garbage |
|00001090| 43 6f 6c 6c 65 63 74 69 | 6f 6e 29 0d 73 74 61 74 |Collecti|on).stat|
|000010a0| 69 63 20 48 61 6e 64 6c | 65 09 09 67 52 65 73 65 |ic Handl|e..gRese|
|000010b0| 72 76 65 42 75 66 66 65 | 72 20 3d 20 4e 55 4c 4c |rveBuffe|r = NULL|
|000010c0| 3b 0d 73 74 61 74 69 63 | 20 42 6f 6f 6c 65 61 6e |;.static| Boolean|
|000010d0| 09 09 67 44 6f 4d 65 6d | 54 72 61 63 6b 69 6e 67 |..gDoMem|Tracking|
|000010e0| 3b 0d 73 74 61 74 69 63 | 20 42 6f 6f 6c 65 61 6e |;.static| Boolean|
|000010f0| 09 09 67 52 65 63 6c 61 | 69 6d 69 6e 67 3b 0d 73 |..gRecla|iming;.s|
|00001100| 74 61 74 69 63 20 6c 6f | 6e 67 09 09 09 67 4d 61 |tatic lo|ng...gMa|
|00001110| 6c 6c 6f 63 4c 69 73 74 | 43 6f 75 6e 74 2c 0d 09 |llocList|Count,..|
|00001120| 09 09 09 09 67 46 72 65 | 65 4c 69 73 74 43 6f 75 |....gFre|eListCou|
|00001130| 6e 74 2c 0d 09 09 09 09 | 09 67 4d 61 6c 6c 6f 63 |nt,.....|.gMalloc|
|00001140| 4c 69 73 74 53 69 7a 65 | 3b 0d 73 74 61 74 69 63 |ListSize|;.static|
|00001150| 20 50 74 72 09 09 09 2a | 67 4d 61 6c 6c 6f 63 4c | Ptr...*|gMallocL|
|00001160| 69 73 74 3b 09 09 2f 2f | 20 61 72 72 61 79 20 6f |ist;..//| array o|
|00001170| 66 20 70 6f 69 6e 74 65 | 72 73 0d 73 74 61 74 69 |f pointe|rs.stati|
|00001180| 63 20 50 74 72 09 09 09 | 2a 67 46 72 65 65 4c 69 |c Ptr...|*gFreeLi|
|00001190| 73 74 3b 09 09 09 2f 2f | 20 61 72 72 61 79 20 6f |st;...//| array o|
|000011a0| 66 20 70 6f 69 6e 74 65 | 72 73 0d 73 74 61 74 69 |f pointe|rs.stati|
|000011b0| 63 20 6c 6f 6e 67 09 09 | 09 67 45 73 63 61 70 65 |c long..|.gEscape|
|000011c0| 64 4d 61 6c 6c 6f 63 73 | 43 6f 75 6e 74 20 3d 20 |dMallocs|Count = |
|000011d0| 30 4c 3b 09 2f 2f 20 74 | 72 61 63 6b 20 23 20 6f |0L;.// t|rack # o|
|000011e0| 66 20 75 6e 74 72 61 63 | 6b 65 64 20 6d 61 6c 6c |f untrac|ked mall|
|000011f0| 6f 63 73 20 28 63 61 6e | 27 74 20 67 61 72 62 61 |ocs (can|'t garba|
|00001200| 67 65 20 63 6f 6c 6c 65 | 63 74 29 0d 0d 0d 2f 2f |ge colle|ct)...//|
|00001210| 20 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d | =======|========|
|00001220| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001230| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001240| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001250| 3d 3d 3d 3d 3d 3d 0d 76 | 6f 69 64 20 41 6c 6c 6f |======.v|oid Allo|
|00001260| 63 61 74 65 53 61 66 65 | 74 79 42 75 66 66 65 72 |cateSafe|tyBuffer|
|00001270| 28 76 6f 69 64 29 0d 7b | 0d 09 69 66 20 28 67 52 |(void).{|..if (gR|
|00001280| 65 73 65 72 76 65 42 75 | 66 66 65 72 20 3d 3d 20 |eserveBu|ffer == |
|00001290| 4e 55 4c 4c 29 0d 09 7b | 0d 09 09 67 52 65 73 65 |NULL)..{|...gRese|
|000012a0| 72 76 65 42 75 66 66 65 | 72 20 3d 20 4e 65 77 48 |rveBuffe|r = NewH|
|000012b0| 61 6e 64 6c 65 28 52 45 | 53 45 52 56 45 5f 4d 45 |andle(RE|SERVE_ME|
|000012c0| 4d 5f 53 49 5a 45 29 3b | 0d 09 09 69 66 20 28 67 |M_SIZE);|...if (g|
|000012d0| 52 65 73 65 72 76 65 42 | 75 66 66 65 72 29 0d 09 |ReserveB|uffer)..|
|000012e0| 09 09 4d 6f 76 65 48 48 | 69 28 67 52 65 73 65 72 |..MoveHH|i(gReser|
|000012f0| 76 65 42 75 66 66 65 72 | 29 3b 0d 09 7d 0d 7d 20 |veBuffer|);..}.} |
|00001300| 2f 2f 20 41 6c 6c 6f 63 | 61 74 65 53 61 66 65 74 |// Alloc|ateSafet|
|00001310| 79 42 75 66 66 65 72 0d | 0d 0d 2f 2f 20 3d 3d 3d |yBuffer.|..// ===|
|00001320| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001330| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001340| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001350| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001360| 3d 3d 0d 76 6f 69 64 20 | 50 75 72 67 65 53 61 66 |==.void |PurgeSaf|
|00001370| 65 74 79 42 75 66 66 65 | 72 28 76 6f 69 64 29 0d |etyBuffe|r(void).|
|00001380| 7b 0d 09 69 66 20 28 67 | 52 65 73 65 72 76 65 42 |{..if (g|ReserveB|
|00001390| 75 66 66 65 72 29 0d 09 | 7b 0d 09 09 44 69 73 70 |uffer)..|{...Disp|
|000013a0| 6f 73 65 48 61 6e 64 6c | 65 28 67 52 65 73 65 72 |oseHandl|e(gReser|
|000013b0| 76 65 42 75 66 66 65 72 | 29 3b 0d 09 09 67 52 65 |veBuffer|);...gRe|
|000013c0| 73 65 72 76 65 42 75 66 | 66 65 72 20 3d 20 4e 55 |serveBuf|fer = NU|
|000013d0| 4c 4c 3b 0d 09 7d 0d 7d | 20 2f 2f 20 50 75 72 67 |LL;..}.}| // Purg|
|000013e0| 65 53 61 66 65 74 79 42 | 75 66 66 65 72 0d 0d 0d |eSafetyB|uffer...|
|000013f0| 2f 2f 20 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |// =====|========|
|00001400| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001410| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001420| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001430| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 4f 53 45 72 72 20 50 |========|.OSErr P|
|00001440| 4f 56 5f 69 6e 69 74 5f | 6d 65 6d 74 72 61 63 6b |OV_init_|memtrack|
|00001450| 69 6e 67 28 73 69 7a 65 | 5f 74 20 6d 61 78 5f 74 |ing(size|_t max_t|
|00001460| 72 61 63 6b 61 62 6c 65 | 29 0d 7b 0d 09 67 52 65 |rackable|).{..gRe|
|00001470| 63 6c 61 69 6d 69 6e 67 | 20 3d 20 66 61 6c 73 65 |claiming| = false|
|00001480| 3b 20 2f 2f 20 6e 6f 74 | 20 72 65 63 6c 61 69 6d |; // not| reclaim|
|00001490| 69 6e 67 20 6a 75 73 74 | 20 6e 6f 77 0d 0d 09 2f |ing just| now.../|
|000014a0| 2f 20 61 6c 6c 6f 63 61 | 74 65 20 6d 61 6c 6c 6f |/ alloca|te mallo|
|000014b0| 63 28 29 20 67 61 72 62 | 61 67 65 20 63 6f 6c 6c |c() garb|age coll|
|000014c0| 65 63 74 69 6f 6e 20 62 | 75 66 66 65 72 73 0d 09 |ection b|uffers..|
|000014d0| 67 4d 61 6c 6c 6f 63 4c | 69 73 74 53 69 7a 65 20 |gMallocL|istSize |
|000014e0| 3d 20 6d 61 78 5f 74 72 | 61 63 6b 61 62 6c 65 3b |= max_tr|ackable;|
|000014f0| 0d 09 69 66 20 28 67 4d | 61 6c 6c 6f 63 4c 69 73 |..if (gM|allocLis|
|00001500| 74 53 69 7a 65 20 3c 20 | 35 30 30 29 0d 09 09 67 |tSize < |500)...g|
|00001510| 4d 61 6c 6c 6f 63 4c 69 | 73 74 53 69 7a 65 20 3d |MallocLi|stSize =|
|00001520| 20 35 30 30 3b 0d 09 67 | 4d 61 6c 6c 6f 63 4c 69 | 500;..g|MallocLi|
|00001530| 73 74 20 20 3d 20 28 50 | 74 72 2a 29 20 4e 65 77 |st = (P|tr*) New|
|00001540| 50 74 72 28 28 67 4d 61 | 6c 6c 6f 63 4c 69 73 74 |Ptr((gMa|llocList|
|00001550| 53 69 7a 65 2b 32 4c 29 | 2a 73 69 7a 65 6f 66 28 |Size+2L)|*sizeof(|
|00001560| 50 74 72 29 29 3b 0d 09 | 67 46 72 65 65 4c 69 73 |Ptr));..|gFreeLis|
|00001570| 74 20 3d 20 28 50 74 72 | 2a 29 20 4e 65 77 50 74 |t = (Ptr|*) NewPt|
|00001580| 72 28 28 67 4d 61 6c 6c | 6f 63 4c 69 73 74 53 69 |r((gMall|ocListSi|
|00001590| 7a 65 2b 32 4c 29 2a 73 | 69 7a 65 6f 66 28 50 74 |ze+2L)*s|izeof(Pt|
|000015a0| 72 29 29 3b 0d 0d 09 69 | 66 20 28 28 67 4d 61 6c |r));...i|f ((gMal|
|000015b0| 6c 6f 63 4c 69 73 74 20 | 3d 3d 20 4e 55 4c 4c 29 |locList |== NULL)|
|000015c0| 20 7c 7c 20 28 67 46 72 | 65 65 4c 69 73 74 20 3d | || (gFr|eeList =|
|000015d0| 3d 20 4e 55 4c 4c 29 29 | 0d 09 7b 0d 09 09 2f 2f |= NULL))|..{...//|
|000015e0| 20 66 61 74 61 6c 20 65 | 72 72 6f 72 0d 2f 2f 09 | fatal e|rror.//.|
|000015f0| 09 64 69 73 70 6c 61 79 | 44 69 61 6c 6f 67 28 6b |.display|Dialog(k|
|00001600| 64 6c 6f 67 5f 47 65 6e | 65 72 69 63 46 61 74 61 |dlog_Gen|ericFata|
|00001610| 6c 45 72 72 2c 20 22 43 | 61 6e 6e 6f 74 20 61 6c |lErr, "C|annot al|
|00001620| 6c 6f 63 61 74 65 20 6d | 65 6d 6f 72 79 20 66 6f |locate m|emory fo|
|00001630| 72 20 67 61 72 62 61 67 | 65 20 63 6f 6c 6c 65 63 |r garbag|e collec|
|00001640| 74 69 6f 6e 22 2c 0d 2f | 2f 09 09 09 09 09 67 4d |tion",./|/.....gM|
|00001650| 61 6c 6c 6f 63 4c 69 73 | 74 53 69 7a 65 2c 20 65 |allocLis|tSize, e|
|00001660| 77 63 44 6f 43 65 6e 74 | 65 72 69 6e 67 2c 20 65 |wcDoCent|ering, e|
|00001670| 4d 61 69 6e 44 65 76 69 | 63 65 29 3b 0d 2f 2f 09 |MainDevi|ce);.//.|
|00001680| 09 65 78 69 74 5f 68 61 | 6e 64 6c 65 72 28 29 3b |.exit_ha|ndler();|
|00001690| 0d 09 09 72 65 74 75 72 | 6e 20 6d 65 6d 46 75 6c |...retur|n memFul|
|000016a0| 6c 45 72 72 3b 0d 09 7d | 0d 09 65 6c 73 65 0d 09 |lErr;..}|..else..|
|000016b0| 7b 0d 09 09 2f 2f 20 75 | 6e 6d 61 72 6b 20 66 69 |{...// u|nmark fi|
|000016c0| 72 73 74 20 69 74 65 6d | 20 6f 6e 20 6c 69 73 74 |rst item| on list|
|000016d0| 0d 09 09 2a 67 4d 61 6c | 6c 6f 63 4c 69 73 74 20 |...*gMal|locList |
|000016e0| 3d 20 4e 55 4c 4c 3b 0d | 09 09 67 4d 61 6c 6c 6f |= NULL;.|..gMallo|
|000016f0| 63 4c 69 73 74 43 6f 75 | 6e 74 20 3d 20 30 3b 0d |cListCou|nt = 0;.|
|00001700| 09 09 2a 67 46 72 65 65 | 4c 69 73 74 20 3d 20 4e |..*gFree|List = N|
|00001710| 55 4c 4c 3b 0d 09 09 67 | 46 72 65 65 4c 69 73 74 |ULL;...g|FreeList|
|00001720| 43 6f 75 6e 74 20 3d 20 | 30 3b 0d 09 7d 0d 0d 09 |Count = |0;..}...|
|00001730| 2f 2f 20 61 6c 6c 6f 63 | 61 74 65 20 6f 75 72 20 |// alloc|ate our |
|00001740| 73 61 66 65 74 79 20 62 | 75 66 66 65 72 0d 09 41 |safety b|uffer..A|
|00001750| 6c 6c 6f 63 61 74 65 53 | 61 66 65 74 79 42 75 66 |llocateS|afetyBuf|
|00001760| 66 65 72 28 29 3b 0d 0d | 09 72 65 74 75 72 6e 20 |fer();..|.return |
|00001770| 6e 6f 45 72 72 3b 0d 0d | 7d 20 2f 2f 20 50 4f 56 |noErr;..|} // POV|
|00001780| 5f 69 6e 69 74 5f 6d 65 | 6d 74 72 61 63 6b 69 6e |_init_me|mtrackin|
|00001790| 67 0d 0d 0d 2f 2f 20 3d | 3d 3d 3d 3d 3d 3d 3d 3d |g...// =|========|
|000017a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000017b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000017c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000017d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 0d 76 6f 69 |========|====.voi|
|000017e0| 64 20 50 4f 56 5f 65 6e | 61 62 6c 65 5f 6d 65 6d |d POV_en|able_mem|
|000017f0| 74 72 61 63 6b 69 6e 67 | 28 42 6f 6f 6c 65 61 6e |tracking|(Boolean|
|00001800| 20 64 6f 74 72 61 63 6b | 69 6e 67 29 0d 7b 0d 09 | dotrack|ing).{..|
|00001810| 67 44 6f 4d 65 6d 54 72 | 61 63 6b 69 6e 67 20 3d |gDoMemTr|acking =|
|00001820| 20 64 6f 74 72 61 63 6b | 69 6e 67 3b 0d 7d 20 2f | dotrack|ing;.} /|
|00001830| 2f 20 50 4f 56 5f 65 6e | 61 62 6c 65 5f 6d 65 6d |/ POV_en|able_mem|
|00001840| 74 72 61 63 6b 69 6e 67 | 0d 0d 0d 2f 2f 20 3d 3d |tracking|...// ==|
|00001850| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001860| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001870| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001880| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001890| 3d 3d 3d 0d 76 6f 69 64 | 20 48 61 6e 64 6c 65 4f |===.void| HandleO|
|000018a0| 75 74 4f 66 4d 65 6d 28 | 76 6f 69 64 29 0d 7b 0d |utOfMem(|void).{.|
|000018b0| 09 2f 2f 20 57 65 20 61 | 72 65 20 6d 6f 73 74 20 |.// We a|re most |
|000018c0| 6c 69 6b 65 6c 79 20 6f | 75 74 20 6f 66 20 6d 65 |likely o|ut of me|
|000018d0| 6d 6f 72 79 2e 20 20 46 | 6f 72 20 6e 6f 77 2c 20 |mory. F|or now, |
|000018e0| 77 65 20 77 69 6c 6c 20 | 66 72 65 65 20 61 6c 6c |we will |free all|
|000018f0| 20 74 68 65 0d 09 2f 2f | 20 61 6c 6c 6f 63 61 74 | the..//| allocat|
|00001900| 65 64 20 6d 65 6d 6f 72 | 79 2c 20 61 6e 64 20 65 |ed memor|y, and e|
|00001910| 78 69 74 20 62 61 63 6b | 20 74 6f 20 74 68 65 20 |xit back| to the |
|00001920| 6d 61 69 6e 20 6c 6f 6f | 70 20 77 69 74 68 20 61 |main loo|p with a|
|00001930| 6e 20 65 72 72 6f 72 2e | 0d 09 2f 2f 20 57 65 20 |n error.|..// We |
|00001940| 63 6f 75 6c 64 20 62 65 | 20 64 6f 77 6e 20 74 6f |could be| down to|
|00001950| 20 35 20 6f 72 20 31 30 | 20 62 79 74 65 73 20 6f | 5 or 10| bytes o|
|00001960| 66 20 61 76 61 69 6c 61 | 62 6c 65 20 6d 65 6d 6f |f availa|ble memo|
|00001970| 72 79 2c 20 61 6e 64 20 | 74 6f 20 64 6f 0d 09 2f |ry, and |to do../|
|00001980| 2f 20 61 6e 79 74 68 69 | 6e 67 20 65 6c 73 65 20 |/ anythi|ng else |
|00001990| 28 6c 69 6b 65 20 72 65 | 74 75 72 6e 20 66 72 6f |(like re|turn fro|
|000019a0| 6d 20 6d 61 6c 6c 6f 63 | 20 61 6e 64 20 6c 65 74 |m malloc| and let|
|000019b0| 20 74 68 65 20 63 61 6c | 6c 65 72 20 68 61 6e 64 | the cal|ler hand|
|000019c0| 6c 65 20 69 74 29 0d 09 | 2f 2f 20 72 69 73 6b 73 |le it)..|// risks|
|000019d0| 20 61 20 68 61 72 64 20 | 6c 6f 63 6b 75 70 20 6f | a hard |lockup o|
|000019e0| 72 20 63 72 61 73 68 21 | 20 20 53 6f 2c 20 66 69 |r crash!| So, fi|
|000019f0| 72 73 74 2c 20 6d 61 6b | 65 20 73 75 72 65 20 74 |rst, mak|e sure t|
|00001a00| 68 65 72 65 27 73 20 72 | 6f 6f 6d 0d 09 2f 2f 20 |here's r|oom..// |
|00001a10| 66 6f 72 20 6c 6f 61 64 | 69 6e 67 20 64 69 61 6c |for load|ing dial|
|00001a20| 6f 67 73 20 26 20 73 74 | 75 66 66 20 69 6e 20 50 |ogs & st|uff in P|
|00001a30| 4f 56 5f 72 65 63 6c 61 | 69 6d 28 29 2c 20 62 79 |OV_recla|im(), by|
|00001a40| 20 64 75 6d 70 69 6e 67 | 20 74 68 65 20 62 75 66 | dumping| the buf|
|00001a50| 66 65 72 20 6d 65 6d 6f | 72 79 2e 0d 09 50 75 72 |fer memo|ry...Pur|
|00001a60| 67 65 53 61 66 65 74 79 | 42 75 66 66 65 72 28 29 |geSafety|Buffer()|
|00001a70| 3b 0d 0d 09 2f 2f 20 6f | 70 65 6e 20 73 6f 6d 65 |;...// o|pen some|
|00001a80| 20 6d 6f 72 65 20 68 65 | 61 70 20 73 70 61 63 65 | more he|ap space|
|00001a90| 0d 09 28 76 6f 69 64 29 | 43 6f 6d 70 61 63 74 4d |..(void)|CompactM|
|00001aa0| 65 6d 28 46 72 65 65 4d | 65 6d 28 29 29 3b 0d 0d |em(FreeM|em());..|
|00001ab0| 09 2f 2f 20 62 65 65 70 | 21 0d 09 53 79 73 42 65 |.// beep|!..SysBe|
|00001ac0| 65 70 28 32 29 3b 0d 0d | 09 2f 2f 20 4e 6f 77 20 |ep(2);..|.// Now |
|00001ad0| 66 72 65 65 20 61 6c 6c | 20 6d 65 6d 6f 72 79 0d |free all| memory.|
|00001ae0| 09 50 4f 56 5f 72 65 63 | 6c 61 69 6d 28 66 61 6c |.POV_rec|laim(fal|
|00001af0| 73 65 2c 20 4e 55 4c 4c | 29 3b 0d 0d 09 2f 2f 20 |se, NULL|);...// |
|00001b00| 74 65 6c 6c 20 75 73 65 | 72 20 77 65 20 66 61 69 |tell use|r we fai|
|00001b10| 6c 65 64 20 66 72 6f 6d | 20 68 65 72 65 0d 09 70 |led from| here..p|
|00001b20| 75 74 73 28 22 5c 6e 23 | 23 20 45 72 72 6f 72 21 |uts("\n#|# Error!|
|00001b30| 20 52 61 6e 20 6f 75 74 | 20 6f 66 20 6d 65 6d 6f | Ran out| of memo|
|00001b40| 72 79 2e 20 20 41 63 74 | 69 6f 6e 20 61 62 6f 72 |ry. Act|ion abor|
|00001b50| 74 65 64 2e 22 29 3b 0d | 0d 09 2f 2f 20 72 65 61 |ted.");.|..// rea|
|00001b60| 6c 6c 6f 63 61 74 65 20 | 6f 75 72 20 73 61 66 65 |llocate |our safe|
|00001b70| 74 79 20 6e 65 74 20 66 | 6f 72 20 6e 65 78 74 20 |ty net f|or next |
|00001b80| 74 69 6d 65 0d 09 41 6c | 6c 6f 63 61 74 65 53 61 |time..Al|locateSa|
|00001b90| 66 65 74 79 42 75 66 66 | 65 72 28 29 3b 0d 0d 09 |fetyBuff|er();...|
|00001ba0| 2f 2f 20 6e 6f 77 20 65 | 78 69 74 20 6f 75 74 20 |// now e|xit out |
|00001bb0| 6f 66 20 61 6c 6c 20 66 | 6e 20 63 61 6c 6c 73 0d |of all f|n calls.|
|00001bc0| 09 63 61 74 63 68 5f 65 | 78 69 74 28 31 29 3b 0d |.catch_e|xit(1);.|
|00001bd0| 0d 7d 20 2f 2f 20 48 61 | 6e 64 6c 65 4f 75 74 4f |.} // Ha|ndleOutO|
|00001be0| 66 4d 65 6d 0d 0d 0d 2f | 2f 20 3d 3d 3d 3d 3d 3d |fMem.../|/ ======|
|00001bf0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001c00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001c10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001c20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00001c30| 76 6f 69 64 20 2a 50 4f | 56 5f 6d 61 6c 6c 6f 63 |void *PO|V_malloc|
|00001c40| 28 73 69 7a 65 5f 74 20 | 73 69 7a 65 29 0d 7b 0d |(size_t |size).{.|
|00001c50| 09 76 6f 69 64 09 2a 6d | 79 70 74 72 20 3d 20 4e |.void.*m|yptr = N|
|00001c60| 55 4c 4c 3b 0d 23 69 66 | 20 55 53 45 5f 4d 45 4d |ULL;.#if| USE_MEM|
|00001c70| 48 41 4e 44 4c 45 53 0d | 09 48 61 6e 64 6c 65 09 |HANDLES.|.Handle.|
|00001c80| 6d 79 68 64 6c 20 3d 20 | 4e 55 4c 4c 3b 0d 23 65 |myhdl = |NULL;.#e|
|00001c90| 6e 64 69 66 0d 0d 09 69 | 66 20 28 4d 61 78 42 6c |ndif...i|f (MaxBl|
|00001ca0| 6f 63 6b 28 29 20 3e 20 | 4d 49 4e 5f 53 41 46 45 |ock() > |MIN_SAFE|
|00001cb0| 5f 42 59 54 45 53 29 0d | 09 7b 0d 23 69 66 20 55 |_BYTES).|.{.#if U|
|00001cc0| 53 45 5f 4d 45 4d 54 41 | 47 53 0d 09 09 73 69 7a |SE_MEMTA|GS...siz|
|00001cd0| 65 20 2b 3d 20 34 3b 20 | 2f 2f 20 61 64 64 20 72 |e += 4; |// add r|
|00001ce0| 6f 6f 6d 20 66 6f 72 20 | 74 61 67 20 4d 41 4c 4c |oom for |tag MALL|
|00001cf0| 4f 43 5f 54 41 47 0d 23 | 65 6e 64 69 66 20 2f 2f |OC_TAG.#|endif //|
|00001d00| 20 55 53 45 5f 4d 45 4d | 54 41 47 53 0d 0d 23 69 | USE_MEM|TAGS..#i|
|00001d10| 66 20 55 53 45 5f 4e 41 | 54 49 56 45 5f 4d 41 4c |f USE_NA|TIVE_MAL|
|00001d20| 4c 4f 43 0d 20 23 69 66 | 20 55 53 45 5f 4d 45 4d |LOC. #if| USE_MEM|
|00001d30| 48 41 4e 44 4c 45 53 0d | 09 09 2f 2f 20 75 73 65 |HANDLES.|..// use|
|00001d40| 20 6c 6f 63 6b 65 64 20 | 68 61 6e 64 6c 65 73 0d | locked |handles.|
|00001d50| 09 09 6d 79 68 64 6c 20 | 3d 20 4e 65 77 48 61 6e |..myhdl |= NewHan|
|00001d60| 64 6c 65 28 73 69 7a 65 | 29 3b 0d 09 09 69 66 20 |dle(size|);...if |
|00001d70| 28 6d 79 68 64 6c 29 0d | 09 09 7b 0d 09 09 09 4d |(myhdl).|..{....M|
|00001d80| 6f 76 65 48 48 69 28 6d | 79 68 64 6c 29 3b 20 2f |oveHHi(m|yhdl); /|
|00001d90| 2f 20 6d 6f 76 65 20 69 | 74 20 75 70 0d 09 09 09 |/ move i|t up....|
|00001da0| 48 4c 6f 63 6b 28 6d 79 | 68 64 6c 29 3b 20 2f 2f |HLock(my|hdl); //|
|00001db0| 20 61 6e 64 20 6c 6f 63 | 6b 20 69 74 20 64 6f 77 | and loc|k it dow|
|00001dc0| 6e 0d 09 09 09 2f 2f 20 | 69 74 27 73 20 72 65 61 |n....// |it's rea|
|00001dd0| 6c 6c 79 20 61 20 68 61 | 6e 64 6c 65 2c 20 74 75 |lly a ha|ndle, tu|
|00001de0| 72 6e 20 69 74 20 69 6e | 74 6f 20 61 20 70 6f 69 |rn it in|to a poi|
|00001df0| 6e 74 65 72 0d 09 09 09 | 6d 79 70 74 72 20 3d 20 |nter....|myptr = |
|00001e00| 2a 6d 79 68 64 6c 3b 0d | 09 09 7d 0d 20 23 65 6c |*myhdl;.|..}. #el|
|00001e10| 73 65 0d 09 09 2f 2f 20 | 75 73 65 20 72 65 67 75 |se...// |use regu|
|00001e20| 6c 61 72 20 70 6f 69 6e | 74 65 72 73 0d 09 09 6d |lar poin|ters...m|
|00001e30| 79 70 74 72 20 3d 20 4e | 65 77 50 74 72 28 73 69 |yptr = N|ewPtr(si|
|00001e40| 7a 65 29 3b 0d 20 23 65 | 6e 64 69 66 20 2f 2f 20 |ze);. #e|ndif // |
|00001e50| 55 53 45 5f 4d 45 4d 48 | 41 4e 44 4c 45 53 0d 23 |USE_MEMH|ANDLES.#|
|00001e60| 65 6c 73 65 0d 09 09 2f | 2f 20 75 73 65 20 53 74 |else.../|/ use St|
|00001e70| 64 20 43 20 4c 69 62 20 | 61 6c 6c 6f 63 61 74 6f |d C Lib |allocato|
|00001e80| 72 0d 09 09 6d 79 70 74 | 72 20 3d 20 6d 61 6c 6c |r...mypt|r = mall|
|00001e90| 6f 63 28 73 69 7a 65 29 | 3b 0d 23 65 6e 64 69 66 |oc(size)|;.#endif|
|00001ea0| 20 2f 2f 20 55 53 45 5f | 4e 41 54 49 56 45 5f 4d | // USE_|NATIVE_M|
|00001eb0| 41 4c 4c 4f 43 0d 0d 09 | 09 69 66 20 28 6d 79 70 |ALLOC...|.if (myp|
|00001ec0| 74 72 29 0d 09 09 7b 20 | 2f 2f 20 73 75 63 63 65 |tr)...{ |// succe|
|00001ed0| 73 73 66 75 6c 6c 79 20 | 61 6c 6c 6f 63 61 74 65 |ssfully |allocate|
|00001ee0| 64 20 69 74 0d 20 0d 23 | 69 66 20 55 53 45 5f 4d |d it. .#|if USE_M|
|00001ef0| 45 4d 54 41 47 53 0d 09 | 09 09 2a 28 6c 6f 6e 67 |EMTAGS..|..*(long|
|00001f00| 2a 29 6d 79 70 74 72 20 | 3d 20 4d 41 4c 4c 4f 43 |*)myptr |= MALLOC|
|00001f10| 5f 54 41 47 3b 0d 09 09 | 09 6d 79 70 74 72 20 3d |_TAG;...|.myptr =|
|00001f20| 20 28 76 6f 69 64 2a 29 | 28 28 28 6c 6f 6e 67 29 | (void*)|(((long)|
|00001f30| 6d 79 70 74 72 29 2b 34 | 4c 29 3b 20 2f 2f 20 70 |myptr)+4|L); // p|
|00001f40| 6f 69 6e 74 20 62 65 79 | 6f 6e 64 20 74 61 67 0d |oint bey|ond tag.|
|00001f50| 23 65 6e 64 69 66 20 2f | 2f 20 55 53 45 5f 4d 45 |#endif /|/ USE_ME|
|00001f60| 4d 54 41 47 53 0d 0d 09 | 09 09 69 66 20 28 67 44 |MTAGS...|..if (gD|
|00001f70| 6f 4d 65 6d 54 72 61 63 | 6b 69 6e 67 29 0d 09 09 |oMemTrac|king)...|
|00001f80| 09 7b 20 20 2f 2f 20 72 | 65 6d 65 6d 62 65 72 20 |.{ // r|emember |
|00001f90| 74 68 69 73 20 70 6f 69 | 6e 74 65 72 20 66 6f 72 |this poi|nter for|
|00001fa0| 20 61 75 74 6f 2d 64 69 | 73 70 6f 73 69 6e 67 20 | auto-di|sposing |
|00001fb0| 6c 61 74 65 72 0d 23 69 | 66 20 55 53 45 5f 4d 45 |later.#i|f USE_ME|
|00001fc0| 4d 48 41 4e 44 4c 45 53 | 0d 09 09 09 09 2f 2f 20 |MHANDLES|.....// |
|00001fd0| 72 65 6d 65 6d 62 65 72 | 20 74 68 65 20 68 61 6e |remember| the han|
|00001fe0| 64 6c 65 0d 09 09 09 09 | 67 4d 61 6c 6c 6f 63 4c |dle.....|gMallocL|
|00001ff0| 69 73 74 5b 67 4d 61 6c | 6c 6f 63 4c 69 73 74 43 |ist[gMal|locListC|
|00002000| 6f 75 6e 74 5d 20 3d 20 | 28 50 74 72 29 6d 79 68 |ount] = |(Ptr)myh|
|00002010| 64 6c 3b 0d 23 65 6c 73 | 65 0d 09 09 09 09 67 4d |dl;.#els|e.....gM|
|00002020| 61 6c 6c 6f 63 4c 69 73 | 74 5b 67 4d 61 6c 6c 6f |allocLis|t[gMallo|
|00002030| 63 4c 69 73 74 43 6f 75 | 6e 74 5d 20 3d 20 6d 79 |cListCou|nt] = my|
|00002040| 70 74 72 3b 0d 23 65 6e | 64 69 66 0d 09 09 09 09 |ptr;.#en|dif.....|
|00002050| 69 66 20 28 67 4d 61 6c | 6c 6f 63 4c 69 73 74 43 |if (gMal|locListC|
|00002060| 6f 75 6e 74 20 3c 20 67 | 4d 61 6c 6c 6f 63 4c 69 |ount < g|MallocLi|
|00002070| 73 74 53 69 7a 65 29 0d | 09 09 09 09 09 67 4d 61 |stSize).|.....gMa|
|00002080| 6c 6c 6f 63 4c 69 73 74 | 43 6f 75 6e 74 2b 2b 3b |llocList|Count++;|
|00002090| 0d 09 09 09 09 65 6c 73 | 65 0d 09 09 09 09 09 67 |.....els|e......g|
|000020a0| 45 73 63 61 70 65 64 4d | 61 6c 6c 6f 63 73 43 6f |EscapedM|allocsCo|
|000020b0| 75 6e 74 2b 2b 3b 20 2f | 2f 20 6f 6f 70 73 2c 20 |unt++; /|/ oops, |
|000020c0| 6f 76 65 72 66 6c 6f 77 | 2c 20 6f 6e 65 20 67 6f |overflow|, one go|
|000020d0| 74 20 61 77 61 79 21 0d | 09 09 09 7d 0d 09 09 7d |t away!.|...}...}|
|000020e0| 0d 09 7d 0d 0d 09 2f 2f | 20 61 6c 6c 6f 63 61 74 |..}...//| allocat|
|000020f0| 69 6f 6e 20 77 61 73 20 | 75 6e 73 75 63 63 65 73 |ion was |unsucces|
|00002100| 73 66 75 6c 0d 09 69 66 | 20 28 6d 79 70 74 72 20 |sful..if| (myptr |
|00002110| 3d 3d 20 4e 55 4c 4c 29 | 0d 09 09 48 61 6e 64 6c |== NULL)|...Handl|
|00002120| 65 4f 75 74 4f 66 4d 65 | 6d 28 29 3b 0d 0d 09 72 |eOutOfMe|m();...r|
|00002130| 65 74 75 72 6e 20 6d 79 | 70 74 72 3b 0d 0d 7d 20 |eturn my|ptr;..} |
|00002140| 2f 2f 20 50 4f 56 5f 6d | 61 6c 6c 6f 63 0d 0d 0d |// POV_m|alloc...|
|00002150| 2f 2f 20 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |// =====|========|
|00002160| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002170| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002180| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002190| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 76 6f 69 64 20 2a 50 |========|.void *P|
|000021a0| 4f 56 5f 63 61 6c 6c 6f | 63 28 73 69 7a 65 5f 74 |OV_callo|c(size_t|
|000021b0| 20 6e 6d 65 6d 62 2c 20 | 73 69 7a 65 5f 74 20 73 | nmemb, |size_t s|
|000021c0| 69 7a 65 29 0d 7b 0d 09 | 76 6f 69 64 20 2a 6d 79 |ize).{..|void *my|
|000021d0| 70 74 72 20 3d 20 4e 55 | 4c 4c 3b 0d 23 69 66 20 |ptr = NU|LL;.#if |
|000021e0| 55 53 45 5f 4d 45 4d 48 | 41 4e 44 4c 45 53 0d 09 |USE_MEMH|ANDLES..|
|000021f0| 48 61 6e 64 6c 65 09 6d | 79 68 64 6c 20 3d 20 4e |Handle.m|yhdl = N|
|00002200| 55 4c 4c 3b 0d 23 65 6e | 64 69 66 0d 0d 09 69 66 |ULL;.#en|dif...if|
|00002210| 20 28 4d 61 78 42 6c 6f | 63 6b 28 29 20 3e 20 4d | (MaxBlo|ck() > M|
|00002220| 49 4e 5f 53 41 46 45 5f | 42 59 54 45 53 29 0d 09 |IN_SAFE_|BYTES)..|
|00002230| 7b 0d 23 69 66 20 55 53 | 45 5f 4d 45 4d 54 41 47 |{.#if US|E_MEMTAG|
|00002240| 53 0d 09 09 73 69 7a 65 | 20 2b 3d 20 34 3b 20 2f |S...size| += 4; /|
|00002250| 2f 20 61 64 64 20 72 6f | 6f 6d 20 66 6f 72 20 74 |/ add ro|om for t|
|00002260| 61 67 20 4d 41 4c 4c 4f | 43 5f 54 41 47 0d 23 65 |ag MALLO|C_TAG.#e|
|00002270| 6e 64 69 66 20 2f 2f 20 | 55 53 45 5f 4d 45 4d 54 |ndif // |USE_MEMT|
|00002280| 41 47 53 0d 0d 23 69 66 | 20 55 53 45 5f 4e 41 54 |AGS..#if| USE_NAT|
|00002290| 49 56 45 5f 4d 41 4c 4c | 4f 43 0d 20 23 69 66 20 |IVE_MALL|OC. #if |
|000022a0| 55 53 45 5f 4d 45 4d 48 | 41 4e 44 4c 45 53 0d 09 |USE_MEMH|ANDLES..|
|000022b0| 09 2f 2f 20 75 73 65 20 | 6c 6f 63 6b 65 64 20 68 |.// use |locked h|
|000022c0| 61 6e 64 6c 65 73 0d 09 | 09 6d 79 70 74 72 20 3d |andles..|.myptr =|
|000022d0| 20 4e 65 77 48 61 6e 64 | 6c 65 43 6c 65 61 72 28 | NewHand|leClear(|
|000022e0| 6e 6d 65 6d 62 2a 73 69 | 7a 65 29 3b 0d 09 09 69 |nmemb*si|ze);...i|
|000022f0| 66 20 28 6d 79 68 64 6c | 29 0d 09 09 7b 0d 09 09 |f (myhdl|)...{...|
|00002300| 09 4d 6f 76 65 48 48 69 | 28 6d 79 68 64 6c 29 3b |.MoveHHi|(myhdl);|
|00002310| 20 2f 2f 20 6d 6f 76 65 | 20 69 74 20 75 70 0d 09 | // move| it up..|
|00002320| 09 09 48 4c 6f 63 6b 28 | 6d 79 68 64 6c 29 3b 20 |..HLock(|myhdl); |
|00002330| 2f 2f 20 61 6e 64 20 6c | 6f 63 6b 20 69 74 20 64 |// and l|ock it d|
|00002340| 6f 77 6e 0d 09 09 09 2f | 2f 20 69 74 27 73 20 72 |own..../|/ it's r|
|00002350| 65 61 6c 6c 79 20 61 20 | 68 61 6e 64 6c 65 2c 20 |eally a |handle, |
|00002360| 74 75 72 6e 20 69 74 20 | 69 6e 74 6f 20 61 20 70 |turn it |into a p|
|00002370| 6f 69 6e 74 65 72 0d 09 | 09 09 6d 79 70 74 72 20 |ointer..|..myptr |
|00002380| 3d 20 2a 6d 79 68 64 6c | 3b 0d 09 09 7d 0d 20 23 |= *myhdl|;...}. #|
|00002390| 65 6c 73 65 0d 09 09 2f | 2f 20 75 73 65 20 72 65 |else.../|/ use re|
|000023a0| 67 75 6c 61 72 20 70 6f | 69 6e 74 65 72 73 0d 09 |gular po|inters..|
|000023b0| 09 6d 79 70 74 72 20 3d | 20 4e 65 77 50 74 72 43 |.myptr =| NewPtrC|
|000023c0| 6c 65 61 72 28 6e 6d 65 | 6d 62 2a 73 69 7a 65 29 |lear(nme|mb*size)|
|000023d0| 3b 0d 20 23 65 6e 64 69 | 66 20 2f 2f 20 55 53 45 |;. #endi|f // USE|
|000023e0| 5f 4d 45 4d 48 41 4e 44 | 4c 45 53 0d 23 65 6c 73 |_MEMHAND|LES.#els|
|000023f0| 65 0d 09 09 6d 79 70 74 | 72 20 3d 20 63 61 6c 6c |e...mypt|r = call|
|00002400| 6f 63 28 6e 6d 65 6d 62 | 2c 73 69 7a 65 29 3b 0d |oc(nmemb|,size);.|
|00002410| 23 65 6e 64 69 66 20 2f | 2f 20 55 53 45 5f 4e 41 |#endif /|/ USE_NA|
|00002420| 54 49 56 45 5f 4d 41 4c | 4c 4f 43 0d 0d 09 09 69 |TIVE_MAL|LOC....i|
|00002430| 66 20 28 6d 79 70 74 72 | 29 0d 09 09 7b 20 2f 2f |f (myptr|)...{ //|
|00002440| 20 73 75 63 63 65 73 73 | 66 75 6c 6c 79 20 61 6c | success|fully al|
|00002450| 6c 6f 63 61 74 65 64 20 | 69 74 20 0d 23 69 66 20 |located |it .#if |
|00002460| 55 53 45 5f 4d 45 4d 54 | 41 47 53 0d 09 09 09 2a |USE_MEMT|AGS....*|
|00002470| 28 6c 6f 6e 67 2a 29 6d | 79 70 74 72 20 3d 20 4d |(long*)m|yptr = M|
|00002480| 41 4c 4c 4f 43 5f 54 41 | 47 3b 0d 09 09 09 6d 79 |ALLOC_TA|G;....my|
|00002490| 70 74 72 20 3d 20 28 76 | 6f 69 64 2a 29 28 28 28 |ptr = (v|oid*)(((|
|000024a0| 6c 6f 6e 67 29 6d 79 70 | 74 72 29 2b 34 4c 29 3b |long)myp|tr)+4L);|
|000024b0| 20 2f 2f 20 70 6f 69 6e | 74 20 62 65 79 6f 6e 64 | // poin|t beyond|
|000024c0| 20 74 61 67 0d 23 65 6e | 64 69 66 20 2f 2f 20 55 | tag.#en|dif // U|
|000024d0| 53 45 5f 4d 45 4d 54 41 | 47 53 0d 0d 09 09 09 69 |SE_MEMTA|GS.....i|
|000024e0| 66 20 28 67 44 6f 4d 65 | 6d 54 72 61 63 6b 69 6e |f (gDoMe|mTrackin|
|000024f0| 67 29 0d 09 09 09 7b 20 | 20 2f 2f 20 72 65 6d 65 |g)....{ | // reme|
|00002500| 6d 62 65 72 20 74 68 69 | 73 20 70 6f 69 6e 74 65 |mber thi|s pointe|
|00002510| 72 20 66 6f 72 20 61 75 | 74 6f 2d 64 69 73 70 6f |r for au|to-dispo|
|00002520| 73 69 6e 67 20 6c 61 74 | 65 72 0d 23 69 66 20 55 |sing lat|er.#if U|
|00002530| 53 45 5f 4d 45 4d 48 41 | 4e 44 4c 45 53 0d 09 09 |SE_MEMHA|NDLES...|
|00002540| 09 09 2f 2f 20 72 65 6d | 65 6d 62 65 72 20 74 68 |..// rem|ember th|
|00002550| 65 20 68 61 6e 64 6c 65 | 0d 09 09 09 09 67 4d 61 |e handle|.....gMa|
|00002560| 6c 6c 6f 63 4c 69 73 74 | 5b 67 4d 61 6c 6c 6f 63 |llocList|[gMalloc|
|00002570| 4c 69 73 74 43 6f 75 6e | 74 5d 20 3d 20 28 50 74 |ListCoun|t] = (Pt|
|00002580| 72 29 6d 79 68 64 6c 3b | 0d 23 65 6c 73 65 0d 09 |r)myhdl;|.#else..|
|00002590| 09 09 09 67 4d 61 6c 6c | 6f 63 4c 69 73 74 5b 67 |...gMall|ocList[g|
|000025a0| 4d 61 6c 6c 6f 63 4c 69 | 73 74 43 6f 75 6e 74 5d |MallocLi|stCount]|
|000025b0| 20 3d 20 6d 79 70 74 72 | 3b 0d 23 65 6e 64 69 66 | = myptr|;.#endif|
|000025c0| 0d 09 09 09 09 69 66 20 | 28 67 4d 61 6c 6c 6f 63 |.....if |(gMalloc|
|000025d0| 4c 69 73 74 43 6f 75 6e | 74 20 3c 20 67 4d 61 6c |ListCoun|t < gMal|
|000025e0| 6c 6f 63 4c 69 73 74 53 | 69 7a 65 29 0d 09 09 09 |locListS|ize)....|
|000025f0| 09 09 67 4d 61 6c 6c 6f | 63 4c 69 73 74 43 6f 75 |..gMallo|cListCou|
|00002600| 6e 74 2b 2b 3b 0d 09 09 | 09 09 65 6c 73 65 0d 09 |nt++;...|..else..|
|00002610| 09 09 09 09 67 45 73 63 | 61 70 65 64 4d 61 6c 6c |....gEsc|apedMall|
|00002620| 6f 63 73 43 6f 75 6e 74 | 2b 2b 3b 20 2f 2f 20 6f |ocsCount|++; // o|
|00002630| 6f 70 73 2c 20 6f 76 65 | 72 66 6c 6f 77 2c 20 6f |ops, ove|rflow, o|
|00002640| 6e 65 20 67 6f 74 20 61 | 77 61 79 21 0d 09 09 09 |ne got a|way!....|
|00002650| 7d 0d 09 09 7d 0d 09 7d | 0d 0d 09 2f 2f 20 61 6c |}...}..}|...// al|
|00002660| 6c 6f 63 61 74 69 6f 6e | 20 77 61 73 20 75 6e 73 |location| was uns|
|00002670| 75 63 63 65 73 73 66 75 | 6c 0d 09 69 66 20 28 6d |uccessfu|l..if (m|
|00002680| 79 70 74 72 20 3d 3d 20 | 4e 55 4c 4c 29 0d 09 09 |yptr == |NULL)...|
|00002690| 48 61 6e 64 6c 65 4f 75 | 74 4f 66 4d 65 6d 28 29 |HandleOu|tOfMem()|
|000026a0| 3b 0d 0d 09 72 65 74 75 | 72 6e 20 6d 79 70 74 72 |;...retu|rn myptr|
|000026b0| 3b 0d 0d 7d 20 2f 2f 20 | 50 4f 56 5f 63 61 6c 6c |;..} // |POV_call|
|000026c0| 6f 63 0d 0d 0d 0d 2f 2f | 20 3d 3d 3d 3d 3d 3d 3d |oc....//| =======|
|000026d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000026e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000026f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002700| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 76 |========|======.v|
|00002710| 6f 69 64 20 2a 50 4f 56 | 5f 72 65 61 6c 6c 6f 63 |oid *POV|_realloc|
|00002720| 28 76 6f 69 64 20 2a 20 | 70 2c 20 73 69 7a 65 5f |(void * |p, size_|
|00002730| 74 20 6e 65 77 73 69 7a | 65 29 0d 7b 0d 70 72 69 |t newsiz|e).{.pri|
|00002740| 6e 74 66 28 22 45 52 52 | 4f 52 21 20 72 65 61 6c |ntf("ERR|OR! real|
|00002750| 6c 6f 63 20 6e 6f 74 20 | 72 65 61 64 79 21 5c 6e |loc not |ready!\n|
|00002760| 22 29 3b 0d 2f 2a 0d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |");./*.-|--------|
|00002770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 20 |--------|------- |
|00002790| 6e 6f 74 20 72 65 61 64 | 79 20 79 65 74 21 0d 23 |not read|y yet!.#|
|000027a0| 69 66 20 55 53 45 5f 4e | 41 54 49 56 45 5f 4d 41 |if USE_N|ATIVE_MA|
|000027b0| 4c 4c 4f 43 0d 09 73 69 | 7a 65 5f 74 09 6f 6c 64 |LLOC..si|ze_t.old|
|000027c0| 73 69 7a 65 3b 0d 23 65 | 6e 64 69 66 0d 23 69 66 |size;.#e|ndif.#if|
|000027d0| 20 55 53 45 5f 4d 45 4d | 48 41 4e 44 4c 45 53 0d | USE_MEM|HANDLES.|
|000027e0| 09 48 61 6e 64 6c 65 09 | 6d 79 68 64 6c 20 3d 20 |.Handle.|myhdl = |
|000027f0| 4e 55 4c 4c 3b 0d 23 65 | 6e 64 69 66 0d 0d 09 73 |NULL;.#e|ndif...s|
|00002800| 68 6f 72 74 09 6b 3b 0d | 09 76 6f 69 64 09 2a 6d |hort.k;.|.void.*m|
|00002810| 79 70 74 72 20 3d 20 4e | 55 4c 4c 3b 0d 0d 09 2f |yptr = N|ULL;.../|
|00002820| 2f 20 57 61 72 6e 20 75 | 73 65 72 20 69 66 20 6e |/ Warn u|ser if n|
|00002830| 69 6c 20 70 6f 69 6e 74 | 65 72 20 70 61 73 73 65 |il point|er passe|
|00002840| 64 20 69 6e 21 0d 09 69 | 66 20 28 70 20 3d 3d 20 |d in!..i|f (p == |
|00002850| 4e 55 4c 4c 29 0d 09 7b | 0d 09 09 70 72 69 6e 74 |NULL)..{|...print|
|00002860| 66 28 22 23 23 20 57 61 | 72 6e 69 6e 67 21 20 49 |f("## Wa|rning! I|
|00002870| 67 6e 6f 72 69 6e 67 20 | 61 6e 20 61 74 74 65 6d |gnoring |an attem|
|00002880| 70 74 20 74 6f 20 72 65 | 61 6c 6c 6f 63 20 61 20 |pt to re|alloc a |
|00002890| 6e 69 6c 20 70 6f 69 6e | 74 65 72 21 5c 6e 22 29 |nil poin|ter!\n")|
|000028a0| 3b 0d 23 69 66 20 55 53 | 45 5f 4d 45 4d 54 41 47 |;.#if US|E_MEMTAG|
|000028b0| 53 0d 09 09 44 65 62 75 | 67 53 74 72 28 22 5c 70 |S...Debu|gStr("\p|
|000028c0| 54 72 69 65 64 20 74 6f | 20 66 72 65 65 20 61 20 |Tried to| free a |
|000028d0| 6e 69 6c 20 70 6f 69 6e | 74 65 72 22 29 3b 0d 23 |nil poin|ter");.#|
|000028e0| 65 6e 64 69 66 20 2f 2f | 20 55 53 45 5f 4d 45 4d |endif //| USE_MEM|
|000028f0| 54 41 47 53 0d 09 09 72 | 65 74 75 72 6e 20 4e 55 |TAGS...r|eturn NU|
|00002900| 4c 4c 3b 0d 09 7d 0d 0d | 09 69 66 20 28 4d 61 78 |LL;..}..|.if (Max|
|00002910| 42 6c 6f 63 6b 28 29 20 | 3e 20 4d 49 4e 5f 53 41 |Block() |> MIN_SA|
|00002920| 46 45 5f 42 59 54 45 53 | 29 0d 09 7b 0d 23 69 66 |FE_BYTES|)..{.#if|
|00002930| 20 55 53 45 5f 4d 45 4d | 54 41 47 53 0d 09 09 6e | USE_MEM|TAGS...n|
|00002940| 65 77 73 69 7a 65 20 2b | 3d 20 34 3b 20 2f 2f 20 |ewsize +|= 4; // |
|00002950| 61 64 64 20 72 6f 6f 6d | 20 66 6f 72 20 74 61 67 |add room| for tag|
|00002960| 20 4d 41 4c 4c 4f 43 5f | 54 41 47 0d 09 09 70 4f | MALLOC_|TAG...pO|
|00002970| 72 69 67 20 3d 20 28 76 | 6f 69 64 2a 29 28 28 28 |rig = (v|oid*)(((|
|00002980| 6c 6f 6e 67 29 70 29 2d | 34 4c 29 3b 20 2f 2f 20 |long)p)-|4L); // |
|00002990| 62 61 63 6b 20 75 70 20 | 74 6f 20 74 61 67 2f 6f |back up |to tag/o|
|000029a0| 72 69 67 69 6e 61 6c 20 | 70 6f 73 69 74 69 6f 6e |riginal |position|
|000029b0| 0d 09 09 69 66 20 28 2a | 28 6c 6f 6e 67 2a 29 70 |...if (*|(long*)p|
|000029c0| 4f 72 69 67 20 21 3d 20 | 4d 41 4c 4c 4f 43 5f 54 |Orig != |MALLOC_T|
|000029d0| 41 47 29 0d 09 09 7b 0d | 09 09 09 70 72 69 6e 74 |AG)...{.|...print|
|000029e0| 66 28 22 23 23 20 45 72 | 72 6f 72 21 20 20 54 72 |f("## Er|ror! Tr|
|000029f0| 69 65 64 20 74 6f 20 72 | 65 61 6c 6c 6f 63 20 61 |ied to r|ealloc a|
|00002a00| 20 62 61 64 2f 73 74 6f | 6d 70 65 64 20 62 6c 6f | bad/sto|mped blo|
|00002a10| 63 6b 21 20 28 24 25 6c | 78 29 5c 6e 22 2c 70 4f |ck! ($%l|x)\n",pO|
|00002a20| 72 69 67 29 3b 0d 09 09 | 09 44 65 62 75 67 53 74 |rig);...|.DebugSt|
|00002a30| 72 28 22 5c 70 54 72 69 | 65 64 20 74 6f 20 72 65 |r("\pTri|ed to re|
|00002a40| 61 6c 6c 6f 63 20 61 20 | 62 61 64 2f 73 74 6f 6d |alloc a |bad/stom|
|00002a50| 70 65 64 20 62 6c 6f 63 | 6b 20 31 22 29 3b 0d 09 |ped bloc|k 1");..|
|00002a60| 09 7d 0d 23 65 6e 64 69 | 66 20 2f 2f 20 55 53 45 |.}.#endi|f // USE|
|00002a70| 5f 4d 45 4d 54 41 47 53 | 0d 0d 23 69 66 20 55 53 |_MEMTAGS|..#if US|
|00002a80| 45 5f 4e 41 54 49 56 45 | 5f 4d 41 4c 4c 4f 43 0d |E_NATIVE|_MALLOC.|
|00002a90| 0d 20 23 69 66 20 55 53 | 45 5f 4d 45 4d 48 41 4e |. #if US|E_MEMHAN|
|00002aa0| 44 4c 45 53 0d 09 09 2f | 2f 20 67 65 74 20 70 72 |DLES.../|/ get pr|
|00002ab0| 65 76 69 6f 75 73 20 73 | 69 7a 65 20 66 6f 72 20 |evious s|ize for |
|00002ac0| 73 68 72 69 6e 6b 2f 67 | 72 6f 77 20 63 68 65 63 |shrink/g|row chec|
|00002ad0| 6b 0d 09 09 6f 6c 64 73 | 69 7a 65 20 3d 20 47 65 |k...olds|ize = Ge|
|00002ae0| 74 48 61 6e 64 6c 65 53 | 69 7a 65 28 52 65 63 6f |tHandleS|ize(Reco|
|00002af0| 76 65 72 48 61 6e 64 6c | 65 28 70 29 29 3b 0d 09 |verHandl|e(p));..|
|00002b00| 09 2f 2f 20 61 6c 6c 6f | 63 61 74 65 20 6e 65 77 |.// allo|cate new|
|00002b10| 20 73 70 61 63 65 2e 2e | 2e 20 75 73 65 20 6c 6f | space..|. use lo|
|00002b20| 63 6b 65 64 20 68 61 6e | 64 6c 65 73 0d 09 09 6d |cked han|dles...m|
|00002b30| 79 68 64 6c 20 3d 20 28 | 50 74 72 29 4e 65 77 48 |yhdl = (|Ptr)NewH|
|00002b40| 61 6e 64 6c 65 28 6e 65 | 77 73 69 7a 65 29 3b 0d |andle(ne|wsize);.|
|00002b50| 20 23 65 6c 73 65 0d 09 | 09 2f 2f 20 67 65 74 20 | #else..|.// get |
|00002b60| 70 72 65 76 69 6f 75 73 | 20 73 69 7a 65 20 66 6f |previous| size fo|
|00002b70| 72 20 73 68 72 69 6e 6b | 2f 67 72 6f 77 20 63 68 |r shrink|/grow ch|
|00002b80| 65 63 6b 0d 09 09 6f 6c | 64 73 69 7a 65 20 3d 20 |eck...ol|dsize = |
|00002b90| 47 65 74 50 74 72 53 69 | 7a 65 28 70 29 3b 0d 09 |GetPtrSi|ze(p);..|
|00002ba0| 09 2f 2f 20 61 6c 6c 6f | 63 61 74 65 20 6e 65 77 |.// allo|cate new|
|00002bb0| 20 73 70 61 63 65 2e 2e | 2e 20 75 73 65 20 72 65 | space..|. use re|
|00002bc0| 67 75 6c 61 72 20 70 6f | 69 6e 74 65 72 73 0d 09 |gular po|inters..|
|00002bd0| 09 6d 79 70 74 72 20 3d | 20 4e 65 77 50 74 72 28 |.myptr =| NewPtr(|
|00002be0| 6e 65 77 73 69 7a 65 29 | 3b 0d 20 23 65 6e 64 69 |newsize)|;. #endi|
|00002bf0| 66 20 2f 2f 20 55 53 45 | 5f 4d 45 4d 48 41 4e 44 |f // USE|_MEMHAND|
|00002c00| 4c 45 53 0d 0d 09 09 69 | 66 20 28 6d 79 70 74 72 |LES....i|f (myptr|
|00002c10| 29 0d 09 09 7b 0d 20 23 | 69 66 20 55 53 45 5f 4d |)...{. #|if USE_M|
|00002c20| 45 4d 48 41 4e 44 4c 45 | 53 0d 09 09 09 4d 6f 76 |EMHANDLE|S....Mov|
|00002c30| 65 48 48 69 28 6d 79 70 | 74 72 29 3b 20 2f 2f 20 |eHHi(myp|tr); // |
|00002c40| 6d 6f 76 65 20 69 74 20 | 75 70 0d 09 09 09 48 4c |move it |up....HL|
|00002c50| 6f 63 6b 28 6d 79 70 74 | 72 29 3b 20 2f 2f 20 61 |ock(mypt|r); // a|
|00002c60| 6e 64 20 6c 6f 63 6b 20 | 69 74 20 64 6f 77 6e 0d |nd lock |it down.|
|00002c70| 09 09 09 2f 2f 20 69 74 | 27 73 20 72 65 61 6c 6c |...// it|'s reall|
|00002c80| 79 20 61 20 68 61 6e 64 | 6c 65 2c 20 74 75 72 6e |y a hand|le, turn|
|00002c90| 20 69 74 20 69 6e 74 6f | 20 61 20 70 6f 69 6e 74 | it into| a point|
|00002ca0| 65 72 0d 09 09 09 6d 79 | 70 74 72 20 3d 20 2a 28 |er....my|ptr = *(|
|00002cb0| 48 61 6e 64 6c 65 29 6d | 79 70 74 72 3b 0d 20 23 |Handle)m|yptr;. #|
|00002cc0| 65 6e 64 69 66 20 2f 2f | 20 55 53 45 5f 4d 45 4d |endif //| USE_MEM|
|00002cd0| 48 41 4e 44 4c 45 53 0d | 20 0d 23 69 66 20 55 53 |HANDLES.| .#if US|
|00002ce0| 45 5f 4d 45 4d 54 41 47 | 53 0d 09 09 09 6f 6c 64 |E_MEMTAG|S....old|
|00002cf0| 73 69 7a 65 20 2d 3d 20 | 34 3b 20 2f 2f 20 72 65 |size -= |4; // re|
|00002d00| 6d 6f 76 65 20 73 69 7a | 65 20 6f 66 20 74 61 67 |move siz|e of tag|
|00002d10| 20 4d 41 4c 4c 4f 43 5f | 54 41 47 2c 20 6a 75 73 | MALLOC_|TAG, jus|
|00002d20| 74 20 63 6f 70 79 20 64 | 61 74 61 0d 09 09 09 6e |t copy d|ata....n|
|00002d30| 65 77 73 69 7a 65 20 2d | 3d 20 34 3b 20 2f 2f 20 |ewsize -|= 4; // |
|00002d40| 72 65 6d 6f 76 65 20 73 | 69 7a 65 20 6f 66 20 74 |remove s|ize of t|
|00002d50| 61 67 20 4d 41 4c 4c 4f | 43 5f 54 41 47 2c 20 6a |ag MALLO|C_TAG, j|
|00002d60| 75 73 74 20 63 6f 70 79 | 20 64 61 74 61 0d 23 65 |ust copy| data.#e|
|00002d70| 6e 64 69 66 0d 09 09 09 | 2f 2f 20 63 6f 70 79 20 |ndif....|// copy |
|00002d80| 6f 6c 64 20 63 6f 6e 74 | 65 6e 74 73 20 69 6e 74 |old cont|ents int|
|00002d90| 6f 20 6e 65 77 20 73 70 | 61 63 65 20 28 74 72 69 |o new sp|ace (tri|
|00002da0| 6d 20 69 66 20 6c 65 73 | 73 20 73 70 61 63 65 29 |m if les|s space)|
|00002db0| 0d 09 09 09 42 6c 6f 63 | 6b 4d 6f 76 65 28 70 2c |....Bloc|kMove(p,|
|00002dc0| 20 6d 79 70 74 72 2c 20 | 28 6f 6c 64 73 69 7a 65 | myptr, |(oldsize|
|00002dd0| 3c 6e 65 77 73 69 7a 65 | 29 3f 6f 6c 64 73 69 7a |<newsize|)?oldsiz|
|00002de0| 65 3a 6e 65 77 73 69 7a | 65 29 3b 0d 0d 09 09 09 |e:newsiz|e);.....|
|00002df0| 2f 2f 20 6e 6f 77 20 72 | 65 6c 65 61 73 65 20 6f |// now r|elease o|
|00002e00| 6c 64 20 6d 65 6d 6f 72 | 79 2e 2e 2e 0d 09 09 09 |ld memor|y.......|
|00002e10| 50 4f 56 5f 66 72 65 65 | 28 70 29 3b 0d 09 09 7d |POV_free|(p);...}|
|00002e20| 0d 23 65 6c 73 65 0d 09 | 09 2f 2f 20 64 6f 20 74 |.#else..|.// do t|
|00002e30| 68 65 20 41 4e 53 49 20 | 74 68 69 6e 67 0d 09 09 |he ANSI |thing...|
|00002e40| 6d 79 70 74 72 20 3d 20 | 72 65 61 6c 6c 6f 63 28 |myptr = |realloc(|
|00002e50| 70 2c 20 6e 65 77 73 69 | 7a 65 29 3b 0d 23 65 6e |p, newsi|ze);.#en|
|00002e60| 64 69 66 20 2f 2f 20 55 | 53 45 5f 4e 41 54 49 56 |dif // U|SE_NATIV|
|00002e70| 45 5f 4d 41 4c 4c 4f 43 | 0d 0d 09 09 69 66 20 28 |E_MALLOC|....if (|
|00002e80| 6d 79 70 74 72 29 0d 09 | 09 7b 20 2f 2f 20 73 75 |myptr)..|.{ // su|
|00002e90| 63 63 65 73 73 66 75 6c | 6c 79 20 72 65 2d 61 6c |ccessful|ly re-al|
|00002ea0| 6c 6f 63 61 74 65 64 20 | 69 74 0d 23 69 66 20 55 |located |it.#if U|
|00002eb0| 53 45 5f 4d 45 4d 54 41 | 47 53 0d 09 09 09 2a 28 |SE_MEMTA|GS....*(|
|00002ec0| 6c 6f 6e 67 2a 29 6d 79 | 70 74 72 20 3d 20 4d 41 |long*)my|ptr = MA|
|00002ed0| 4c 4c 4f 43 5f 54 41 47 | 3b 0d 09 09 09 6d 79 70 |LLOC_TAG|;....myp|
|00002ee0| 74 72 20 3d 20 28 76 6f | 69 64 2a 29 28 28 28 6c |tr = (vo|id*)(((l|
|00002ef0| 6f 6e 67 29 6d 79 70 74 | 72 29 2b 34 4c 29 3b 20 |ong)mypt|r)+4L); |
|00002f00| 2f 2f 20 70 6f 69 6e 74 | 20 62 65 79 6f 6e 64 20 |// point| beyond |
|00002f10| 74 61 67 0d 23 65 6e 64 | 69 66 20 2f 2f 20 55 53 |tag.#end|if // US|
|00002f20| 45 5f 4d 45 4d 54 41 47 | 53 0d 0d 09 09 09 69 66 |E_MEMTAG|S.....if|
|00002f30| 20 28 67 44 6f 4d 65 6d | 54 72 61 63 6b 69 6e 67 | (gDoMem|Tracking|
|00002f40| 29 0d 09 09 09 7b 20 20 | 2f 2f 20 72 65 6d 65 6d |)....{ |// remem|
|00002f50| 62 65 72 20 74 68 69 73 | 20 6e 65 77 20 70 6f 69 |ber this| new poi|
|00002f60| 6e 74 65 72 20 66 6f 72 | 20 61 75 74 6f 2d 64 69 |nter for| auto-di|
|00002f70| 73 70 6f 73 69 6e 67 20 | 6c 61 74 65 72 0d 09 09 |sposing |later...|
|00002f80| 09 09 67 4d 61 6c 6c 6f | 63 4c 69 73 74 5b 67 4d |..gMallo|cList[gM|
|00002f90| 61 6c 6c 6f 63 4c 69 73 | 74 43 6f 75 6e 74 5d 20 |allocLis|tCount] |
|00002fa0| 3d 20 6d 79 70 74 72 3b | 0d 09 09 09 09 69 66 20 |= myptr;|.....if |
|00002fb0| 28 67 4d 61 6c 6c 6f 63 | 4c 69 73 74 43 6f 75 6e |(gMalloc|ListCoun|
|00002fc0| 74 20 3c 20 67 4d 61 6c | 6c 6f 63 4c 69 73 74 53 |t < gMal|locListS|
|00002fd0| 69 7a 65 29 0d 09 09 09 | 09 09 67 4d 61 6c 6c 6f |ize)....|..gMallo|
|00002fe0| 63 4c 69 73 74 43 6f 75 | 6e 74 2b 2b 3b 0d 09 09 |cListCou|nt++;...|
|00002ff0| 09 09 65 6c 73 65 0d 09 | 09 09 09 09 67 45 73 63 |..else..|....gEsc|
|00003000| 61 70 65 64 4d 61 6c 6c | 6f 63 73 43 6f 75 6e 74 |apedMall|ocsCount|
|00003010| 2b 2b 3b 20 2f 2f 20 6f | 6f 70 73 2c 20 6f 76 65 |++; // o|ops, ove|
|00003020| 72 66 6c 6f 77 2c 20 6f | 6e 65 20 67 6f 74 20 61 |rflow, o|ne got a|
|00003030| 77 61 79 21 0d 09 09 09 | 7d 0d 09 09 7d 0d 09 7d |way!....|}...}..}|
|00003040| 0d 0d 09 2f 2f 20 61 6c | 6c 6f 63 61 74 69 6f 6e |...// al|location|
|00003050| 20 77 61 73 20 75 6e 73 | 75 63 63 65 73 73 66 75 | was uns|uccessfu|
|00003060| 6c 0d 09 69 66 20 28 6d | 79 70 74 72 20 3d 3d 20 |l..if (m|yptr == |
|00003070| 4e 55 4c 4c 29 0d 09 09 | 48 61 6e 64 6c 65 4f 75 |NULL)...|HandleOu|
|00003080| 74 4f 66 4d 65 6d 28 29 | 3b 0d 0d 09 72 65 74 75 |tOfMem()|;...retu|
|00003090| 72 6e 20 6d 79 70 74 72 | 3b 0d 2d 2d 2d 2d 2d 2d |rn myptr|;.------|
|000030a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2a |--------|------.*|
|000030c0| 2f 0d 7d 20 2f 2f 20 50 | 4f 56 5f 72 65 61 6c 6c |/.} // P|OV_reall|
|000030d0| 6f 63 0d 0d 0d 2f 2f 20 | 3d 3d 3d 3d 3d 3d 3d 3d |oc...// |========|
|000030e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000030f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003100| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 76 6f |========|=====.vo|
|00003120| 69 64 20 50 4f 56 5f 66 | 72 65 65 28 76 6f 69 64 |id POV_f|ree(void|
|00003130| 20 2a 6d 79 70 74 72 29 | 0d 7b 0d 23 69 66 20 55 | *myptr)|.{.#if U|
|00003140| 53 45 5f 4d 45 4d 48 41 | 4e 44 4c 45 53 0d 20 09 |SE_MEMHA|NDLES. .|
|00003150| 48 61 6e 64 6c 65 09 09 | 6d 79 68 64 6c 20 3d 20 |Handle..|myhdl = |
|00003160| 4e 55 4c 4c 3b 0d 23 65 | 6e 64 69 66 20 2f 2f 20 |NULL;.#e|ndif // |
|00003170| 55 53 45 5f 4d 45 4d 48 | 41 4e 44 4c 45 53 0d 20 |USE_MEMH|ANDLES. |
|00003180| 0d 09 69 66 20 28 6d 79 | 70 74 72 20 3d 3d 20 4e |..if (my|ptr == N|
|00003190| 55 4c 4c 29 0d 09 7b 0d | 09 09 70 72 69 6e 74 66 |ULL)..{.|..printf|
|000031a0| 28 22 23 23 20 57 61 72 | 6e 69 6e 67 21 20 49 67 |("## War|ning! Ig|
|000031b0| 6e 6f 72 69 6e 67 20 61 | 6e 20 61 74 74 65 6d 70 |noring a|n attemp|
|000031c0| 74 20 74 6f 20 66 72 65 | 65 20 61 20 6e 69 6c 20 |t to fre|e a nil |
|000031d0| 70 6f 69 6e 74 65 72 21 | 5c 6e 22 29 3b 0d 23 69 |pointer!|\n");.#i|
|000031e0| 66 20 55 53 45 5f 4d 45 | 4d 54 41 47 53 0d 09 09 |f USE_ME|MTAGS...|
|000031f0| 44 65 62 75 67 53 74 72 | 28 22 5c 70 54 72 69 65 |DebugStr|("\pTrie|
|00003200| 64 20 74 6f 20 66 72 65 | 65 20 61 20 6e 69 6c 20 |d to fre|e a nil |
|00003210| 70 6f 69 6e 74 65 72 22 | 29 3b 0d 23 65 6e 64 69 |pointer"|);.#endi|
|00003220| 66 20 2f 2f 20 55 53 45 | 5f 4d 45 4d 54 41 47 53 |f // USE|_MEMTAGS|
|00003230| 0d 09 7d 0d 09 65 6c 73 | 65 0d 09 7b 0d 23 69 66 |..}..els|e..{.#if|
|00003240| 20 55 53 45 5f 4d 45 4d | 54 41 47 53 0d 09 09 6d | USE_MEM|TAGS...m|
|00003250| 79 70 74 72 20 3d 20 28 | 76 6f 69 64 2a 29 28 28 |yptr = (|void*)((|
|00003260| 28 6c 6f 6e 67 29 6d 79 | 70 74 72 29 2d 34 4c 29 |(long)my|ptr)-4L)|
|00003270| 3b 20 2f 2f 20 62 61 63 | 6b 20 75 70 20 74 6f 20 |; // bac|k up to |
|00003280| 74 61 67 2f 6f 72 69 67 | 69 6e 61 6c 20 70 6f 73 |tag/orig|inal pos|
|00003290| 69 74 69 6f 6e 0d 09 09 | 69 66 20 28 2a 28 6c 6f |ition...|if (*(lo|
|000032a0| 6e 67 2a 29 6d 79 70 74 | 72 20 21 3d 20 4d 41 4c |ng*)mypt|r != MAL|
|000032b0| 4c 4f 43 5f 54 41 47 29 | 0d 09 09 7b 0d 09 09 09 |LOC_TAG)|...{....|
|000032c0| 70 72 69 6e 74 66 28 22 | 23 23 20 45 72 72 6f 72 |printf("|## Error|
|000032d0| 21 20 20 54 72 69 65 64 | 20 74 6f 20 66 72 65 65 |! Tried| to free|
|000032e0| 20 61 20 62 61 64 2f 73 | 74 6f 6d 70 65 64 20 62 | a bad/s|tomped b|
|000032f0| 6c 6f 63 6b 21 20 28 24 | 25 6c 78 29 5c 6e 22 2c |lock! ($|%lx)\n",|
|00003300| 6d 79 70 74 72 29 3b 0d | 09 09 09 44 65 62 75 67 |myptr);.|...Debug|
|00003310| 53 74 72 28 22 5c 70 54 | 72 69 65 64 20 74 6f 20 |Str("\pT|ried to |
|00003320| 66 72 65 65 20 61 20 62 | 61 64 2f 73 74 6f 6d 70 |free a b|ad/stomp|
|00003330| 65 64 20 62 6c 6f 63 6b | 20 31 22 29 3b 0d 09 09 |ed block| 1");...|
|00003340| 7d 0d 23 65 6e 64 69 66 | 20 2f 2f 20 55 53 45 5f |}.#endif| // USE_|
|00003350| 4d 45 4d 54 41 47 53 0d | 0d 23 69 66 20 55 53 45 |MEMTAGS.|.#if USE|
|00003360| 5f 4e 41 54 49 56 45 5f | 4d 41 4c 4c 4f 43 0d 20 |_NATIVE_|MALLOC. |
|00003370| 23 69 66 20 55 53 45 5f | 4d 45 4d 48 41 4e 44 4c |#if USE_|MEMHANDL|
|00003380| 45 53 0d 09 09 2f 2f 20 | 75 73 65 20 4d 61 63 20 |ES...// |use Mac |
|00003390| 6c 6f 63 6b 65 64 20 68 | 61 6e 64 6c 65 73 0d 09 |locked h|andles..|
|000033a0| 09 6d 79 68 64 6c 20 3d | 20 52 65 63 6f 76 65 72 |.myhdl =| Recover|
|000033b0| 48 61 6e 64 6c 65 28 6d | 79 70 74 72 29 3b 0d 09 |Handle(m|yptr);..|
|000033c0| 09 69 66 20 28 6d 79 68 | 64 6c 29 0d 09 09 09 44 |.if (myh|dl)....D|
|000033d0| 69 73 70 6f 73 65 48 61 | 6e 64 6c 65 28 6d 79 68 |isposeHa|ndle(myh|
|000033e0| 64 6c 29 3b 0d 09 09 65 | 6c 73 65 0d 09 09 7b 0d |dl);...e|lse...{.|
|000033f0| 09 09 09 70 72 69 6e 74 | 66 28 22 23 23 20 45 72 |...print|f("## Er|
|00003400| 72 6f 72 20 25 64 21 20 | 20 43 61 6e 6e 6f 74 20 |ror %d! | Cannot |
|00003410| 72 65 63 6f 76 65 72 20 | 68 61 6e 64 6c 65 20 66 |recover |handle f|
|00003420| 72 6f 6d 20 70 74 72 21 | 20 28 24 25 6c 78 29 5c |rom ptr!| ($%lx)\|
|00003430| 6e 22 2c 0d 09 09 09 09 | 09 4d 65 6d 45 72 72 6f |n",.....|.MemErro|
|00003440| 72 28 29 2c 20 6d 79 70 | 74 72 29 3b 0d 20 20 23 |r(), myp|tr);. #|
|00003450| 69 66 20 55 53 45 5f 4d | 45 4d 54 41 47 53 0d 09 |if USE_M|EMTAGS..|
|00003460| 09 09 44 65 62 75 67 53 | 74 72 28 22 5c 70 43 61 |..DebugS|tr("\pCa|
|00003470| 6e 6e 6f 74 20 72 65 63 | 6f 76 65 72 20 68 61 6e |nnot rec|over han|
|00003480| 64 6c 65 20 66 72 6f 6d | 20 70 74 72 22 29 3b 0d |dle from| ptr");.|
|00003490| 20 20 23 65 6e 64 69 66 | 20 2f 2f 20 55 53 45 5f | #endif| // USE_|
|000034a0| 4d 45 4d 54 41 47 53 0d | 09 09 7d 0d 20 23 65 6c |MEMTAGS.|..}. #el|
|000034b0| 73 65 0d 09 09 2f 2f 20 | 75 73 65 20 72 65 67 75 |se...// |use regu|
|000034c0| 6c 61 72 20 4d 61 63 20 | 70 6f 69 6e 74 65 72 73 |lar Mac |pointers|
|000034d0| 0d 09 09 44 69 73 70 6f | 73 65 50 74 72 28 6d 79 |...Dispo|sePtr(my|
|000034e0| 70 74 72 29 3b 0d 20 23 | 65 6e 64 69 66 20 2f 2f |ptr);. #|endif //|
|000034f0| 20 55 53 45 5f 4d 45 4d | 48 41 4e 44 4c 45 53 0d | USE_MEM|HANDLES.|
|00003500| 23 65 6c 73 65 0d 09 09 | 2f 2f 20 54 68 65 20 53 |#else...|// The S|
|00003510| 74 64 20 43 20 6c 69 62 | 72 61 72 79 20 77 61 79 |td C lib|rary way|
|00003520| 2e 2e 2e 0d 09 09 66 72 | 65 65 28 6d 79 70 74 72 |......fr|ee(myptr|
|00003530| 29 3b 0d 23 65 6e 64 69 | 66 20 2f 2f 20 55 53 45 |);.#endi|f // USE|
|00003540| 5f 4e 41 54 49 56 45 5f | 4d 41 4c 4c 4f 43 0d 0d |_NATIVE_|MALLOC..|
|00003550| 09 09 2f 2f 20 72 65 6d | 65 6d 62 65 72 20 74 68 |..// rem|ember th|
|00003560| 61 74 20 74 68 69 73 20 | 67 75 79 20 77 61 73 20 |at this |guy was |
|00003570| 66 72 65 65 64 20 66 6f | 72 20 6c 61 74 65 72 0d |freed fo|r later.|
|00003580| 09 09 2f 2f 20 28 69 66 | 20 77 65 27 72 65 20 74 |..// (if| we're t|
|00003590| 72 61 63 6b 69 6e 67 2c | 20 61 6e 64 20 6e 6f 74 |racking,| and not|
|000035a0| 20 69 6e 20 74 68 65 20 | 6d 69 64 64 6c 65 20 6f | in the |middle o|
|000035b0| 66 20 72 65 63 6c 61 69 | 6d 69 6e 67 29 0d 09 09 |f reclai|ming)...|
|000035c0| 69 66 20 28 67 44 6f 4d | 65 6d 54 72 61 63 6b 69 |if (gDoM|emTracki|
|000035d0| 6e 67 20 26 26 20 21 67 | 52 65 63 6c 61 69 6d 69 |ng && !g|Reclaimi|
|000035e0| 6e 67 29 0d 09 09 7b 0d | 23 69 66 20 55 53 45 5f |ng)...{.|#if USE_|
|000035f0| 4d 45 4d 54 41 47 53 0d | 09 09 09 2f 2f 20 70 6f |MEMTAGS.|...// po|
|00003600| 69 6e 74 20 62 65 79 6f | 6e 64 20 74 61 67 20 61 |int beyo|nd tag a|
|00003610| 67 61 69 6e 2c 20 73 6f | 20 74 68 61 74 20 67 4d |gain, so| that gM|
|00003620| 61 6c 6c 6f 63 4c 69 73 | 74 20 26 20 67 46 72 65 |allocLis|t & gFre|
|00003630| 65 4c 69 73 74 20 6d 61 | 74 63 68 21 0d 09 09 09 |eList ma|tch!....|
|00003640| 6d 79 70 74 72 20 3d 20 | 28 76 6f 69 64 2a 29 28 |myptr = |(void*)(|
|00003650| 28 28 6c 6f 6e 67 29 6d | 79 70 74 72 29 2b 34 4c |((long)m|yptr)+4L|
|00003660| 29 3b 0d 23 65 6e 64 69 | 66 20 2f 2f 20 55 53 45 |);.#endi|f // USE|
|00003670| 5f 4d 45 4d 54 41 47 53 | 0d 23 69 66 20 55 53 45 |_MEMTAGS|.#if USE|
|00003680| 5f 4d 45 4d 48 41 4e 44 | 4c 45 53 0d 09 09 09 67 |_MEMHAND|LES....g|
|00003690| 46 72 65 65 4c 69 73 74 | 5b 67 46 72 65 65 4c 69 |FreeList|[gFreeLi|
|000036a0| 73 74 43 6f 75 6e 74 5d | 20 3d 20 28 50 74 72 29 |stCount]| = (Ptr)|
|000036b0| 6d 79 68 64 6c 3b 0d 23 | 65 6c 73 65 0d 09 09 09 |myhdl;.#|else....|
|000036c0| 67 46 72 65 65 4c 69 73 | 74 5b 67 46 72 65 65 4c |gFreeLis|t[gFreeL|
|000036d0| 69 73 74 43 6f 75 6e 74 | 5d 20 3d 20 6d 79 70 74 |istCount|] = mypt|
|000036e0| 72 3b 0d 23 65 6e 64 69 | 66 20 2f 2f 20 55 53 45 |r;.#endi|f // USE|
|000036f0| 5f 4d 45 4d 48 41 4e 44 | 4c 45 53 0d 09 09 09 69 |_MEMHAND|LES....i|
|00003700| 66 20 28 67 46 72 65 65 | 4c 69 73 74 43 6f 75 6e |f (gFree|ListCoun|
|00003710| 74 20 3c 20 67 4d 61 6c | 6c 6f 63 4c 69 73 74 53 |t < gMal|locListS|
|00003720| 69 7a 65 29 0d 09 09 09 | 09 67 46 72 65 65 4c 69 |ize)....|.gFreeLi|
|00003730| 73 74 43 6f 75 6e 74 2b | 2b 3b 0d 09 09 7d 0d 09 |stCount+|+;...}..|
|00003740| 7d 0d 7d 20 2f 2f 20 50 | 4f 56 5f 66 72 65 65 0d |}.} // P|OV_free.|
|00003750| 0d 0d 2f 2f 20 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..// ===|========|
|00003760| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003770| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003780| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003790| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 42 6f 6f 6c 65 |========|==.Boole|
|000037a0| 61 6e 20 50 4f 56 5f 6e | 65 65 64 5f 74 6f 5f 72 |an POV_n|eed_to_r|
|000037b0| 65 63 6c 61 69 6d 28 76 | 6f 69 64 29 0d 7b 0d 09 |eclaim(v|oid).{..|
|000037c0| 72 65 74 75 72 6e 20 28 | 67 4d 61 6c 6c 6f 63 4c |return (|gMallocL|
|000037d0| 69 73 74 43 6f 75 6e 74 | 20 3e 20 30 29 3b 0d 7d |istCount| > 0);.}|
|000037e0| 20 2f 2f 20 50 4f 56 5f | 6e 65 65 64 5f 74 6f 5f | // POV_|need_to_|
|000037f0| 72 65 63 6c 61 69 6d 0d | 0d 0d 2f 2f 20 3d 3d 3d |reclaim.|..// ===|
|00003800| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003810| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003820| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003830| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003840| 3d 3d 0d 76 6f 69 64 20 | 50 4f 56 5f 72 65 63 6c |==.void |POV_recl|
|00003850| 61 69 6d 28 42 6f 6f 6c | 65 61 6e 20 42 65 56 65 |aim(Bool|ean BeVe|
|00003860| 72 62 6f 73 65 2c 20 44 | 69 61 6c 6f 67 50 74 72 |rbose, D|ialogPtr|
|00003870| 20 70 72 6f 67 72 65 73 | 73 44 69 61 6c 6f 67 50 | progres|sDialogP|
|00003880| 74 72 29 0d 7b 0d 09 72 | 65 67 69 73 74 65 72 20 |tr).{..r|egister |
|00003890| 50 74 72 09 2a 74 68 65 | 4d 61 6c 6c 6f 63 4c 69 |Ptr.*the|MallocLi|
|000038a0| 73 74 50 74 72 3b 0d 09 | 72 65 67 69 73 74 65 72 |stPtr;..|register|
|000038b0| 20 50 74 72 09 2a 74 68 | 65 46 72 65 65 64 4c 69 | Ptr.*th|eFreedLi|
|000038c0| 73 74 50 74 72 3b 0d 09 | 72 65 67 69 73 74 65 72 |stPtr;..|register|
|000038d0| 20 6c 6f 6e 67 20 09 69 | 2c 6a 3b 0d 09 6c 6f 6e | long .i|,j;..lon|
|000038e0| 67 20 09 09 09 6d 69 6e | 5f 69 6e 64 65 78 2c 20 |g ...min|_index, |
|000038f0| 6d 61 78 5f 69 6e 64 65 | 78 3b 0d 0d 09 2f 2f 20 |max_inde|x;...// |
|00003900| 4c 65 74 20 65 76 65 72 | 79 6f 6e 65 20 6b 6e 6f |Let ever|yone kno|
|00003910| 77 20 77 65 27 72 65 20 | 62 75 73 79 20 69 6e 20 |w we're |busy in |
|00003920| 72 65 63 6c 61 69 6d 69 | 6e 67 20 6d 6f 64 65 0d |reclaimi|ng mode.|
|00003930| 09 67 52 65 63 6c 61 69 | 6d 69 6e 67 20 3d 20 74 |.gReclai|ming = t|
|00003940| 72 75 65 3b 0d 0d 09 2f | 2f 20 61 6e 79 74 68 69 |rue;.../|/ anythi|
|00003950| 6e 67 20 74 6f 20 64 6f | 3f 0d 09 69 66 20 28 67 |ng to do|?..if (g|
|00003960| 4d 61 6c 6c 6f 63 4c 69 | 73 74 43 6f 75 6e 74 20 |MallocLi|stCount |
|00003970| 3e 20 30 29 0d 09 7b 09 | 09 0d 09 09 53 65 74 43 |> 0)..{.|....SetC|
|00003980| 75 72 73 6f 72 28 2a 47 | 65 74 43 75 72 73 6f 72 |ursor(*G|etCursor|
|00003990| 28 77 61 74 63 68 43 75 | 72 73 6f 72 29 29 3b 20 |(watchCu|rsor)); |
|000039a0| 2f 2f 20 63 6f 75 6c 64 | 20 74 61 6b 65 20 61 20 |// could| take a |
|000039b0| 6c 69 74 74 6c 65 20 77 | 68 69 6c 65 2e 2e 0d 0d |little w|hile....|
|000039c0| 09 09 2f 2f 20 46 69 72 | 73 74 2c 20 72 65 6d 6f |..// Fir|st, remo|
|000039d0| 76 65 20 61 6e 79 20 65 | 6e 74 72 69 65 73 20 66 |ve any e|ntries f|
|000039e0| 72 6f 6d 20 74 68 65 20 | 6d 61 6c 6c 6f 63 20 70 |rom the |malloc p|
|000039f0| 69 6c 65 20 69 66 20 61 | 6c 72 65 61 64 79 20 66 |ile if a|lready f|
|00003a00| 72 65 65 64 2e 0d 09 09 | 2f 2f 20 44 6f 20 74 68 |reed....|// Do th|
|00003a10| 69 73 20 62 79 20 73 63 | 61 6e 6e 69 6e 67 20 74 |is by sc|anning t|
|00003a20| 68 65 20 66 72 65 65 64 | 20 70 69 6c 65 2c 20 61 |he freed| pile, a|
|00003a30| 6e 64 20 69 66 20 61 6e | 20 65 6e 74 72 79 20 6d |nd if an| entry m|
|00003a40| 61 74 63 68 65 73 20 6f | 6e 65 0d 09 09 2f 2f 20 |atches o|ne...// |
|00003a50| 69 6e 20 6d 61 6c 6c 6f | 63 20 70 69 6c 65 2c 20 |in mallo|c pile, |
|00003a60| 64 65 6c 65 74 65 20 69 | 74 2e 20 20 54 6f 20 68 |delete i|t. To h|
|00003a70| 65 6c 70 20 73 70 65 65 | 64 20 74 68 69 6e 67 73 |elp spee|d things|
|00003a80| 20 75 70 2c 20 6b 65 65 | 70 20 74 72 61 63 6b 20 | up, kee|p track |
|00003a90| 6f 66 0d 09 09 2f 2f 20 | 74 68 65 20 6c 6f 77 65 |of...// |the lowe|
|00003aa0| 73 74 20 61 6e 64 20 68 | 69 67 68 65 73 74 20 76 |st and h|ighest v|
|00003ab0| 61 6c 69 64 20 65 6e 74 | 72 69 65 73 20 69 6e 20 |alid ent|ries in |
|00003ac0| 74 68 65 20 6d 61 6c 6c | 6f 63 20 6c 69 73 74 2c |the mall|oc list,|
|00003ad0| 20 73 6f 20 77 65 20 64 | 6f 6e 27 74 0d 09 09 2f | so we d|on't.../|
|00003ae0| 2f 20 72 65 76 69 73 69 | 74 20 74 68 65 6d 20 69 |/ revisi|t them i|
|00003af0| 6e 20 74 68 65 20 69 6e | 6e 65 72 20 6c 6f 6f 70 |n the in|ner loop|
|00003b00| 20 28 6d 69 6e 5f 69 6e | 64 65 78 2c 20 6d 61 78 | (min_in|dex, max|
|00003b10| 5f 69 6e 64 65 78 29 0d | 09 09 69 66 20 28 67 46 |_index).|..if (gF|
|00003b20| 72 65 65 4c 69 73 74 43 | 6f 75 6e 74 20 3e 20 30 |reeListC|ount > 0|
|00003b30| 29 0d 09 09 7b 0d 09 09 | 09 74 68 65 46 72 65 65 |)...{...|.theFree|
|00003b40| 64 4c 69 73 74 50 74 72 | 20 3d 20 67 46 72 65 65 |dListPtr| = gFree|
|00003b50| 4c 69 73 74 3b 0d 0d 09 | 09 09 6d 69 6e 5f 69 6e |List;...|..min_in|
|00003b60| 64 65 78 20 3d 20 30 3b | 0d 09 09 09 6d 61 78 5f |dex = 0;|....max_|
|00003b70| 69 6e 64 65 78 20 3d 20 | 67 4d 61 6c 6c 6f 63 4c |index = |gMallocL|
|00003b80| 69 73 74 43 6f 75 6e 74 | 2d 31 3b 0d 09 09 09 2f |istCount|-1;..../|
|00003b90| 2f 20 66 69 6e 64 20 73 | 74 61 72 74 69 6e 67 20 |/ find s|tarting |
|00003ba0| 70 6f 69 6e 74 0d 09 09 | 09 74 68 65 4d 61 6c 6c |point...|.theMall|
|00003bb0| 6f 63 4c 69 73 74 50 74 | 72 20 3d 20 26 67 4d 61 |ocListPt|r = &gMa|
|00003bc0| 6c 6c 6f 63 4c 69 73 74 | 5b 6d 69 6e 5f 69 6e 64 |llocList|[min_ind|
|00003bd0| 65 78 5d 3b 0d 09 09 09 | 77 68 69 6c 65 20 28 28 |ex];....|while ((|
|00003be0| 2a 74 68 65 4d 61 6c 6c | 6f 63 4c 69 73 74 50 74 |*theMall|ocListPt|
|00003bf0| 72 20 3d 3d 20 4e 55 4c | 4c 29 20 26 26 20 28 6d |r == NUL|L) && (m|
|00003c00| 69 6e 5f 69 6e 64 65 78 | 20 3c 3d 20 6d 61 78 5f |in_index| <= max_|
|00003c10| 69 6e 64 65 78 29 29 0d | 09 09 09 7b 0d 09 09 09 |index)).|...{....|
|00003c20| 09 74 68 65 4d 61 6c 6c | 6f 63 4c 69 73 74 50 74 |.theMall|ocListPt|
|00003c30| 72 2b 2b 3b 0d 09 09 09 | 09 6d 69 6e 5f 69 6e 64 |r++;....|.min_ind|
|00003c40| 65 78 2b 2b 3b 0d 09 09 | 09 7d 0d 09 09 09 2f 2f |ex++;...|.}....//|
|00003c50| 20 66 69 6e 64 20 65 6e | 64 69 6e 67 20 70 6f 69 | find en|ding poi|
|00003c60| 6e 74 0d 09 09 09 74 68 | 65 4d 61 6c 6c 6f 63 4c |nt....th|eMallocL|
|00003c70| 69 73 74 50 74 72 20 3d | 20 26 67 4d 61 6c 6c 6f |istPtr =| &gMallo|
|00003c80| 63 4c 69 73 74 5b 6d 61 | 78 5f 69 6e 64 65 78 5d |cList[ma|x_index]|
|00003c90| 3b 0d 09 09 09 77 68 69 | 6c 65 20 28 28 2a 74 68 |;....whi|le ((*th|
|00003ca0| 65 4d 61 6c 6c 6f 63 4c | 69 73 74 50 74 72 20 3d |eMallocL|istPtr =|
|00003cb0| 3d 20 4e 55 4c 4c 29 20 | 26 26 20 28 6d 61 78 5f |= NULL) |&& (max_|
|00003cc0| 69 6e 64 65 78 20 3e 20 | 6d 69 6e 5f 69 6e 64 65 |index > |min_inde|
|00003cd0| 78 29 29 0d 09 09 09 7b | 0d 09 09 09 09 74 68 65 |x))....{|.....the|
|00003ce0| 4d 61 6c 6c 6f 63 4c 69 | 73 74 50 74 72 2d 2d 3b |MallocLi|stPtr--;|
|00003cf0| 0d 09 09 09 09 6d 61 78 | 5f 69 6e 64 65 78 2d 2d |.....max|_index--|
|00003d00| 3b 0d 09 09 09 7d 0d 0d | 2f 2f 20 70 72 69 6e 74 |;....}..|// print|
|00003d10| 66 28 22 23 23 20 44 45 | 42 55 47 3b 20 6d 69 6e |f("## DE|BUG; min|
|00003d20| 3d 25 6c 64 20 20 6d 61 | 78 3d 25 6c 64 20 74 6f |=%ld ma|x=%ld to|
|00003d30| 74 61 6c 3d 25 6c 64 5c | 6e 22 2c 6d 69 6e 5f 69 |tal=%ld\|n",min_i|
|00003d40| 6e 64 65 78 2c 6d 61 78 | 5f 69 6e 64 65 78 2c 67 |ndex,max|_index,g|
|00003d50| 4d 61 6c 6c 6f 63 4c 69 | 73 74 43 6f 75 6e 74 29 |MallocLi|stCount)|
|00003d60| 3b 20 2f 2f 20 64 65 62 | 75 67 0d 0d 09 09 09 66 |; // deb|ug.....f|
|00003d70| 6f 72 20 28 69 3d 30 3b | 20 69 3c 67 46 72 65 65 |or (i=0;| i<gFree|
|00003d80| 4c 69 73 74 43 6f 75 6e | 74 3b 20 69 2b 2b 2c 20 |ListCoun|t; i++, |
|00003d90| 74 68 65 46 72 65 65 64 | 4c 69 73 74 50 74 72 2b |theFreed|ListPtr+|
|00003da0| 2b 29 0d 09 09 09 7b 0d | 09 09 09 09 2f 2f 20 55 |+)....{.|....// U|
|00003db0| 70 64 61 74 65 20 74 68 | 65 20 70 72 6f 67 72 65 |pdate th|e progre|
|00003dc0| 73 73 20 62 61 72 20 6f | 6e 6c 79 20 6f 63 63 61 |ss bar o|nly occa|
|00003dd0| 73 69 6f 6e 61 6c 6c 79 | 20 28 65 76 65 72 79 20 |sionally| (every |
|00003de0| 33 32 20 6c 6f 6f 70 73 | 29 0d 09 09 09 09 69 66 |32 loops|).....if|
|00003df0| 20 28 20 70 72 6f 67 72 | 65 73 73 44 69 61 6c 6f | ( progr|essDialo|
|00003e00| 67 50 74 72 20 26 26 20 | 21 28 69 20 26 20 33 31 |gPtr && |!(i & 31|
|00003e10| 29 20 29 0d 09 09 09 09 | 7b 0d 09 09 09 09 09 2f |) ).....|{....../|
|00003e20| 2f 20 67 6f 20 74 6f 20 | 74 68 65 20 31 2f 32 20 |/ go to |the 1/2 |
|00003e30| 77 61 79 20 6d 61 72 6b | 20 69 6e 20 74 68 69 73 |way mark| in this|
|00003e40| 20 6c 6f 6f 70 0d 09 09 | 09 09 09 75 70 64 61 74 | loop...|...updat|
|00003e50| 65 50 72 6f 67 72 65 73 | 73 44 69 61 6c 6f 67 28 |eProgres|sDialog(|
|00003e60| 70 72 6f 67 72 65 73 73 | 44 69 61 6c 6f 67 50 74 |progress|DialogPt|
|00003e70| 72 2c 20 30 2c 20 67 46 | 72 65 65 4c 69 73 74 43 |r, 0, gF|reeListC|
|00003e80| 6f 75 6e 74 2c 20 69 3e | 3e 31 29 3b 0d 09 09 09 |ount, i>|>1);....|
|00003e90| 09 7d 0d 0d 09 09 09 09 | 2f 2f 20 63 68 65 63 6b |.}......|// check|
|00003ea0| 20 74 68 69 73 20 66 72 | 65 65 64 20 70 6f 69 6e | this fr|eed poin|
|00003eb0| 74 65 72 20 61 67 61 69 | 6e 73 74 20 74 68 65 20 |ter agai|nst the |
|00003ec0| 6d 61 6c 6c 6f 63 20 6c | 69 73 74 0d 09 09 09 09 |malloc l|ist.....|
|00003ed0| 74 68 65 4d 61 6c 6c 6f | 63 4c 69 73 74 50 74 72 |theMallo|cListPtr|
|00003ee0| 20 3d 20 26 67 4d 61 6c | 6c 6f 63 4c 69 73 74 5b | = &gMal|locList[|
|00003ef0| 6d 69 6e 5f 69 6e 64 65 | 78 5d 3b 0d 09 09 09 09 |min_inde|x];.....|
|00003f00| 66 6f 72 20 28 6a 20 3d | 20 6d 69 6e 5f 69 6e 64 |for (j =| min_ind|
|00003f10| 65 78 3b 20 6a 3c 3d 6d | 61 78 5f 69 6e 64 65 78 |ex; j<=m|ax_index|
|00003f20| 3b 20 6a 2b 2b 2c 20 74 | 68 65 4d 61 6c 6c 6f 63 |; j++, t|heMalloc|
|00003f30| 4c 69 73 74 50 74 72 2b | 2b 29 0d 09 09 09 09 7b |ListPtr+|+).....{|
|00003f40| 0d 09 09 09 09 09 2f 2f | 20 69 73 20 74 68 65 72 |......//| is ther|
|00003f50| 65 20 61 20 6d 61 6c 6c | 6f 63 20 65 6e 74 72 79 |e a mall|oc entry|
|00003f60| 20 74 6f 20 63 68 65 63 | 6b 20 61 67 61 69 6e 73 | to chec|k agains|
|00003f70| 74 3f 0d 09 09 09 09 09 | 69 66 20 28 2a 74 68 65 |t?......|if (*the|
|00003f80| 4d 61 6c 6c 6f 63 4c 69 | 73 74 50 74 72 20 21 3d |MallocLi|stPtr !=|
|00003f90| 20 4e 55 4c 4c 29 0d 09 | 09 09 09 09 7b 0d 09 09 | NULL)..|....{...|
|00003fa0| 09 09 09 09 69 66 20 28 | 2a 74 68 65 4d 61 6c 6c |....if (|*theMall|
|00003fb0| 6f 63 4c 69 73 74 50 74 | 72 20 3d 3d 20 2a 74 68 |ocListPt|r == *th|
|00003fc0| 65 46 72 65 65 64 4c 69 | 73 74 50 74 72 29 0d 09 |eFreedLi|stPtr)..|
|00003fd0| 09 09 09 09 09 7b 20 2f | 2f 20 66 6f 75 6e 64 20 |.....{ /|/ found |
|00003fe0| 69 74 2c 20 72 65 6d 6f | 76 65 20 66 72 6f 6d 20 |it, remo|ve from |
|00003ff0| 6d 61 6c 6c 6f 63 20 70 | 69 6c 65 0d 09 09 09 09 |malloc p|ile.....|
|00004000| 09 09 09 2a 74 68 65 4d | 61 6c 6c 6f 63 4c 69 73 |...*theM|allocLis|
|00004010| 74 50 74 72 20 3d 20 4e | 55 4c 4c 3b 0d 09 09 09 |tPtr = N|ULL;....|
|00004020| 09 09 09 09 62 72 65 61 | 6b 3b 20 2f 2f 20 6f 75 |....brea|k; // ou|
|00004030| 74 20 6f 66 20 74 68 69 | 73 20 66 6f 72 20 6c 6f |t of thi|s for lo|
|00004040| 6f 70 0d 09 09 09 09 09 | 09 7d 0d 09 09 09 09 09 |op......|.}......|
|00004050| 7d 0d 09 09 09 09 7d 20 | 2f 2f 20 66 6f 72 20 6a |}.....} |// for j|
|00004060| 0d 09 09 09 7d 20 2f 2f | 20 66 6f 72 20 69 0d 09 |....} //| for i..|
|00004070| 09 7d 0d 09 0d 09 09 2f | 2f 20 66 72 65 65 20 77 |.}...../|/ free w|
|00004080| 68 61 74 65 76 65 72 20 | 69 73 20 6c 65 66 74 20 |hatever |is left |
|00004090| 6f 76 65 72 20 69 6e 20 | 74 68 65 20 6d 61 6c 6c |over in |the mall|
|000040a0| 6f 63 20 6c 69 73 74 0d | 09 09 74 68 65 4d 61 6c |oc list.|..theMal|
|000040b0| 6c 6f 63 4c 69 73 74 50 | 74 72 20 3d 20 26 67 4d |locListP|tr = &gM|
|000040c0| 61 6c 6c 6f 63 4c 69 73 | 74 5b 6d 69 6e 5f 69 6e |allocLis|t[min_in|
|000040d0| 64 65 78 5d 3b 0d 09 09 | 66 6f 72 20 28 69 3d 6d |dex];...|for (i=m|
|000040e0| 69 6e 5f 69 6e 64 65 78 | 3b 20 69 3c 6d 61 78 5f |in_index|; i<max_|
|000040f0| 69 6e 64 65 78 3b 20 69 | 2b 2b 2c 20 74 68 65 4d |index; i|++, theM|
|00004100| 61 6c 6c 6f 63 4c 69 73 | 74 50 74 72 2b 2b 29 0d |allocLis|tPtr++).|
|00004110| 09 09 7b 0d 09 09 09 2f | 2f 20 55 70 64 61 74 65 |..{..../|/ Update|
|00004120| 20 74 68 65 20 70 72 6f | 67 72 65 73 73 20 62 61 | the pro|gress ba|
|00004130| 72 20 6f 6e 6c 79 20 6f | 63 63 61 73 69 6f 6e 61 |r only o|ccasiona|
|00004140| 6c 6c 79 20 28 65 76 65 | 72 79 20 33 32 20 6c 6f |lly (eve|ry 32 lo|
|00004150| 6f 70 73 29 0d 09 09 09 | 69 66 20 28 20 70 72 6f |ops)....|if ( pro|
|00004160| 67 72 65 73 73 44 69 61 | 6c 6f 67 50 74 72 20 26 |gressDia|logPtr &|
|00004170| 26 20 21 28 69 20 26 20 | 33 31 29 20 29 0d 09 09 |& !(i & |31) )...|
|00004180| 09 7b 0d 09 09 09 09 2f | 2f 20 64 6f 20 74 68 65 |.{...../|/ do the|
|00004190| 20 6c 61 73 74 20 31 2f | 32 20 69 6e 20 74 68 69 | last 1/|2 in thi|
|000041a0| 73 20 6c 6f 6f 70 0d 09 | 09 09 09 75 70 64 61 74 |s loop..|...updat|
|000041b0| 65 50 72 6f 67 72 65 73 | 73 44 69 61 6c 6f 67 28 |eProgres|sDialog(|
|000041c0| 70 72 6f 67 72 65 73 73 | 44 69 61 6c 6f 67 50 74 |progress|DialogPt|
|000041d0| 72 2c 20 30 2c 20 67 4d | 61 6c 6c 6f 63 4c 69 73 |r, 0, gM|allocLis|
|000041e0| 74 43 6f 75 6e 74 2c 0d | 09 09 09 09 09 28 67 4d |tCount,.|.....(gM|
|000041f0| 61 6c 6c 6f 63 4c 69 73 | 74 43 6f 75 6e 74 2b 69 |allocLis|tCount+i|
|00004200| 29 20 3e 3e 20 31 29 3b | 0d 09 09 09 7d 0d 09 09 |) >> 1);|....}...|
|00004210| 09 69 66 20 28 2a 74 68 | 65 4d 61 6c 6c 6f 63 4c |.if (*th|eMallocL|
|00004220| 69 73 74 50 74 72 20 21 | 3d 20 4e 55 4c 4c 29 0d |istPtr !|= NULL).|
|00004230| 09 09 09 7b 0d 23 69 66 | 20 55 53 45 5f 4d 45 4d |...{.#if| USE_MEM|
|00004240| 48 41 4e 44 4c 45 53 0d | 09 09 09 09 2f 2f 20 41 |HANDLES.|....// A|
|00004250| 20 74 72 75 65 20 68 61 | 6e 64 6c 65 20 69 73 20 | true ha|ndle is |
|00004260| 73 74 6f 72 65 64 20 74 | 68 65 72 65 2c 20 64 6f |stored t|here, do|
|00004270| 6e 27 74 20 6d 65 73 73 | 20 61 72 6f 75 6e 64 2c |n't mess| around,|
|00004280| 20 64 69 73 70 6f 73 65 | 20 69 74 21 0d 09 09 09 | dispose| it!....|
|00004290| 09 44 69 73 70 6f 73 65 | 48 61 6e 64 6c 65 28 28 |.Dispose|Handle((|
|000042a0| 48 61 6e 64 6c 65 29 2a | 74 68 65 4d 61 6c 6c 6f |Handle)*|theMallo|
|000042b0| 63 4c 69 73 74 50 74 72 | 29 3b 0d 23 65 6c 73 65 |cListPtr|);.#else|
|000042c0| 0d 09 09 09 09 50 4f 56 | 5f 66 72 65 65 28 2a 74 |.....POV|_free(*t|
|000042d0| 68 65 4d 61 6c 6c 6f 63 | 4c 69 73 74 50 74 72 29 |heMalloc|ListPtr)|
|000042e0| 3b 0d 23 65 6e 64 69 66 | 20 2f 2f 20 55 53 45 5f |;.#endif| // USE_|
|000042f0| 4d 45 4d 48 41 4e 44 4c | 45 53 0d 09 09 09 7d 0d |MEMHANDL|ES....}.|
|00004300| 09 09 7d 0d 09 0d 09 09 | 69 66 20 28 42 65 56 65 |..}.....|if (BeVe|
|00004310| 72 62 6f 73 65 29 0d 09 | 09 7b 0d 09 09 09 70 72 |rbose)..|.{....pr|
|00004320| 69 6e 74 66 28 22 2d 2d | 20 47 61 72 62 61 67 65 |intf("--| Garbage|
|00004330| 20 43 6f 6c 6c 65 63 74 | 69 6f 6e 20 53 74 61 74 | Collect|ion Stat|
|00004340| 69 73 74 69 63 73 3a 5c | 6e 22 29 3b 0d 09 09 09 |istics:\|n");....|
|00004350| 70 72 69 6e 74 66 28 22 | 2d 2d 20 20 20 20 20 20 |printf("|-- |
|00004360| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 6d | | m|
|00004370| 61 6c 6c 6f 63 28 29 20 | 20 20 20 66 72 65 65 28 |alloc() | free(|
|00004380| 29 5c 6e 22 29 3b 0d 09 | 09 09 70 72 69 6e 74 66 |)\n");..|..printf|
|00004390| 28 22 2d 2d 20 20 20 20 | 4d 61 78 20 74 72 61 63 |("-- |Max trac|
|000043a0| 6b 61 62 6c 65 3a 20 20 | 20 25 38 6c 64 20 20 25 |kable: | %8ld %|
|000043b0| 38 6c 64 5c 6e 22 2c 20 | 67 4d 61 6c 6c 6f 63 4c |8ld\n", |gMallocL|
|000043c0| 69 73 74 53 69 7a 65 2c | 20 67 4d 61 6c 6c 6f 63 |istSize,| gMalloc|
|000043d0| 4c 69 73 74 53 69 7a 65 | 29 3b 0d 09 09 09 70 72 |ListSize|);....pr|
|000043e0| 69 6e 74 66 28 22 2d 2d | 20 20 20 20 54 6f 74 61 |intf("--| Tota|
|000043f0| 6c 20 74 72 61 63 6b 65 | 64 3a 20 20 20 25 38 6c |l tracke|d: %8l|
|00004400| 64 20 20 25 38 6c 64 5c | 6e 22 2c 20 67 4d 61 6c |d %8ld\|n", gMal|
|00004410| 6c 6f 63 4c 69 73 74 43 | 6f 75 6e 74 2c 20 67 46 |locListC|ount, gF|
|00004420| 72 65 65 4c 69 73 74 43 | 6f 75 6e 74 29 3b 0d 09 |reeListC|ount);..|
|00004430| 09 09 69 66 20 28 67 45 | 73 63 61 70 65 64 4d 61 |..if (gE|scapedMa|
|00004440| 6c 6c 6f 63 73 43 6f 75 | 6e 74 20 3e 20 30 29 0d |llocsCou|nt > 0).|
|00004450| 09 09 09 7b 0d 09 09 09 | 09 70 72 69 6e 74 66 28 |...{....|.printf(|
|00004460| 22 23 23 20 45 78 74 72 | 61 20 75 6e 74 72 61 63 |"## Extr|a untrac|
|00004470| 6b 65 64 3a 20 25 38 6c | 64 20 20 20 20 20 20 20 |ked: %8l|d |
|00004480| 2d 2d 2d 5c 6e 22 2c 20 | 67 45 73 63 61 70 65 64 |---\n", |gEscaped|
|00004490| 4d 61 6c 6c 6f 63 73 43 | 6f 75 6e 74 29 3b 0d 09 |MallocsC|ount);..|
|000044a0| 09 09 09 70 72 69 6e 74 | 66 28 22 23 23 5c 6e 22 |...print|f("##\n"|
|000044b0| 29 3b 0d 09 09 09 09 70 | 72 69 6e 74 66 28 22 23 |);.....p|rintf("#|
|000044c0| 23 20 57 61 72 6e 69 6e | 67 2c 20 63 6f 75 6c 64 |# Warnin|g, could|
|000044d0| 6e 27 74 20 74 72 61 63 | 6b 20 61 6e 64 20 64 69 |n't trac|k and di|
|000044e0| 73 70 6f 73 65 20 61 6c | 6c 20 6d 65 6d 6f 72 79 |spose al|l memory|
|000044f0| 20 61 6c 6c 6f 63 61 74 | 69 6f 6e 73 2e 5c 6e 22 | allocat|ions.\n"|
|00004500| 29 3b 0d 09 09 09 09 70 | 72 69 6e 74 66 28 22 23 |);.....p|rintf("#|
|00004510| 23 20 49 6e 63 72 65 61 | 73 65 20 74 68 65 20 68 |# Increa|se the h|
|00004520| 65 61 70 20 73 69 7a 65 | 20 6f 72 20 69 6e 63 72 |eap size| or incr|
|00004530| 65 61 73 65 20 74 68 65 | 20 61 70 70 6c 69 63 61 |ease the| applica|
|00004540| 74 69 6f 6e 27 73 20 43 | 4e 46 47 5c 6e 22 29 3b |tion's C|NFG\n");|
|00004550| 0d 09 09 09 09 70 72 69 | 6e 74 66 28 22 23 23 20 |.....pri|ntf("## |
|00004560| 72 65 73 6f 75 72 63 65 | 20 76 61 6c 75 65 20 74 |resource| value t|
|00004570| 6f 20 68 65 6c 70 20 61 | 6c 6c 65 76 69 61 74 65 |o help a|lleviate|
|00004580| 20 74 68 69 73 2e 5c 6e | 22 29 3b 0d 09 09 09 7d | this.\n|");....}|
|00004590| 0d 09 09 7d 0d 0d 09 09 | 2f 2f 20 6f 70 65 6e 20 |...}....|// open |
|000045a0| 73 6f 6d 65 20 68 65 61 | 70 20 73 70 61 63 65 0d |some hea|p space.|
|000045b0| 09 09 28 76 6f 69 64 29 | 43 6f 6d 70 61 63 74 4d |..(void)|CompactM|
|000045c0| 65 6d 28 46 72 65 65 4d | 65 6d 28 29 29 3b 0d 09 |em(FreeM|em());..|
|000045d0| 0d 09 09 2a 67 4d 61 6c | 6c 6f 63 4c 69 73 74 20 |...*gMal|locList |
|000045e0| 3d 20 4e 55 4c 4c 3b 0d | 09 09 67 4d 61 6c 6c 6f |= NULL;.|..gMallo|
|000045f0| 63 4c 69 73 74 43 6f 75 | 6e 74 20 3d 20 30 3b 0d |cListCou|nt = 0;.|
|00004600| 09 09 2a 67 46 72 65 65 | 4c 69 73 74 20 3d 20 4e |..*gFree|List = N|
|00004610| 55 4c 4c 3b 0d 09 09 67 | 46 72 65 65 4c 69 73 74 |ULL;...g|FreeList|
|00004620| 43 6f 75 6e 74 20 3d 20 | 30 3b 0d 09 09 67 45 73 |Count = |0;...gEs|
|00004630| 63 61 70 65 64 4d 61 6c | 6c 6f 63 73 43 6f 75 6e |capedMal|locsCoun|
|00004640| 74 20 3d 20 30 4c 3b 0d | 0d 09 09 53 65 74 43 75 |t = 0L;.|...SetCu|
|00004650| 72 73 6f 72 28 26 71 64 | 2e 61 72 72 6f 77 29 3b |rsor(&qd|.arrow);|
|00004660| 0d 09 7d 0d 0d 09 2f 2f | 20 4c 65 74 20 65 76 65 |..}...//| Let eve|
|00004670| 72 79 6f 6e 65 20 28 50 | 4f 56 5f 46 72 65 65 29 |ryone (P|OV_Free)|
|00004680| 20 6b 6e 6f 77 20 77 65 | 27 72 65 20 6f 75 74 20 | know we|'re out |
|00004690| 6f 66 20 72 65 63 6c 61 | 69 6d 69 6e 67 20 6d 6f |of recla|iming mo|
|000046a0| 64 65 0d 09 67 52 65 63 | 6c 61 69 6d 69 6e 67 20 |de..gRec|laiming |
|000046b0| 3d 20 66 61 6c 73 65 3b | 0d 0d 7d 20 2f 2f 20 50 |= false;|..} // P|
|000046c0| 4f 56 5f 72 65 63 6c 61 | 69 6d 0d 00 00 00 00 00 |OV_recla|im......|
|000046d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000046e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000046f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004700| 00 00 01 00 00 00 02 ae | 00 00 01 ae 00 00 00 72 |........|.......r|
|00004710| 34 6b 01 00 fc 32 38 12 | 66 1e 48 78 40 9a 12 4e |4k...28.|f.Hx@..N|
|00004720| ad 10 f2 86 01 31 e4 3c | 47 34 01 60 66 32 39 46 |.....1.<|G4.`f29F|
|00004730| 0b 50 4f 56 4d 61 6c 6c | 6f 63 2e 63 02 00 00 00 |.POVMall|oc.c....|
|00004740| 54 45 58 54 4d 50 53 20 | 01 02 ff ff ff ff 00 00 |TEXTMPS |........|
|00004750| 00 00 54 45 58 54 4d 50 | 53 20 01 02 ff ff ff ff |..TEXTMP|S ......|
|00004760| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004770| 00 00 a7 0c ec d2 00 00 | 46 4b 00 00 03 20 b2 ef |........|FK... ..|
|00004780| 67 01 67 3c 32 02 63 64 | 65 76 33 01 67 30 d4 30 |g.g<2.cd|ev3.g0.0|
|00004790| a0 b9 01 d0 bc 4b 01 31 | dd 12 2f 00 48 6e 3b 55 |.....K.1|../.Hn;U|
|000047a0| 01 10 2e 30 11 4a 80 6d | 01 67 18 3c 50 01 1e 1a |...0.J.m|.g.<P...|
|000047b0| 67 01 60 0c 5a 4f 48 01 | 0f ca 6d 73 02 18 e0 fd |g.`.ZOH.|..ms....|
|000047c0| dc 29 01 ff c6 5c 9b 01 | 3e 2e 7b 8c 4d 76 93 31 |.)...\..|>.{.Mv.1|
|000047d0| 76 6c 31 a0 90 25 01 00 | a4 26 9d 6d 80 01 00 8e |vl1..%..|.&.m....|
|000047e0| 57 01 ff c6 50 12 02 02 | 4a 80 67 01 67 66 55 56 |W...P...|J.g.gfUV|
|000047f0| 56 15 72 01 2f 01 2f 0c | 4e ad 35 72 01 1d 7c 66 |V.r././.|N.5r..|f|
|00004800| 00 00 00 08 00 3a 00 08 | 01 a9 02 2d 00 00 00 1e |.....:..|...-....|
|00004810| 00 00 3b 27 02 29 00 00 | 00 00 00 00 40 29 02 54 |..;'.)..|....@).T|
|00004820| 00 00 00 00 00 00 42 87 | 02 69 00 00 00 00 00 00 |......B.|.i......|
|00004830| 00 48 00 09 4d 6f 6e 61 | 63 6f 00 00 01 00 00 cf |.H..Mona|co......|
|00004840| 36 04 20 00 00 ce 00 ce | 90 7a 00 cf 39 c4 20 20 |6. .....|.z..9. |
|00004850| 00 00 00 cf 00 06 00 04 | 00 2b 00 04 01 bb 01 e4 |........|.+......|
|00004860| 00 2b 00 04 01 bb 01 e4 | a9 21 55 2d 00 00 00 00 |.+......|.!U-....|
|00004870| 00 00 00 00 00 00 00 00 | 01 00 00 00 00 1e 00 2b |........|.......+|
|00004880| 00 04 01 bb 01 e4 00 2b | 00 04 01 bb 01 e4 00 00 |.......+|........|
|00004890| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 01 0e |........|........|
|000048a0| 00 0b 00 00 11 dc 00 00 | 11 f0 15 41 6c 6c 6f 63 |........|...Alloc|
|000048b0| 61 74 65 53 61 66 65 74 | 79 42 75 66 66 65 72 00 |ateSafet|yBuffer.|
|000048c0| 00 00 18 19 00 00 18 27 | 0f 48 61 6e 64 6c 65 4f |.......'|.HandleO|
|000048d0| 75 74 4f 66 4d 65 6d 00 | 00 00 21 1f 00 00 21 29 |utOfMem.|..!...!)|
|000048e0| 0b 50 4f 56 5f 63 61 6c | 6c 6f 63 00 00 00 17 62 |.POV_cal|loc....b|
|000048f0| 00 00 17 78 17 50 4f 56 | 5f 65 6e 61 62 6c 65 5f |...x.POV|_enable_|
|00004900| 6d 65 6d 74 72 61 63 6b | 69 6e 67 00 00 00 30 a3 |memtrack|ing...0.|
|00004910| 00 00 30 ab 09 50 4f 56 | 5f 66 72 65 65 00 00 00 |..0..POV|_free...|
|00004920| 13 bf 00 00 13 d3 15 50 | 4f 56 5f 69 6e 69 74 5f |.......P|OV_init_|
|00004930| 6d 65 6d 74 72 61 63 6b | 69 6e 67 00 00 00 1b b6 |memtrack|ing.....|
|00004940| 00 00 1b c0 0b 50 4f 56 | 5f 6d 61 6c 6c 6f 63 00 |.....POV|_malloc.|
|00004950| 00 00 37 23 00 00 37 36 | 13 50 4f 56 5f 6e 65 65 |..7#..76|.POV_nee|
|00004960| 64 5f 74 6f 5f 72 65 63 | 6c 61 69 6d 00 00 26 95 |d_to_rec|laim..&.|
|00004970| 00 00 26 a0 0b 50 4f 56 | 5f 72 65 61 6c 6c 6f 63 |..&..POV|_realloc|
|00004980| 00 00 37 c8 00 00 37 d3 | 0b 50 4f 56 5f 72 65 63 |..7...7.|.POV_rec|
|00004990| 6c 61 69 6d 00 00 12 e8 | 00 00 12 f9 11 50 75 72 |laim....|.....Pur|
|000049a0| 67 65 53 61 66 65 74 79 | 42 75 66 66 65 72 00 00 |geSafety|Buffer..|
|000049b0| 01 00 00 00 02 ae 00 00 | 01 ae 00 00 00 72 00 a9 |........|.....r..|
|000049c0| a2 d8 19 58 00 00 00 1c | 00 72 00 02 4d 50 53 52 |...X....|.r..MPSR|
|000049d0| 00 02 00 1a 52 45 43 54 | 00 00 00 3e 42 4b 50 54 |....RECT|...>BKPT|
|000049e0| 00 00 00 4a 03 ed ff ff | 00 00 00 2e 00 00 00 00 |...J....|........|
|000049f0| 03 f0 ff ff 00 00 00 7a | 00 00 00 00 03 ef ff ff |.......z|........|
|00004a00| 00 00 00 9c 00 00 00 00 | 00 00 ff ff 00 00 00 00 |........|........|
|00004a10| 00 00 00 00 1a 1f ff ff | 00 00 00 0c 00 00 00 00 |........|........|
|00004a20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+