version 1.6, 2000/12/05 08:29:44 |
version 1.8, 2001/03/19 04:02:03 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/engine/_distm.c,v 1.5 2000/12/05 06:59:16 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/engine/_distm.c,v 1.7 2001/01/11 02:26:49 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "inline.h" |
#include "inline.h" |
|
|
|
|
/* fprintf(stderr,"DL_alloc : %d \n",++DL_alloc_count); */ |
/* fprintf(stderr,"DL_alloc : %d \n",++DL_alloc_count); */ |
dl_len = (current_dl_length+1); |
dl_len = (current_dl_length+1); |
|
#if defined(LONG_IS_64BIT) |
|
if ( dl_len & 1 ) |
|
dl_len += 1; |
|
#endif |
p = (int *)GC_malloc(128*dl_len*sizeof(int)); |
p = (int *)GC_malloc(128*dl_len*sizeof(int)); |
for ( i = 0; i < 128; i++, p += dl_len ) { |
for ( i = 0; i < 128; i++, p += dl_len ) { |
*(DL *)p = _dl_free_list; |
*(DL *)p = _dl_free_list; |
|
|
DP *r; |
DP *r; |
{ |
{ |
MP m,mr0,mr; |
MP m,mr0,mr; |
|
DL t; |
|
|
if ( !p ) |
if ( !p ) |
*r = 0; |
*r = 0; |
else { |
else { |
current_dl_length = NV(p); |
/* XXX : dummy call to set current_dl_length */ |
|
_NEWDL_NOINIT(t,NV(p)); |
|
|
for ( m = BDY(p), mr0 = 0; m; m = NEXT(m) ) { |
for ( m = BDY(p), mr0 = 0; m; m = NEXT(m) ) { |
_NEXTMP(mr0,mr); |
_NEXTMP(mr0,mr); |
dlto_dl(m->dl,&mr->dl); |
dlto_dl(m->dl,&mr->dl); |