[Places] fixes
This commit is contained in:
parent
c1f2dea1ed
commit
9088b47a1d
|
@ -3276,6 +3276,7 @@ static Scheme_Double_Vector *alloc_shared_flvector(long size)
|
|||
|
||||
original_gc = GC_switch_to_master_gc();
|
||||
vec = scheme_alloc_flvector(size);
|
||||
SHARED_ALLOCATED_SET(vec);
|
||||
GC_switch_back_from_master(original_gc);
|
||||
|
||||
return vec;
|
||||
|
@ -3463,6 +3464,7 @@ static Scheme_Vector *alloc_shared_fxvector(long size)
|
|||
|
||||
original_gc = GC_switch_to_master_gc();
|
||||
vec = scheme_alloc_fxvector(size);
|
||||
SHARED_ALLOCATED_SET(vec);
|
||||
GC_switch_back_from_master(original_gc);
|
||||
|
||||
return vec;
|
||||
|
|
|
@ -731,6 +731,9 @@ Scheme_Object *scheme_places_deep_copy_worker(Scheme_Object *so, Scheme_Hash_Tab
|
|||
case scheme_place_bi_channel_type:
|
||||
new_so = so;
|
||||
break;
|
||||
case scheme_place_type:
|
||||
new_so = ((Scheme_Place *) so)->channel;
|
||||
break;
|
||||
case scheme_char_type:
|
||||
new_so = scheme_make_char(SCHEME_CHAR_VAL(so));
|
||||
break;
|
||||
|
@ -746,10 +749,10 @@ Scheme_Object *scheme_places_deep_copy_worker(Scheme_Object *so, Scheme_Hash_Tab
|
|||
}
|
||||
break;
|
||||
case scheme_float_type:
|
||||
new_so = scheme_make_char(SCHEME_FLT_VAL(so));
|
||||
new_so = scheme_make_float(SCHEME_FLT_VAL(so));
|
||||
break;
|
||||
case scheme_double_type:
|
||||
new_so = scheme_make_char(SCHEME_DBL_VAL(so));
|
||||
new_so = scheme_make_double(SCHEME_DBL_VAL(so));
|
||||
break;
|
||||
case scheme_complex_type:
|
||||
{
|
||||
|
@ -886,7 +889,8 @@ Scheme_Object *scheme_places_deep_copy_worker(Scheme_Object *so, Scheme_Hash_Tab
|
|||
|
||||
case scheme_resolved_module_path_type:
|
||||
default:
|
||||
scheme_log_abort("cannot copy object");
|
||||
printf("places deep copy cannot copy object of type %hi at %p\n", so->type, so);
|
||||
scheme_log_abort("places deep copy cannot copy object");
|
||||
abort();
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user