From f51bd1d018f16c0da82f05973879e2080d9cc783 Mon Sep 17 00:00:00 2001 From: ttate Date: Mon, 9 Dec 2002 04:08:22 +0000 Subject: Fix the conversion method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/dl/lib/dl/struct.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'ext/dl/lib/dl/struct.rb') diff --git a/ext/dl/lib/dl/struct.rb b/ext/dl/lib/dl/struct.rb index efa9118c11..2c52d5040d 100644 --- a/ext/dl/lib/dl/struct.rb +++ b/ext/dl/lib/dl/struct.rb @@ -32,11 +32,19 @@ module DL instance_eval [ "def #{name}", " v = @ptr[\"#{name}\"]", - " v = @dec[\"#{name}\"].call(v,@len[\"#{name}\"]) if @dec[\"#{name}\"]", + " if( @len[\"#{name}\"] )", + " v = v.collect{|x| @dec[\"#{name}\"].call(x) if @dec[\"#{name}\"] }", + " else", + " v = @dec[\"#{name}\"].call(v) if @dec[\"#{name}\"]", + " end", " return v", "end", "def #{name}=(v)", - " v = @enc[\"#{name}\"].call(v,@len[\"#{name}\"]) if @enc[\"#{name}\"]", + " if( @len[\"#{name}\"] )", + " v = v.collect{|x| @enc[\"#{name}\"].call(x) if @enc[\"#{name}\"] }", + " else", + " v = @enc[\"#{name}\"].call(v) if @enc[\"#{name}\"]", + " end", " @ptr[\"#{name}\"] = v", " return v", "end", -- cgit v1.2.3