Skip to content

Commit 36c6f81

Browse files
committed
FIx mark on exit to only run if there is a marker.
1 parent 640698d commit 36c6f81

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

lib/truffle/truffle/cext_structs.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def RDATA_PTR(object)
2929
raise TypeError, "wrong argument type #{object.class} (expected T_DATA)"
3030
end
3131

32-
Primitive.cext_mark_object_on_call_exit(object) unless Primitive.nil?(Primitive.object_hidden_var_get(object, Truffle::CExt::DATA_MARKER))
32+
Primitive.cext_mark_object_on_call_exit(object) unless Truffle::Interop.null?(Primitive.object_hidden_var_get(object, Truffle::CExt::DATA_MARKER))
3333
Primitive.data_holder_get_data(data_holder)
3434
end
3535

@@ -69,7 +69,7 @@ def polyglot_members(internal)
6969
def polyglot_read_member(name)
7070
case name
7171
when 'data'
72-
Primitive.cext_mark_object_on_call_exit(@object) unless Primitive.nil?(Primitive.object_hidden_var_get(@object, Truffle::CExt::DATA_MARKER))
72+
Primitive.cext_mark_object_on_call_exit(@object) unless Truffle::Interop.null?(Primitive.object_hidden_var_get(@object, Truffle::CExt::DATA_MARKER))
7373
Primitive.data_holder_get_data(@data_holder)
7474
when 'type'
7575
type
@@ -296,7 +296,7 @@ def polyglot_pointer?
296296
end
297297

298298
def polyglot_as_pointer
299-
Primitive.cext_mark_object_on_call_exit(@array)
299+
Primitive.cext_mark_object_on_call_exit(@array) unless Truffle::Interop.null?(Primitive.object_hidden_var_get(@object, Truffle::CExt::DATA_MARKER))
300300
Primitive.array_store_address(@array)
301301
end
302302

0 commit comments

Comments
 (0)