ffi 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ffi might be problematic. Click here for more details.

data/Rakefile CHANGED
@@ -6,7 +6,7 @@ require 'date'
6
6
  require 'fileutils'
7
7
 
8
8
  GEM = "ffi"
9
- GEM_VERSION = "0.1.0"
9
+ GEM_VERSION = "0.1.1"
10
10
  AUTHOR = "Wayne Meissner"
11
11
  EMAIL = "wmeissner@gmail.com"
12
12
  HOMEPAGE = "http://kenai.com/projects/ruby-ffi"
@@ -19,6 +19,9 @@ VALUE rb_FFI_AbstractMemory_class = Qnil;
19
19
  static VALUE classMemory = Qnil;
20
20
 
21
21
  #define ADDRESS(self, offset) (memory_address((self)) + NUM2ULONG(offset))
22
+ #ifndef RARRAY_LEN
23
+ # define RARRAY_LEN(ary) RARRAY(ary)->len
24
+ #endif
22
25
 
23
26
  #define NUM_OP(name, type, toNative, fromNative) \
24
27
  static VALUE memory_put_##name(VALUE self, VALUE offset, VALUE value); \
@@ -47,7 +50,7 @@ static VALUE memory_put_array_of_##name(VALUE self, VALUE offset, VALUE ary); \
47
50
  static VALUE \
48
51
  memory_put_array_of_##name(VALUE self, VALUE offset, VALUE ary) \
49
52
  { \
50
- long count = RARRAY(ary)->len; \
53
+ long count = RARRAY_LEN(ary); \
51
54
  long off = NUM2LONG(offset); \
52
55
  AbstractMemory* memory = (AbstractMemory *) DATA_PTR(self); \
53
56
  caddr_t address = memory->address; \
@@ -7,6 +7,8 @@
7
7
  #include <ffi.h>
8
8
 
9
9
  #include "rbffi.h"
10
+ #include "compat.h"
11
+
10
12
  #include "AbstractMemory.h"
11
13
  #include "MemoryPointer.h"
12
14
  #include "Platform.h"
@@ -54,7 +56,7 @@ invoker_new(VALUE self, VALUE libname, VALUE cname, VALUE parameterTypes,
54
56
  invoker = ALLOC(Invoker);
55
57
  MEMZERO(invoker, Invoker, 1);
56
58
 
57
- invoker->paramCount = RARRAY(parameterTypes)->len;
59
+ invoker->paramCount = RARRAY_LEN(parameterTypes);
58
60
  invoker->paramTypes = ALLOC_N(NativeType, invoker->paramCount);
59
61
  invoker->ffiParamTypes = ALLOC_N(ffi_type *, invoker->paramCount);
60
62
 
@@ -0,0 +1,8 @@
1
+ #ifndef FFI_COMPAT_H
2
+ #define FFI_COMPAT_H
3
+
4
+ #ifndef RARRAY_LEN
5
+ # define RARRAY_LEN(ary) RARRAY(ary)->len
6
+ #endif
7
+
8
+ #endif /* FFI_COMPAT_H */
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wayne Meissner
@@ -31,6 +31,7 @@ files:
31
31
  - ext/Buffer.c
32
32
  - ext/Callback.c
33
33
  - ext/Callback.h
34
+ - ext/compat.h
34
35
  - ext/extconf.rb
35
36
  - ext/ffi.c
36
37
  - ext/ffi.mk
@@ -351,7 +352,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
351
352
  requirements: []
352
353
 
353
354
  rubyforge_project: ffi
354
- rubygems_version: 1.3.0
355
+ rubygems_version: 1.3.1
355
356
  signing_key:
356
357
  specification_version: 2
357
358
  summary: A Ruby foreign function interface (compatible with Rubinius and JRuby FFI)