16 #define MINSIZE 72 // >= sizeof(Node)
24 while(
D) {v=
D;
D=((
void **)v)[0]; free(v);}
25 while(
M) {v=
M;
M=((
void **)v)[0]; free(v);}
31 fprintf(stdout,
"\n!!! Out of Memory\n");
43 v=
D;
D=((
void **)v)[0];
52 if(
M) ((
void **)
M)[1]=v;
53 ((
void **)v)[0]=
M; M=v;
55 ((
void **)v)[2]=(
void *)s;
58 return(((
void **)v)+3);
66 v=(
void *)(((
void **)(*vv))-3);
68 if(((
void **)v)[0]) ((
void ***)v)[0][1]=((
void **)v)[1];
69 if(((
void **)v)[1]) ((
void ***)v)[1][0]=((
void **)v)[0];
70 else M=((
void **)v)[0];
72 s=(
size_t)(((
void **)v)[2]);
75 ((
void **)v)[0]=
D;
D=v;
78 A-=s+3*
sizeof(
void *);
91 m=(
void **)
newBlock(nrow*
sizeof(
void *));
93 p=ncol*
s;
for(i=0;i<nrow;i++) m[i]=
newBlock(p);
101 void **m;
size_t i,rows;
104 rows=((
size_t)m[-1])/
sizeof(
void *);
void freeMatrix_(void ***mm)
static __ATTR__NORETURN void outOfMemory(void)
static void clearUp(void)
void freeBlock_(void **vv)
void * newBlock(size_t s)
void ** newMatrix(size_t nrow, size_t ncol, size_t s)
GB_write_int const char s