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.
- data/README.md +104 -0
- data/Rakefile +36 -43
- data/ext/ffi_c/AbstractMemory.c +22 -16
- data/ext/ffi_c/AbstractMemory.h +1 -1
- data/ext/ffi_c/Buffer.c +2 -2
- data/ext/ffi_c/Call.c +8 -6
- data/ext/ffi_c/ClosurePool.c +1 -1
- data/ext/ffi_c/DynamicLibrary.c +2 -2
- data/ext/ffi_c/Function.c +25 -26
- data/ext/ffi_c/Function.h +1 -1
- data/ext/ffi_c/MappedType.c +1 -0
- data/ext/ffi_c/MemoryPointer.c +8 -2
- data/ext/ffi_c/MethodHandle.c +1 -4
- data/ext/ffi_c/Pointer.c +1 -1
- data/ext/ffi_c/Struct.c +5 -5
- data/ext/ffi_c/StructByValue.c +1 -1
- data/ext/ffi_c/StructLayout.c +5 -5
- data/ext/ffi_c/Thread.c +2 -2
- data/ext/ffi_c/Type.c +3 -3
- data/ext/ffi_c/Types.c +2 -4
- data/ext/ffi_c/Types.h +5 -0
- data/ext/ffi_c/Variadic.c +2 -4
- data/ext/ffi_c/extconf.rb +6 -7
- data/ext/ffi_c/ffi.c +1 -1
- data/ext/ffi_c/libffi.darwin.mk +2 -2
- data/ext/ffi_c/libffi.mk +1 -1
- data/ext/ffi_c/rbffi_endian.h +1 -10
- data/spec/ffi/rbx/memory_pointer_spec.rb +0 -4
- metadata +107 -126
- data/README.rdoc +0 -102
- data/gen/log +0 -1
- data/tasks/ann.rake +0 -80
- data/tasks/extension.rake +0 -32
- data/tasks/gem.rake +0 -199
- data/tasks/git.rake +0 -41
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -50
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -301
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
- data/tasks/yard.rake +0 -11
data/ext/ffi_c/Function.h
CHANGED
@@ -41,7 +41,7 @@ typedef struct FunctionType_ FunctionType;
|
|
41
41
|
#include "ClosurePool.h"
|
42
42
|
|
43
43
|
struct FunctionType_ {
|
44
|
-
Type type;
|
44
|
+
Type type; // The native type of a FunctionInfo object
|
45
45
|
VALUE rbReturnType;
|
46
46
|
VALUE rbParameterTypes;
|
47
47
|
|
data/ext/ffi_c/MappedType.c
CHANGED
data/ext/ffi_c/MemoryPointer.c
CHANGED
@@ -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
|
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);
|
data/ext/ffi_c/MethodHandle.c
CHANGED
@@ -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
|
-
|
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)
|
data/ext/ffi_c/Pointer.c
CHANGED
@@ -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
|
-
|
184
|
+
// finally, copy the actual memory contents
|
185
185
|
memcpy(dst->memory.address, src->address, src->size);
|
186
186
|
|
187
187
|
return self;
|
data/ext/ffi_c/Struct.c
CHANGED
@@ -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
|
-
|
144
|
-
|
145
|
-
|
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);
|
data/ext/ffi_c/StructByValue.c
CHANGED
@@ -87,7 +87,7 @@ sbv_initialize(VALUE self, VALUE rbStructClass)
|
|
87
87
|
sbv->rbStructClass = rbStructClass;
|
88
88
|
sbv->rbStructLayout = rbLayout;
|
89
89
|
|
90
|
-
|
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;
|
data/ext/ffi_c/StructLayout.c
CHANGED
@@ -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
|
-
|
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
|
-
|
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 =
|
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 =
|
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 =
|
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;
|
data/ext/ffi_c/Thread.c
CHANGED
@@ -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
|
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
|
325
|
+
#endif // HAVE_RB_THREAD_BLOCKING_REGION
|
326
326
|
|
data/ext/ffi_c/Type.c
CHANGED
@@ -193,7 +193,7 @@ rbffi_type_size(VALUE type)
|
|
193
193
|
}
|
194
194
|
}
|
195
195
|
|
196
|
-
|
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
|
-
|
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
|
-
|
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)); \
|
data/ext/ffi_c/Types.c
CHANGED
@@ -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
|
-
|
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
|
|
data/ext/ffi_c/Types.h
CHANGED
@@ -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
|
|
data/ext/ffi_c/Variadic.c
CHANGED
@@ -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
|
-
|
98
|
-
|
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")));
|
data/ext/ffi_c/extconf.rb
CHANGED
@@ -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|
|
data/ext/ffi_c/ffi.c
CHANGED
@@ -59,7 +59,7 @@ Init_ffi_c(void) {
|
|
59
59
|
rb_global_variable(&moduleFFI);
|
60
60
|
|
61
61
|
|
62
|
-
|
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);
|
data/ext/ffi_c/libffi.darwin.mk
CHANGED
@@ -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)"
|
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 "$(
|
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
|
data/ext/ffi_c/libffi.mk
CHANGED
data/ext/ffi_c/rbffi_endian.h
CHANGED
@@ -8,16 +8,7 @@
|
|
8
8
|
#include <sys/types.h>
|
9
9
|
|
10
10
|
#if defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) || defined(__GLIBC__)
|
11
|
-
#
|
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:
|
4
|
+
hash: 286533929
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
- 1
|
9
|
-
- 6
|
10
|
-
- pre
|
11
8
|
- 2
|
12
|
-
|
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-
|
19
|
+
date: 2012-07-29 00:00:00 +10:00
|
21
20
|
default_executable:
|
22
|
-
dependencies:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
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.
|
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/
|
89
|
-
- ext/ffi_c/
|
90
|
-
- ext/ffi_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/
|
173
|
-
- ext/ffi_c/libffi/
|
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
|
-
-
|
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
|
-
|
501
|
-
- ext
|
502
|
-
- --main
|
503
|
-
- README.rdoc
|
480
|
+
rdoc_options: []
|
481
|
+
|
504
482
|
require_paths:
|
505
483
|
- lib
|
506
|
-
-
|
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:
|
491
|
+
hash: 57
|
513
492
|
segments:
|
514
|
-
-
|
515
|
-
|
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:
|
510
|
+
rubyforge_project:
|
530
511
|
rubygems_version: 1.6.2
|
531
512
|
signing_key:
|
532
513
|
specification_version: 3
|
533
|
-
summary: Ruby
|
514
|
+
summary: Ruby FFI
|
534
515
|
test_files: []
|
535
516
|
|