Mercurial > repos > tabletprog
changeset 249:fd9005253861
Added resize method to arrays
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 09 Apr 2014 22:54:52 -0700 |
parents | 96fdc5b37ceb |
children | c58e17f5c0f6 |
files | modules/array.tp |
diffstat | 1 files changed, 17 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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: {