avoid bad interior pointer
This commit is contained in:
parent
dfca7d89d9
commit
ebb72d40e8
|
@ -3129,10 +3129,12 @@ static void cleanup_msg_memmory(void *thread) {
|
||||||
static Scheme_Object *scheme_place_async_try_receive(Scheme_Place_Async_Channel *ch) {
|
static Scheme_Object *scheme_place_async_try_receive(Scheme_Place_Async_Channel *ch) {
|
||||||
Scheme_Object *msg = NULL;
|
Scheme_Object *msg = NULL;
|
||||||
Scheme_Thread *p = scheme_current_thread;
|
Scheme_Thread *p = scheme_current_thread;
|
||||||
|
GC_CAN_IGNORE void **msg_memory;
|
||||||
BEGIN_ESCAPEABLE(cleanup_msg_memmory, p);
|
BEGIN_ESCAPEABLE(cleanup_msg_memmory, p);
|
||||||
msg = scheme_place_async_try_receive_raw(ch, &p->place_channel_msg_in_flight);
|
msg = scheme_place_async_try_receive_raw(ch, &msg_memory);
|
||||||
if (msg) {
|
if (msg) {
|
||||||
msg = scheme_places_deserialize(msg, p->place_channel_msg_in_flight);
|
p->place_channel_msg_in_flight = msg_memory;
|
||||||
|
msg = scheme_places_deserialize(msg, msg_memory);
|
||||||
p->place_channel_msg_in_flight = NULL;
|
p->place_channel_msg_in_flight = NULL;
|
||||||
}
|
}
|
||||||
END_ESCAPEABLE();
|
END_ESCAPEABLE();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user