diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-02-25 05:47:16 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-02-25 05:47:16 +0000 |
commit | b4288080e7d025729f88479c44ed054f65b30f60 (patch) | |
tree | 2f77c1a499dd3a53e17e22f99de797f6a5e9afb9 /ext/dl/lib | |
parent | d9adb03dd902c1cf7e5fadc8320dccec0ef73139 (diff) | |
download | ruby-b4288080e7d025729f88479c44ed054f65b30f60.tar.gz |
* ext/dl/dl.c (Init_dl): support intrinsic types, size_t, ptrdiff_t
and intptr_t. [ruby-core:42460][Feature #5992]
* ext/fiddle/fiddle.c (Init_fiddle): ditto.
* ext/dl/lib/dl/cparser.rb (DL::CParser#parse_ctype): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/dl/lib')
-rw-r--r-- | ext/dl/lib/dl/cparser.rb | 10 | ||||
-rw-r--r-- | ext/dl/lib/dl/types.rb | 6 |
2 files changed, 11 insertions, 5 deletions
diff --git a/ext/dl/lib/dl/cparser.rb b/ext/dl/lib/dl/cparser.rb index 210f953471..7aae9ea4eb 100644 --- a/ext/dl/lib/dl/cparser.rb +++ b/ext/dl/lib/dl/cparser.rb @@ -95,6 +95,16 @@ module DL return TYPE_FLOAT when "double" return TYPE_DOUBLE + when "size_t" + return TYPE_SIZE_T + when "ssize_t" + return TYPE_SSIZE_T + when "ptrdiff_t" + return TYPE_PTRDIFF_T + when "intptr_t" + return TYPE_INTPTR_T + when "uintptr_t" + return TYPE_UINTPTR_T when /\*/, /\[\s*\]/ return TYPE_VOIDP else diff --git a/ext/dl/lib/dl/types.rb b/ext/dl/lib/dl/types.rb index 3dfa40807a..d5724e407b 100644 --- a/ext/dl/lib/dl/types.rb +++ b/ext/dl/lib/dl/types.rb @@ -40,11 +40,7 @@ module DL typealias "UINT", "unsigned int" typealias "ULONG", "unsigned long" typealias "UCHAR", "unsigned char" - if [nil].pack('p').bytesize == 8 - typealias "HANDLE", "unsigned long long" - else - typealias "HANDLE", "unsigned long" - end + typealias "HANDLE", "uintptr_t" typealias "PHANDLE", "void*" typealias "PVOID", "void*" typealias "LPCSTR", "char*" |