509 |
|
|
510 |
static void write_fasd(object obj); |
static void write_fasd(object obj); |
511 |
static object |
static object |
512 |
write_fasd_top(object obj, object x) |
FFN(write_fasd_top)(object obj, object x) |
513 |
{struct fasd *fd = (struct fasd *) x->v.v_self; |
{struct fasd *fd = (struct fasd *) x->v.v_self; |
514 |
if (fd->direction == sKoutput) |
if (fd->direction == sKoutput) |
515 |
SETUP_FASD_IN(fd); |
SETUP_FASD_IN(fd); |
531 |
if (needs_patching) result =fasd_patch_sharp(result,0) |
if (needs_patching) result =fasd_patch_sharp(result,0) |
532 |
|
|
533 |
static object |
static object |
534 |
read_fasd_top(object x) |
FFN(read_fasd_top)(object x) |
535 |
{ struct fasd *fd = (struct fasd *) x->v.v_self; |
{ struct fasd *fd = (struct fasd *) x->v.v_self; |
536 |
VOL int e=0; |
VOL int e=0; |
537 |
object result; |
object result; |
577 |
void Lmake_hash_table(); |
void Lmake_hash_table(); |
578 |
|
|
579 |
static object |
static object |
580 |
open_fasd(object stream, object direction, object eof, object tabl) |
FFN(open_fasd)(object stream, object direction, object eof, object tabl) |
581 |
{ object str=Cnil; |
{ object str=Cnil; |
582 |
object result; |
object result; |
583 |
if(direction==sKinput) |
if(direction==sKinput) |
628 |
}} |
}} |
629 |
|
|
630 |
static object |
static object |
631 |
close_fasd(object ar) |
FFN(close_fasd)(object ar) |
632 |
{ struct fasd *fd= (struct fasd *)(ar->v.v_self); |
{ struct fasd *fd= (struct fasd *)(ar->v.v_self); |
633 |
check_type(ar,t_vector); |
check_type(ar,t_vector); |
634 |
if (type_of(fd->table)==t_vector) |
if (type_of(fd->table)==t_vector) |
1051 |
} |
} |
1052 |
|
|
1053 |
static object |
static object |
1054 |
find_sharing_top(object x, object table) |
FFN(find_sharing_top)(object x, object table) |
1055 |
{sharing_table=table; |
{sharing_table=table; |
1056 |
find_sharing(x); |
find_sharing(x); |
1057 |
return Ct; |
return Ct; |
1514 |
if (ch== d_begin_dump){ |
if (ch== d_begin_dump){ |
1515 |
unreadc_stream(ch,in); |
unreadc_stream(ch,in); |
1516 |
break;}} |
break;}} |
1517 |
{object ar=open_fasd(in,sKinput,0,Cnil); |
{object ar=FFN(open_fasd)(in,sKinput,0,Cnil); |
1518 |
int n=fix(current_fasd.table_length); |
int n=fix(current_fasd.table_length); |
1519 |
object result,last; |
object result,last; |
1520 |
{ BEGIN_NO_INTERRUPT; |
{ BEGIN_NO_INTERRUPT; |
1530 |
gset( current_fasd.table->v.v_self,0,n,aet_object); |
gset( current_fasd.table->v.v_self,0,n,aet_object); |
1531 |
END_NO_INTERRUPT; |
END_NO_INTERRUPT; |
1532 |
} |
} |
1533 |
result=read_fasd_top(ar); |
result=FFN(read_fasd_top)(ar); |
1534 |
if (type_of(result) !=t_vector) goto ERROR; |
if (type_of(result) !=t_vector) goto ERROR; |
1535 |
last=result->v.v_self[result->v.v_fillp-1]; |
last=result->v.v_self[result->v.v_fillp-1]; |
1536 |
if(type_of(last)!=t_cons || last->c.c_car !=sSPinit) |
if(type_of(last)!=t_cons || last->c.c_car !=sSPinit) |
1537 |
goto ERROR; |
goto ERROR; |
1538 |
current_fasd.table->v.v_self = 0; |
current_fasd.table->v.v_self = 0; |
1539 |
close_fasd(ar); |
FFN(close_fasd)(ar); |
1540 |
if (orig != in) |
if (orig != in) |
1541 |
close_stream(in); |
close_stream(in); |
1542 |
return result; |
return result; |