Mercurial > repos > tabletprog
comparison modules/array.tp @ 249:fd9005253861
Added resize method to arrays
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 09 Apr 2014 22:54:52 -0700 |
parents | abde5d2918cf |
children | 56409de95f55 |
comparison
equal
deleted
inserted
replaced
248:96fdc5b37ceb | 249:fd9005253861 |
---|---|
50 } | 50 } |
51 data <- tmp | 51 data <- tmp |
52 } | 52 } |
53 data set: size value | 53 data set: size value |
54 size <- size + 1 | 54 size <- size + 1 |
55 self | |
56 } | |
57 | |
58 llMessage: resize withVars: { | |
59 newsize <- obj_uint32 ptr | |
60 tmp <- (object ptr) ptr | |
61 } andCode: :newsize { | |
62 self storage!: (newsize num) | |
63 tmp <- GC_REALLOC: data storage * (sizeof: (object ptr)) | |
64 if: (not: tmp) { | |
65 fputs: "Failed to adjust array size\n" stderr | |
66 exit: 1 | |
67 } | |
68 data <- tmp | |
69 if: size > storage { | |
70 size <- storage | |
71 } | |
55 self | 72 self |
56 } | 73 } |
57 | 74 |
58 llMessage: length withVars: { | 75 llMessage: length withVars: { |
59 intret <- obj_int32 ptr | 76 intret <- obj_int32 ptr |