summaryrefslogtreecommitdiff
path: root/ext/dl/lib/dl/struct.rb
diff options
context:
space:
mode:
authorttate <ttate@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-04-11 03:06:33 +0000
committerttate <ttate@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-04-11 03:06:33 +0000
commit1ee89595bc28f8bcfcaa34b817d6c4fe31b6a019 (patch)
treeb38da9ce8144fefe82cd6b932ae2822751280a40 /ext/dl/lib/dl/struct.rb
parentbd074c1f0355ff8ddca2a8fd5f5abc4c816769d5 (diff)
define alias "struct" and "union" in the module Importable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/dl/lib/dl/struct.rb')
-rw-r--r--ext/dl/lib/dl/struct.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/dl/lib/dl/struct.rb b/ext/dl/lib/dl/struct.rb
index 6c21af71ac..eb727762ae 100644
--- a/ext/dl/lib/dl/struct.rb
+++ b/ext/dl/lib/dl/struct.rb
@@ -10,11 +10,13 @@ module DL
init_types()
Struct.new(@types, contents)
end
+ alias struct define_struct
def define_union(contents)
init_types()
Union.new(@types, contents)
end
+ alias union define_union
class Memory
def initialize(ptr, names, ty, len, enc, dec)
@@ -56,8 +58,11 @@ module DL
parse(contents)
end
- def new
- ptr = DL::malloc(@size)
+ def new(size = nil)
+ if( !size )
+ size = @size
+ end
+ ptr = DL::malloc(size)
ptr.struct!(@tys, *@names)
mem = Memory.new(ptr, @names, @ty, @len, @enc, @dec)
return mem