# HG changeset patch # User Michael Pavone # Date 1397109292 25200 # Node ID fd9005253861c9b72a5d8791ba97f89e650ae791 # Parent 96fdc5b37ceb4dc7596b4c9920657ca4649d579a Added resize method to arrays diff -r 96fdc5b37ceb -r fd9005253861 modules/array.tp --- a/modules/array.tp Sun Mar 30 18:17:56 2014 -0700 +++ b/modules/array.tp Wed Apr 09 22:54:52 2014 -0700 @@ -55,6 +55,23 @@ self } + llMessage: resize withVars: { + newsize <- obj_uint32 ptr + tmp <- (object ptr) ptr + } andCode: :newsize { + self storage!: (newsize num) + tmp <- GC_REALLOC: data storage * (sizeof: (object ptr)) + if: (not: tmp) { + fputs: "Failed to adjust array size\n" stderr + exit: 1 + } + data <- tmp + if: size > storage { + size <- storage + } + self + } + llMessage: length withVars: { intret <- obj_int32 ptr } andCode: {