Skip to content

Commit f309e21

Browse files
committed
[GR-14936] Throw a TypeError if RDATA is called on a non data holder.
PullRequest: truffleruby/771
2 parents 0a2bd40 + 25d3faa commit f309e21

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

lib/truffle/truffle/cext.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,6 +1778,7 @@ def rb_tr_log_warning(message)
17781778
end
17791779

17801780
def RDATA(object)
1781+
rb_check_type(object, T_DATA)
17811782
RData.new(object)
17821783
end
17831784

spec/ruby/optional/capi/data_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030
@s.change_struct(a, 100)
3131
@s.get_struct(a).should == 100
3232
end
33+
34+
it "raises a TypeError if the object does not wrap a struct" do
35+
lambda { @s.get_struct(Object.new) }.should raise_error(TypeError)
36+
end
3337
end
3438

3539
describe "DATA_PTR" do

0 commit comments

Comments
 (0)