It seems the complex list doesn't work when updating row by row.
e.g. in the sample code below, myrealloc displays complex list as it was populated in order.
but myrealloc1 doesn't display the last element (n) because I went back to updated element n-1
build the following into shared lib
//gcc -g3 -fPIC -shared myadd.c -o myadd.so
K myrealloc (K x)
{
K d=newK(0,0);
K cc = newK(-3,5); strncpy(kC(cc), "hello", 5);
kap(&d, cc);
K di = newK(-1,4) ; int ii;for (ii=0; ii<4; ++ii) kI(di)[ii] = 7+ii;
kap(&d, di);
K ef = newK(-2,2) ; kF(ef)[0] = 3.0;kF(ef)[1]=4.0;
kap(&d, ef);
}
K myrealloc1 (K x)
{
K d=newK(0,0);
K cc = newK(-3,5); strncpy(kC(cc), "hello", 5);
kap(&d, cc);
K di = newK(-1,0);
int ii; for (ii=0; ii<4; ++ii){ K dij = newK(-1,1); kI(dij)[0] = 7+ii; kap(&di, dij); }
kap(&d, di);
K ef = newK(-2,2) ; kF(ef)[0] = 3.0;kF(ef)[1]=4.0;
kap(&d, ef);
K dij = newK(-1,1); kI(dij)[0] = 7+12;
kap(&di, dij);
}
K Console - Enter \ for help
c: `"/work/sid0/dev/builddir/nr-kona/myadd.so" 2: (`myrealloc,1);
d: `"/work/sid0/dev/builddir/nr-kona/myadd.so" 2: (`myrealloc1,1);
c[1] // displays correctly
("hello"
7 8 9 10
3 4.0)
d[1] // last row missing
1 1 1 1 1
Please advise if I am using it wrong.
Neeraj