summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-21 14:12:57 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-12-21 14:12:57 +0000
commite852838cee777cfc9c6e3f8f16142d4809422179 (patch)
treee66f9be3d0ca74af6e7bda8678f38cb3840b3acc
parent3fed8bc9a5c924c43aef32098ebd201d0ab6af76 (diff)
* ext/fiddle/lib/fiddle/struct.rb (Fiddle::CStructEntity#set_ctypes):
CPtr -> Pointer. * test/fiddle/test_c_struct_entry.rb (Fiddle::TestCStructEntity#test_aref_pointer_array): Added the test for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--ext/fiddle/lib/fiddle/struct.rb2
-rw-r--r--test/fiddle/test_c_struct_entry.rb11
3 files changed, 20 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index bb97cdf196..3d7009d5bf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Dec 21 23:12:05 2012 Kouhei Sutou <kou@cozmixng.org>
+
+ * ext/fiddle/lib/fiddle/struct.rb (Fiddle::CStructEntity#set_ctypes):
+ CPtr -> Pointer.
+ * test/fiddle/test_c_struct_entry.rb
+ (Fiddle::TestCStructEntity#test_aref_pointer_array):
+ Added the test for the above.
+
Fri Dec 21 22:43:36 2012 Kouhei Sutou <kou@cozmixng.org>
* ext/fiddle/lib/fiddle/import.rb (Fiddle::Importer#sizeof):
diff --git a/ext/fiddle/lib/fiddle/struct.rb b/ext/fiddle/lib/fiddle/struct.rb
index 5a70699bf3..ef53522592 100644
--- a/ext/fiddle/lib/fiddle/struct.rb
+++ b/ext/fiddle/lib/fiddle/struct.rb
@@ -165,7 +165,7 @@ module Fiddle
when Array
case ty[0]
when TYPE_VOIDP
- val = val.collect{|v| CPtr.new(v)}
+ val = val.collect{|v| Pointer.new(v)}
end
when TYPE_VOIDP
val = CPtr.new(val[0])
diff --git a/test/fiddle/test_c_struct_entry.rb b/test/fiddle/test_c_struct_entry.rb
index 43cf28e493..3a5faefabc 100644
--- a/test/fiddle/test_c_struct_entry.rb
+++ b/test/fiddle/test_c_struct_entry.rb
@@ -50,5 +50,16 @@ module Fiddle
assert_equal 1, union['long']
assert_equal 2, union['int']
end
+
+ def test_aref_pointer_array
+ team = CStructEntity.malloc([[TYPE_VOIDP, 2]])
+ team.assign_names(["names"])
+ alice = Fiddle::Pointer.malloc(6)
+ alice[0, 6] = "Alice\0"
+ bob = Fiddle::Pointer.malloc(4)
+ bob[0, 4] = "Bob\0"
+ team["names"] = [alice, bob]
+ assert_equal(["Alice", "Bob"], team["names"].map(&:to_s))
+ end
end
end