diff options
author | Norbert Preining <norbert@preining.info> | 2020-11-24 03:01:06 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-11-24 03:01:06 +0000 |
commit | 55c6d66f61a96ba63cd8c141229843ad2ab42632 (patch) | |
tree | 64fa3f4bc82828c2475a6a25d23a02cb36502b95 /graphics/asymptote/runarray.in | |
parent | f0be59ccfa7046c57199fe35c49e1e8963fcb1a9 (diff) |
CTAN sync 202011240301
Diffstat (limited to 'graphics/asymptote/runarray.in')
-rw-r--r-- | graphics/asymptote/runarray.in | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/graphics/asymptote/runarray.in b/graphics/asymptote/runarray.in index db9e63d420..82308211de 100644 --- a/graphics/asymptote/runarray.in +++ b/graphics/asymptote/runarray.in @@ -1041,21 +1041,23 @@ array* :array2Transpose(array *a) { size_t asize=checkArray(a); array *c=new array(0); + size_t csize=0; for(size_t i=0; i < asize; i++) { size_t ip=i+1; array *ai=read<array*>(a,i); size_t aisize=checkArray(ai); - size_t csize=checkArray(c); - if(csize < aisize) { + if(c->size() < aisize) { c->resize(aisize); - for(size_t j=csize; j < aisize; j++) { - (*c)[j]=new array(ip); - } + for(size_t j=csize; j < aisize; j++) + (*c)[j]=new array(0); + csize=aisize; } for(size_t j=0; j < aisize; j++) { - array *cj=read<array*>(c,j); - if(checkArray(cj) < ip) cj->resize(ip); - (*cj)[i]=(*ai)[j]; + if(!(*ai)[j].empty()) { + array *cj=read<array*>(c,j); + if(checkArray(cj) < ip) cj->resize(ip); + (*cj)[i]=(*ai)[j]; + } } } return c; |