From 0114fbc0beecd9a094b260d78cccdc6ff3e85f1e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 9 May 2010 00:26:15 +0000 Subject: asy 1.94 git-svn-id: svn://tug.org/texlive/trunk@18161 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/utils/asymptote/castop.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'Build/source/utils/asymptote/castop.h') diff --git a/Build/source/utils/asymptote/castop.h b/Build/source/utils/asymptote/castop.h index 714dfdb0bae..5d8e15e060b 100644 --- a/Build/source/utils/asymptote/castop.h +++ b/Build/source/utils/asymptote/castop.h @@ -65,15 +65,31 @@ void castString(vm::stack *s) template void arrayToArray(vm::stack *s) { - vm::array *a = pop(s); - checkArray(a); - size_t size=(size_t) a->size(); + vm::array *a=pop(s); + size_t size=checkArray(a); vm::array *c=new vm::array(size); for(size_t i=0; i < size; i++) (*c)[i]=(S) read(a,i); s->push(c); } +template +void array2ToArray2(vm::stack *s) +{ + vm::array *a=pop(s); + size_t size=checkArray(a); + vm::array *c=new vm::array(size); + for(size_t i=0; i < size; ++i) { + vm::array *ai=vm::read(a,i); + size_t aisize=checkArray(ai); + vm::array *ci=new vm::array(aisize); + (*c)[i]=ci; + for(size_t j=0; j < aisize; ++j) + (*ci)[j]=(S) read(ai,j); + } + s->push(c); +} + template void read(vm::stack *s) { -- cgit v1.2.3