ffi 1.1.6.pre2 → 1.2.0.dev

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

@@ -41,7 +41,7 @@ typedef struct FunctionType_ FunctionType;
41
41
  #include "ClosurePool.h"
42
42
 
43
43
  struct FunctionType_ {
44
- Type type; /* The native type of a FunctionInfo object */
44
+ Type type; // The native type of a FunctionInfo object
45
45
  VALUE rbReturnType;
46
46
  VALUE rbParameterTypes;
47
47
 
@@ -60,6 +60,7 @@ static VALUE
60
60
  mapped_initialize(VALUE self, VALUE rbConverter)
61
61
  {
62
62
  MappedType* m = NULL;
63
+ Type* t = NULL;
63
64
 
64
65
  if (!rb_respond_to(rbConverter, id_native_type)) {
65
66
  rb_raise(rb_eNoMethodError, "native_type method not implemented");
@@ -38,6 +38,7 @@ typedef int bool;
38
38
 
39
39
 
40
40
  static VALUE memptr_allocate(VALUE klass);
41
+ static void memptr_mark(Pointer* ptr);
41
42
  static void memptr_release(Pointer* ptr);
42
43
  static VALUE memptr_malloc(VALUE self, long size, long count, bool clear);
43
44
  static VALUE memptr_free(VALUE self);
@@ -136,10 +137,15 @@ memptr_release(Pointer* ptr)
136
137
  xfree(ptr);
137
138
  }
138
139
 
140
+ static void
141
+ memptr_mark(Pointer* ptr)
142
+ {
143
+ rb_gc_mark(ptr->rbParent);
144
+ }
145
+
139
146
  static VALUE
140
- memptr_s_from_string(VALUE klass, VALUE to_str)
147
+ memptr_s_from_string(VALUE klass, VALUE s)
141
148
  {
142
- VALUE s = StringValue(to_str);
143
149
  VALUE args[] = { INT2FIX(1), LONG2NUM(RSTRING_LEN(s) + 1), Qfalse };
144
150
  VALUE obj = rb_class_new_instance(3, args, klass);
145
151
  rb_funcall(obj, rb_intern("put_string"), 2, INT2FIX(0), s);
@@ -311,7 +311,7 @@ prep_trampoline(void* ctx, void* code, Closure* closure, char* errmsg, size_t er
311
311
  caddr_t ptr = (caddr_t) code;
312
312
 
313
313
  memcpy(ptr, &ffi_trampoline, trampoline_size());
314
- /* Patch the context and function addresses into the stub code */
314
+ // Patch the context and function addresses into the stub code
315
315
  *(intptr_t *)(ptr + trampoline_ctx_offset) = (intptr_t) closure;
316
316
  *(intptr_t *)(ptr + trampoline_func_offset) = (intptr_t) custom_trampoline;
317
317
 
@@ -330,10 +330,7 @@ trampoline_size(void)
330
330
  void
331
331
  rbffi_MethodHandle_Init(VALUE module)
332
332
  {
333
- #ifndef CUSTOM_TRAMPOLINE
334
333
  ffi_status ffiStatus;
335
- #endif
336
-
337
334
  defaultClosurePool = rbffi_ClosurePool_New((int) trampoline_size(), prep_trampoline, NULL);
338
335
 
339
336
  #if defined(CUSTOM_TRAMPOLINE)
@@ -181,7 +181,7 @@ ptr_initialize_copy(VALUE self, VALUE other)
181
181
  dst->memory.size = src->size;
182
182
  dst->memory.typeSize = src->typeSize;
183
183
 
184
- /* finally, copy the actual memory contents */
184
+ // finally, copy the actual memory contents
185
185
  memcpy(dst->memory.address, src->address, src->size);
186
186
 
187
187
  return self;
@@ -139,11 +139,11 @@ struct_initialize_copy(VALUE self, VALUE other)
139
139
  dst->rbLayout = src->rbLayout;
140
140
  dst->layout = src->layout;
141
141
 
142
- /*
143
- * A new MemoryPointer instance is allocated here instead of just calling
144
- * #dup on rbPointer, since the Pointer may not know its length, or may
145
- * be longer than just this struct.
146
- */
142
+ //
143
+ // A new MemoryPointer instance is allocated here instead of just calling
144
+ // #dup on rbPointer, since the Pointer may not know its length, or may
145
+ // be longer than just this struct.
146
+ //
147
147
  if (src->pointer->address != NULL) {
148
148
  dst->rbPointer = rbffi_MemoryPointer_NewInstance(1, src->layout->size, false);
149
149
  dst->pointer = MEMORY(dst->rbPointer);
@@ -87,7 +87,7 @@ sbv_initialize(VALUE self, VALUE rbStructClass)
87
87
  sbv->rbStructClass = rbStructClass;
88
88
  sbv->rbStructLayout = rbLayout;
89
89
 
90
- /* We can just use everything from the ffi_type directly */
90
+ // We can just use everything from the ffi_type directly
91
91
  *sbv->base.ffiType = *layout->base.ffiType;
92
92
 
93
93
  return self;
@@ -281,7 +281,7 @@ array_field_put(VALUE self, VALUE pointer, VALUE value)
281
281
  rb_raise(rb_eIndexError, "array too large");
282
282
  }
283
283
 
284
- /* clear the contents in case of a short write */
284
+ // clear the contents in case of a short write
285
285
  checkWrite(memory);
286
286
  checkBounds(memory, f->offset, f->type->ffiType->size);
287
287
  if (count < array->length) {
@@ -289,7 +289,7 @@ array_field_put(VALUE self, VALUE pointer, VALUE value)
289
289
  0, (array->length - count) * array->componentType->ffiType->size);
290
290
  }
291
291
 
292
- /* now copy each element in */
292
+ // now copy each element in
293
293
  if ((op = get_memory_op(array->componentType)) != NULL) {
294
294
 
295
295
  for (i = 0; i < count; ++i) {
@@ -357,7 +357,7 @@ struct_layout_initialize(VALUE self, VALUE fields, VALUE size, VALUE align)
357
357
  layout->fieldCount = (int) RARRAY_LEN(fields);
358
358
  layout->rbFieldMap = rb_hash_new();
359
359
  layout->rbFieldNames = rb_ary_new2(layout->fieldCount);
360
- layout->size = (int) FFI_ALIGN(NUM2INT(size), NUM2INT(align));
360
+ layout->size = FFI_ALIGN(NUM2INT(size), NUM2INT(align));
361
361
  layout->align = NUM2INT(align);
362
362
  layout->fields = xcalloc(layout->fieldCount, sizeof(StructField *));
363
363
  layout->ffiTypes = xcalloc(layout->fieldCount + 1, sizeof(ffi_type *));
@@ -423,7 +423,7 @@ struct_layout_union_bang(VALUE self)
423
423
 
424
424
  for (i = 0; alignment_types[i] != NULL; ++i) {
425
425
  if (alignment_types[i]->alignment == layout->align) {
426
- t = (ffi_type *) alignment_types[i];
426
+ t = alignment_types[i];
427
427
  break;
428
428
  }
429
429
  }
@@ -432,7 +432,7 @@ struct_layout_union_bang(VALUE self)
432
432
  return Qnil;
433
433
  }
434
434
 
435
- count = (int) layout->size / (int) t->size;
435
+ count = layout->size / t->size;
436
436
  xfree(layout->ffiTypes);
437
437
  layout->ffiTypes = xcalloc(count + 1, sizeof(ffi_type *));
438
438
  layout->base.ffiType->elements = layout->ffiTypes;
@@ -76,7 +76,7 @@ rbffi_thread_has_gvl_p(void)
76
76
  return rbffi_active_thread.valid && pthread_equal(rbffi_active_thread.id, pthread_self());
77
77
  #endif
78
78
  }
79
- #endif /* HAVE_RUBY_THREAD_HAS_GVL_P */
79
+ #endif // HAVE_RUBY_THREAD_HAS_GVL_P
80
80
 
81
81
  #ifndef HAVE_RB_THREAD_BLOCKING_REGION
82
82
 
@@ -322,5 +322,5 @@ rbffi_thread_blocking_region(VALUE (*func)(void *), void *data1, void (*ubf)(voi
322
322
 
323
323
  #endif /* !_WIN32 */
324
324
 
325
- #endif /* HAVE_RB_THREAD_BLOCKING_REGION */
325
+ #endif // HAVE_RB_THREAD_BLOCKING_REGION
326
326
 
@@ -193,7 +193,7 @@ rbffi_type_size(VALUE type)
193
193
  }
194
194
  }
195
195
 
196
- /* Not found - call up to the ruby version to resolve */
196
+ // Not found - call up to the ruby version to resolve
197
197
  return NUM2INT(rb_funcall2(rbffi_FFIModule, id_type_size, 1, &type));
198
198
 
199
199
  } else {
@@ -321,14 +321,14 @@ rbffi_Type_Init(VALUE moduleFFI)
321
321
  rb_define_method(rbffi_TypeClass, "alignment", type_alignment, 0);
322
322
  rb_define_method(rbffi_TypeClass, "inspect", type_inspect, 0);
323
323
 
324
- /* Make Type::Builtin non-allocatable */
324
+ // Make Type::Builtin non-allocatable
325
325
  rb_undef_method(CLASS_OF(classBuiltinType), "new");
326
326
  rb_define_method(classBuiltinType, "inspect", builtin_type_inspect, 0);
327
327
 
328
328
  rb_global_variable(&rbffi_TypeClass);
329
329
  rb_global_variable(&classBuiltinType);
330
330
 
331
- /* Define all the builtin types */
331
+ // Define all the builtin types
332
332
  #define T(x, ffiType) do { \
333
333
  VALUE t = Qnil; \
334
334
  rb_define_const(rbffi_TypeClass, #x, t = builtin_type_new(classBuiltinType, NATIVE_##x, ffiType, #x)); \
@@ -98,10 +98,8 @@ rbffi_NativeValue_ToRuby(Type* type, VALUE rbType, const void* ptr)
98
98
  }
99
99
 
100
100
  case NATIVE_MAPPED: {
101
- /*
102
- * For mapped types, first convert to the real native type, then upcall to
103
- * ruby to convert to the expected return type
104
- */
101
+ // For mapped types, first convert to the real native type, then upcall to
102
+ // ruby to convert to the expected return type
105
103
  MappedType* m = (MappedType *) type;
106
104
  VALUE values[2], rbReturnValue;
107
105
 
@@ -66,8 +66,13 @@ typedef enum {
66
66
  NATIVE_MAPPED,
67
67
  } NativeType;
68
68
 
69
+ #include <ffi.h>
69
70
  #include "Type.h"
70
71
 
72
+ #ifndef FFI_STDCALL
73
+ #define FFI_STDCALL FFI_DEFAULT_ABI
74
+ #endif
75
+
71
76
  VALUE rbffi_NativeValue_ToRuby(Type* type, VALUE rbType, const void* ptr);
72
77
  void rbffi_Types_Init(VALUE moduleFFI);
73
78
 
@@ -94,10 +94,8 @@ variadic_initialize(VALUE self, VALUE rbFunction, VALUE rbParameterTypes, VALUE
94
94
  VALUE retval = Qnil;
95
95
  VALUE convention = Qnil;
96
96
  VALUE fixed = Qnil;
97
- #if defined(_WIN32) || defined(__WIN32__)
98
- VALUE rbConventionStr;
99
- #endif
100
- int i;
97
+ VALUE rbConventionStr;
98
+ int i;
101
99
 
102
100
  Check_Type(options, T_HASH);
103
101
  convention = rb_hash_aref(options, ID2SYM(rb_intern("convention")));
@@ -4,12 +4,7 @@ if !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby"
4
4
  require 'mkmf'
5
5
  require 'rbconfig'
6
6
  dir_config("ffi_c")
7
-
8
- # recent versions of ruby add restrictive ansi and warning flags on a whim - kill them all
9
- $warnflags = ''
10
- $CFLAGS.gsub!(/-ansi/, '')
11
- $CFLAGS.gsub!(/-std=[^\s]+/, '')
12
-
7
+
13
8
  if ENV['RUBY_CC_VERSION'].nil? && (pkg_config("libffi") ||
14
9
  have_header("ffi.h") ||
15
10
  find_header("ffi.h", "/usr/local/include", "/usr/include/ffi"))
@@ -35,7 +30,11 @@ if !defined?(RUBY_ENGINE) || RUBY_ENGINE == "ruby"
35
30
 
36
31
  $CFLAGS << " -mwin32 " if RbConfig::CONFIG['host_os'] =~ /cygwin/
37
32
  $LOCAL_LIBS << " ./libffi/.libs/libffi_convenience.lib" if RbConfig::CONFIG['host_os'] =~ /mswin/
38
-
33
+ #$CFLAGS << " -Werror -Wunused -Wformat -Wimplicit -Wreturn-type "
34
+ if (ENV['CC'] || RbConfig::MAKEFILE_CONFIG['CC']) =~ /gcc/
35
+ # $CFLAGS << " -Wno-declaration-after-statement "
36
+ end
37
+
39
38
  create_makefile("ffi_c")
40
39
  unless libffi_ok
41
40
  File.open("Makefile", "a") do |mf|
@@ -59,7 +59,7 @@ Init_ffi_c(void) {
59
59
  rb_global_variable(&moduleFFI);
60
60
 
61
61
 
62
- /* FFI::Type needs to be initialized before most other classes */
62
+ // FFI::Type needs to be initialized before most other classes
63
63
  rbffi_Type_Init(moduleFFI);
64
64
 
65
65
  rbffi_DataConverter_Init(moduleFFI);
@@ -25,7 +25,7 @@ ifeq ($(strip $(ARCHES)),)
25
25
  LIBFFI_BUILD_DIR = $(BUILD_DIR)/libffi-$(arch)
26
26
  # Just build the one (default) architecture
27
27
  $(LIBFFI):
28
- @mkdir -p "$(LIBFFI_BUILD_DIR)" "$(@D)"
28
+ @mkdir -p "$(LIBFFI_BUILD_DIR)"
29
29
  @if [ ! -f "$(LIBFFI_BUILD_DIR)"/Makefile ]; then \
30
30
  echo "Configuring libffi"; \
31
31
  cd "$(LIBFFI_BUILD_DIR)" && \
@@ -66,7 +66,7 @@ endif
66
66
 
67
67
  $(LIBFFI): $(LIBTARGETS)
68
68
  # Assemble into a FAT (x86_64, i386, ppc) library
69
- @mkdir -p "$(@D)"
69
+ @mkdir -p "$(BUILD_DIR)"/libffi/.libs
70
70
  /usr/bin/libtool -static -o $@ \
71
71
  $(foreach arch, $(ARCHES),"$(BUILD_DIR)"/libffi-$(arch)/.libs/libffi_convenience.a)
72
72
  @mkdir -p "$(LIBFFI_BUILD_DIR)"/include
@@ -3,7 +3,7 @@
3
3
  include ${srcdir}/libffi.gnu.mk
4
4
 
5
5
  $(LIBFFI):
6
- @mkdir -p "$(LIBFFI_BUILD_DIR)" "$@(D)"
6
+ @mkdir -p "$(LIBFFI_BUILD_DIR)"
7
7
  @if [ ! -f "$(LIBFFI_BUILD_DIR)"/Makefile ]; then \
8
8
  echo "Configuring libffi"; \
9
9
  cd "$(LIBFFI_BUILD_DIR)" && \
@@ -8,16 +8,7 @@
8
8
  #include <sys/types.h>
9
9
 
10
10
  #if defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) || defined(__GLIBC__)
11
- # include <endian.h>
12
- # if !defined(LITTLE_ENDIAN) && defined(__LITTLE_ENDIAN)
13
- # define LITTLE_ENDIAN __LITTLE_ENDIAN
14
- # endif
15
- # if !defined(BIG_ENDIAN) && defined(__BIG_ENDIAN)
16
- # define BIG_ENDIAN __BIG_ENDIAN
17
- # endif
18
- # if !defined(BYTE_ORDER) && defined(__BYTE_ORDER)
19
- # define BYTE_ORDER __BYTE_ORDER
20
- # endif
11
+ # include <endian.h>
21
12
  #endif
22
13
 
23
14
  #ifdef __sun
@@ -16,10 +16,6 @@ describe "MemoryPointer" do
16
16
  m.type_size.should eq 1
17
17
  end
18
18
 
19
- it "does not make a pointer from non-strings" do
20
- expect { FFI::MemoryPointer.from_string(nil) }.to raise_error(TypeError)
21
- end
22
-
23
19
  it "makes a pointer from a string with multibyte characters" do
24
20
  m = FFI::MemoryPointer.from_string("ぱんだ")
25
21
  m.total.should eq 10
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 2849813023
4
+ hash: 286533929
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 1
8
- - 1
9
- - 6
10
- - pre
11
8
  - 2
12
- version: 1.1.6.pre2
9
+ - 0
10
+ - dev
11
+ version: 1.2.0.dev
13
12
  platform: ruby
14
13
  authors:
15
14
  - Wayne Meissner
@@ -17,55 +16,51 @@ autorequire:
17
16
  bindir: bin
18
17
  cert_chain: []
19
18
 
20
- date: 2012-09-15 00:00:00 +10:00
19
+ date: 2012-07-29 00:00:00 +10:00
21
20
  default_executable:
22
- dependencies: []
23
-
24
- description: |-
25
- Ruby-FFI is a ruby extension for programmatically loading dynamic
26
- libraries, binding functions within them, and calling those functions
27
- from Ruby code. Moreover, a Ruby-FFI extension works without changes
28
- on Ruby and JRuby. Discover why should you write your next extension
29
- using Ruby-FFI here[http://wiki.github.com/ffi/ffi/why-use-ffi].
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: rake
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
34
+ type: :development
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake-compiler
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 7
45
+ segments:
46
+ - 0
47
+ - 6
48
+ - 0
49
+ version: 0.6.0
50
+ type: :development
51
+ version_requirements: *id002
52
+ description: Ruby FFI library
30
53
  email: wmeissner@gmail.com
31
54
  executables: []
32
55
 
33
56
  extensions:
34
57
  - ext/ffi_c/extconf.rb
35
- extra_rdoc_files:
36
- - History.txt
37
- - README.rdoc
38
- - lib/ffi/platform/arm-linux/types.conf
39
- - lib/ffi/platform/i386-darwin/types.conf
40
- - lib/ffi/platform/i386-freebsd/types.conf
41
- - lib/ffi/platform/i386-linux/types.conf
42
- - lib/ffi/platform/i386-netbsd/types.conf
43
- - lib/ffi/platform/i386-openbsd/types.conf
44
- - lib/ffi/platform/i386-solaris/types.conf
45
- - lib/ffi/platform/i386-windows/types.conf
46
- - lib/ffi/platform/i486-gnu/types.conf
47
- - lib/ffi/platform/ia64-linux/types.conf
48
- - lib/ffi/platform/mips-linux/types.conf
49
- - lib/ffi/platform/mipsel-linux/types.conf
50
- - lib/ffi/platform/powerpc-aix/types.conf
51
- - lib/ffi/platform/powerpc-darwin/types.conf
52
- - lib/ffi/platform/powerpc-linux/types.conf
53
- - lib/ffi/platform/s390-linux/types.conf
54
- - lib/ffi/platform/s390x-linux/types.conf
55
- - lib/ffi/platform/sparc-linux/types.conf
56
- - lib/ffi/platform/sparc-solaris/types.conf
57
- - lib/ffi/platform/sparcv9-solaris/types.conf
58
- - lib/ffi/platform/x86_64-darwin/types.conf
59
- - lib/ffi/platform/x86_64-freebsd/types.conf
60
- - lib/ffi/platform/x86_64-linux/types.conf
61
- - lib/ffi/platform/x86_64-netbsd/types.conf
62
- - lib/ffi/platform/x86_64-openbsd/types.conf
63
- - lib/ffi/platform/x86_64-solaris/types.conf
64
- - lib/Lib.iml
58
+ extra_rdoc_files: []
59
+
65
60
  files:
66
61
  - History.txt
67
62
  - LICENSE
68
- - README.rdoc
63
+ - README.md
69
64
  - Rakefile
70
65
  - ext/ffi_c/AbstractMemory.c
71
66
  - ext/ffi_c/AbstractMemory.h
@@ -76,63 +71,25 @@ files:
76
71
  - ext/ffi_c/Call.h
77
72
  - ext/ffi_c/ClosurePool.c
78
73
  - ext/ffi_c/ClosurePool.h
74
+ - ext/ffi_c/compat.h
79
75
  - ext/ffi_c/DataConverter.c
80
76
  - ext/ffi_c/DynamicLibrary.c
81
77
  - ext/ffi_c/DynamicLibrary.h
78
+ - ext/ffi_c/extconf.rb
79
+ - ext/ffi_c/ffi.c
82
80
  - ext/ffi_c/Ffi_c.iml
83
81
  - ext/ffi_c/Function.c
84
82
  - ext/ffi_c/Function.h
85
83
  - ext/ffi_c/FunctionInfo.c
86
84
  - ext/ffi_c/LastError.c
87
85
  - ext/ffi_c/LastError.h
88
- - ext/ffi_c/LongDouble.c
89
- - ext/ffi_c/LongDouble.h
90
- - ext/ffi_c/MappedType.c
91
- - ext/ffi_c/MappedType.h
92
- - ext/ffi_c/MemoryPointer.c
93
- - ext/ffi_c/MemoryPointer.h
94
- - ext/ffi_c/MethodHandle.c
95
- - ext/ffi_c/MethodHandle.h
96
- - ext/ffi_c/Platform.c
97
- - ext/ffi_c/Platform.h
98
- - ext/ffi_c/Pointer.c
99
- - ext/ffi_c/Pointer.h
100
- - ext/ffi_c/Struct.c
101
- - ext/ffi_c/Struct.h
102
- - ext/ffi_c/StructByReference.c
103
- - ext/ffi_c/StructByReference.h
104
- - ext/ffi_c/StructByValue.c
105
- - ext/ffi_c/StructByValue.h
106
- - ext/ffi_c/StructLayout.c
107
- - ext/ffi_c/Thread.c
108
- - ext/ffi_c/Thread.h
109
- - ext/ffi_c/Type.c
110
- - ext/ffi_c/Type.h
111
- - ext/ffi_c/Types.c
112
- - ext/ffi_c/Types.h
113
- - ext/ffi_c/Variadic.c
114
- - ext/ffi_c/compat.h
115
- - ext/ffi_c/extconf.rb
116
- - ext/ffi_c/ffi.c
117
- - ext/ffi_c/libffi.bsd.mk
118
- - ext/ffi_c/libffi.darwin.mk
119
- - ext/ffi_c/libffi.gnu.mk
120
- - ext/ffi_c/libffi.mk
121
- - ext/ffi_c/libffi.vc.mk
122
- - ext/ffi_c/libffi.vc64.mk
86
+ - ext/ffi_c/libffi/acinclude.m4
87
+ - ext/ffi_c/libffi/aclocal.m4
88
+ - ext/ffi_c/libffi/build-ios.sh
123
89
  - ext/ffi_c/libffi/ChangeLog
124
90
  - ext/ffi_c/libffi/ChangeLog.libffi
125
91
  - ext/ffi_c/libffi/ChangeLog.libgcj
126
92
  - ext/ffi_c/libffi/ChangeLog.v1
127
- - ext/ffi_c/libffi/LICENSE
128
- - ext/ffi_c/libffi/Makefile.am
129
- - ext/ffi_c/libffi/Makefile.in
130
- - ext/ffi_c/libffi/Makefile.vc
131
- - ext/ffi_c/libffi/Makefile.vc64
132
- - ext/ffi_c/libffi/README
133
- - ext/ffi_c/libffi/acinclude.m4
134
- - ext/ffi_c/libffi/aclocal.m4
135
- - ext/ffi_c/libffi/build-ios.sh
136
93
  - ext/ffi_c/libffi/compile
137
94
  - ext/ffi_c/libffi/config.guess
138
95
  - ext/ffi_c/libffi/config.sub
@@ -146,15 +103,16 @@ files:
146
103
  - ext/ffi_c/libffi/doc/version.texi
147
104
  - ext/ffi_c/libffi/fficonfig.h.in
148
105
  - ext/ffi_c/libffi/fficonfig.hw
149
- - ext/ffi_c/libffi/include/Makefile.am
150
- - ext/ffi_c/libffi/include/Makefile.in
151
106
  - ext/ffi_c/libffi/include/ffi.h.in
152
107
  - ext/ffi_c/libffi/include/ffi.h.vc
153
108
  - ext/ffi_c/libffi/include/ffi.h.vc64
154
109
  - ext/ffi_c/libffi/include/ffi_common.h
110
+ - ext/ffi_c/libffi/include/Makefile.am
111
+ - ext/ffi_c/libffi/include/Makefile.in
155
112
  - ext/ffi_c/libffi/install-sh
156
113
  - ext/ffi_c/libffi/libffi.pc.in
157
114
  - ext/ffi_c/libffi/libtool-version
115
+ - ext/ffi_c/libffi/LICENSE
158
116
  - ext/ffi_c/libffi/ltmain.sh
159
117
  - ext/ffi_c/libffi/m4/ax_cc_maxopt.m4
160
118
  - ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4
@@ -169,14 +127,19 @@ files:
169
127
  - ext/ffi_c/libffi/m4/ltsugar.m4
170
128
  - ext/ffi_c/libffi/m4/ltversion.m4
171
129
  - ext/ffi_c/libffi/m4/lt~obsolete.m4
172
- - ext/ffi_c/libffi/man/Makefile.am
173
- - ext/ffi_c/libffi/man/Makefile.in
130
+ - ext/ffi_c/libffi/Makefile.am
131
+ - ext/ffi_c/libffi/Makefile.in
132
+ - ext/ffi_c/libffi/Makefile.vc
133
+ - ext/ffi_c/libffi/Makefile.vc64
174
134
  - ext/ffi_c/libffi/man/ffi.3
175
135
  - ext/ffi_c/libffi/man/ffi_call.3
176
136
  - ext/ffi_c/libffi/man/ffi_prep_cif.3
137
+ - ext/ffi_c/libffi/man/Makefile.am
138
+ - ext/ffi_c/libffi/man/Makefile.in
177
139
  - ext/ffi_c/libffi/mdate-sh
178
140
  - ext/ffi_c/libffi/missing
179
141
  - ext/ffi_c/libffi/msvcc.sh
142
+ - ext/ffi_c/libffi/README
180
143
  - ext/ffi_c/libffi/src/alpha/ffi.c
181
144
  - ext/ffi_c/libffi/src/alpha/ffitarget.h
182
145
  - ext/ffi_c/libffi/src/alpha/osf.S
@@ -256,8 +219,6 @@ files:
256
219
  - ext/ffi_c/libffi/src/x86/unix64.S
257
220
  - ext/ffi_c/libffi/src/x86/win32.S
258
221
  - ext/ffi_c/libffi/src/x86/win64.S
259
- - ext/ffi_c/libffi/testsuite/Makefile.am
260
- - ext/ffi_c/libffi/testsuite/Makefile.in
261
222
  - ext/ffi_c/libffi/testsuite/config/default.exp
262
223
  - ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp
263
224
  - ext/ffi_c/libffi/testsuite/lib/libffi.exp
@@ -390,14 +351,45 @@ files:
390
351
  - ext/ffi_c/libffi/testsuite/libffi.special/special.exp
391
352
  - ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc
392
353
  - ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
354
+ - ext/ffi_c/libffi/testsuite/Makefile.am
355
+ - ext/ffi_c/libffi/testsuite/Makefile.in
393
356
  - ext/ffi_c/libffi/texinfo.tex
357
+ - ext/ffi_c/libffi.bsd.mk
358
+ - ext/ffi_c/libffi.darwin.mk
359
+ - ext/ffi_c/libffi.gnu.mk
360
+ - ext/ffi_c/libffi.mk
361
+ - ext/ffi_c/libffi.vc.mk
362
+ - ext/ffi_c/libffi.vc64.mk
363
+ - ext/ffi_c/LongDouble.c
364
+ - ext/ffi_c/LongDouble.h
365
+ - ext/ffi_c/MappedType.c
366
+ - ext/ffi_c/MappedType.h
367
+ - ext/ffi_c/MemoryPointer.c
368
+ - ext/ffi_c/MemoryPointer.h
369
+ - ext/ffi_c/MethodHandle.c
370
+ - ext/ffi_c/MethodHandle.h
371
+ - ext/ffi_c/Platform.c
372
+ - ext/ffi_c/Platform.h
373
+ - ext/ffi_c/Pointer.c
374
+ - ext/ffi_c/Pointer.h
394
375
  - ext/ffi_c/rbffi.h
395
376
  - ext/ffi_c/rbffi_endian.h
377
+ - ext/ffi_c/Struct.c
378
+ - ext/ffi_c/Struct.h
379
+ - ext/ffi_c/StructByReference.c
380
+ - ext/ffi_c/StructByReference.h
381
+ - ext/ffi_c/StructByValue.c
382
+ - ext/ffi_c/StructByValue.h
383
+ - ext/ffi_c/StructLayout.c
384
+ - ext/ffi_c/Thread.c
385
+ - ext/ffi_c/Thread.h
386
+ - ext/ffi_c/Type.c
387
+ - ext/ffi_c/Type.h
388
+ - ext/ffi_c/Types.c
389
+ - ext/ffi_c/Types.h
390
+ - ext/ffi_c/Variadic.c
396
391
  - ext/ffi_c/win32/stdint.h
397
392
  - gen/Rakefile
398
- - gen/log
399
- - lib/Lib.iml
400
- - lib/ffi.rb
401
393
  - lib/ffi/autopointer.rb
402
394
  - lib/ffi/buffer.rb
403
395
  - lib/ffi/callback.rb
@@ -408,7 +400,6 @@ files:
408
400
  - lib/ffi/library.rb
409
401
  - lib/ffi/managedstruct.rb
410
402
  - lib/ffi/memorypointer.rb
411
- - lib/ffi/platform.rb
412
403
  - lib/ffi/platform/arm-linux/types.conf
413
404
  - lib/ffi/platform/i386-darwin/types.conf
414
405
  - lib/ffi/platform/i386-freebsd/types.conf
@@ -435,6 +426,7 @@ files:
435
426
  - lib/ffi/platform/x86_64-netbsd/types.conf
436
427
  - lib/ffi/platform/x86_64-openbsd/types.conf
437
428
  - lib/ffi/platform/x86_64-solaris/types.conf
429
+ - lib/ffi/platform.rb
438
430
  - lib/ffi/pointer.rb
439
431
  - lib/ffi/struct.rb
440
432
  - lib/ffi/struct_layout_builder.rb
@@ -446,7 +438,8 @@ files:
446
438
  - lib/ffi/types.rb
447
439
  - lib/ffi/union.rb
448
440
  - lib/ffi/variadic.rb
449
- - spec/ffi/Ffi.iml
441
+ - lib/ffi.rb
442
+ - lib/Lib.iml
450
443
  - spec/ffi/async_callback_spec.rb
451
444
  - spec/ffi/bool_spec.rb
452
445
  - spec/ffi/buffer_spec.rb
@@ -456,6 +449,7 @@ files:
456
449
  - spec/ffi/dup_spec.rb
457
450
  - spec/ffi/enum_spec.rb
458
451
  - spec/ffi/errno_spec.rb
452
+ - spec/ffi/Ffi.iml
459
453
  - spec/ffi/ffi_spec.rb
460
454
  - spec/ffi/function_spec.rb
461
455
  - spec/ffi/library_spec.rb
@@ -478,41 +472,28 @@ files:
478
472
  - spec/ffi/union_spec.rb
479
473
  - spec/ffi/variadic_spec.rb
480
474
  - spec/spec.opts
481
- - tasks/ann.rake
482
- - tasks/extension.rake
483
- - tasks/gem.rake
484
- - tasks/git.rake
485
- - tasks/notes.rake
486
- - tasks/post_load.rake
487
- - tasks/rdoc.rake
488
- - tasks/rubyforge.rake
489
- - tasks/setup.rb
490
- - tasks/spec.rake
491
- - tasks/svn.rake
492
- - tasks/test.rake
493
- - tasks/yard.rake
494
475
  has_rdoc: true
495
476
  homepage: http://wiki.github.com/ffi/ffi
496
- licenses: []
497
-
477
+ licenses:
478
+ - LGPL-3
498
479
  post_install_message:
499
- rdoc_options:
500
- - -x
501
- - ext
502
- - --main
503
- - README.rdoc
480
+ rdoc_options: []
481
+
504
482
  require_paths:
505
483
  - lib
506
- - ext
484
+ - lib/ffi
485
+ - ext/ffi_c
507
486
  required_ruby_version: !ruby/object:Gem::Requirement
508
487
  none: false
509
488
  requirements:
510
489
  - - ">="
511
490
  - !ruby/object:Gem::Version
512
- hash: 3
491
+ hash: 57
513
492
  segments:
514
- - 0
515
- version: "0"
493
+ - 1
494
+ - 8
495
+ - 7
496
+ version: 1.8.7
516
497
  required_rubygems_version: !ruby/object:Gem::Requirement
517
498
  none: false
518
499
  requirements:
@@ -526,10 +507,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
526
507
  version: 1.3.1
527
508
  requirements: []
528
509
 
529
- rubyforge_project: ffi
510
+ rubyforge_project:
530
511
  rubygems_version: 1.6.2
531
512
  signing_key:
532
513
  specification_version: 3
533
- summary: Ruby-FFI is a ruby extension for programmatically loading dynamic libraries, binding functions within them, and calling those functions from Ruby code
514
+ summary: Ruby FFI
534
515
  test_files: []
535
516