diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-21 09:10:23 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-21 09:10:23 +0000 |
commit | 87af442f946da3b5ab3bc8fb351824ec8c240fe7 (patch) | |
tree | 792f75b9f15c0da49ecf99a8512ccd5581f59733 /ext/dl | |
parent | c6b6293bc13b9107cad52f407810cddc4dd0b475 (diff) | |
download | ruby-87af442f946da3b5ab3bc8fb351824ec8c240fe7.tar.gz |
* suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/dl')
-rw-r--r-- | ext/dl/cfunc.c | 44 | ||||
-rw-r--r-- | ext/dl/cptr.c | 4 | ||||
-rw-r--r-- | ext/dl/handle.c | 2 |
3 files changed, 26 insertions, 24 deletions
diff --git a/ext/dl/cfunc.c b/ext/dl/cfunc.c index f2579da191..b123b50d24 100644 --- a/ext/dl/cfunc.c +++ b/ext/dl/cfunc.c @@ -82,7 +82,7 @@ rb_dlcfunc_new(void (*func)(), int type, const char *name, ID calltype) rb_secure(4); if( func ){ val = TypedData_Make_Struct(rb_cDLCFunc, struct cfunc_data, &dlcfunc_data_type, data); - data->ptr = func; + data->ptr = (void *)(VALUE)func; data->name = name ? strdup(name) : NULL; data->type = type; data->calltype = calltype; @@ -306,9 +306,11 @@ rb_dlcfunc_inspect(VALUE self) } -# define DECL_FUNC_CDECL(f,ret,args) ret (FUNC_CDECL(*f))(args) +# define DECL_FUNC_CDECL(f,ret,args,val) \ + ret (FUNC_CDECL(*f))(args) = (ret (FUNC_CDECL(*))(args))(VALUE)(val) #ifdef FUNC_STDCALL -# define DECL_FUNC_STDCALL(f,ret,args) ret (FUNC_STDCALL(*f))(args) +# define DECL_FUNC_STDCALL(f,ret,args,val) \ + ret (FUNC_STDCALL(*f))(args) = (ret (FUNC_STDCALL(*))(args))(VALUE)(val) #endif #define CALL_CASE switch( RARRAY_LEN(ary) ){ \ @@ -376,7 +378,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) switch( cfunc->type ){ case DLTYPE_VOID: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,void,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,void,DLSTACK_PROTO##n,cfunc->ptr); \ f(DLSTACK_ARGS##n(stack)); \ result = Qnil; \ } @@ -385,7 +387,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_VOIDP: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,void*,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,void*,DLSTACK_PROTO##n,cfunc->ptr); \ void * ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = PTR2NUM(ret); \ @@ -395,7 +397,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_CHAR: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,char,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,char,DLSTACK_PROTO##n,cfunc->ptr); \ char ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = CHR2FIX(ret); \ @@ -405,7 +407,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_SHORT: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,short,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,short,DLSTACK_PROTO##n,cfunc->ptr); \ short ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = INT2NUM((int)ret); \ @@ -415,7 +417,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_INT: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,int,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,int,DLSTACK_PROTO##n,cfunc->ptr); \ int ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = INT2NUM(ret); \ @@ -425,7 +427,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_LONG: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,long,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,long,DLSTACK_PROTO##n,cfunc->ptr); \ long ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = LONG2NUM(ret); \ @@ -436,7 +438,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) #if HAVE_LONG_LONG /* used in ruby.h */ case DLTYPE_LONG_LONG: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,LONG_LONG,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,LONG_LONG,DLSTACK_PROTO##n,cfunc->ptr); \ LONG_LONG ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = LL2NUM(ret); \ @@ -447,7 +449,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) #endif case DLTYPE_FLOAT: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,float,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,float,DLSTACK_PROTO##n,cfunc->ptr); \ float ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = rb_float_new(ret); \ @@ -457,7 +459,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_DOUBLE: #define CASE(n) case n: { \ - DECL_FUNC_CDECL(f,double,DLSTACK_PROTO##n) = cfunc->ptr; \ + DECL_FUNC_CDECL(f,double,DLSTACK_PROTO##n,cfunc->ptr); \ double ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = rb_float_new(ret); \ @@ -475,7 +477,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) switch( cfunc->type ){ case DLTYPE_VOID: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,void,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,void,DLSTACK_PROTO##n##_,cfunc->ptr); \ f(DLSTACK_ARGS##n(stack)); \ result = Qnil; \ } @@ -484,7 +486,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_VOIDP: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,void*,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,void*,DLSTACK_PROTO##n##_,cfunc->ptr); \ void * ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = PTR2NUM(ret); \ @@ -494,7 +496,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_CHAR: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,char,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,char,DLSTACK_PROTO##n##_,cfunc->ptr); \ char ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = CHR2FIX(ret); \ @@ -504,7 +506,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_SHORT: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,short,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,short,DLSTACK_PROTO##n##_,cfunc->ptr); \ short ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = INT2NUM((int)ret); \ @@ -514,7 +516,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_INT: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,int,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,int,DLSTACK_PROTO##n##_,cfunc->ptr); \ int ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = INT2NUM(ret); \ @@ -524,7 +526,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_LONG: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,long,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,long,DLSTACK_PROTO##n##_,cfunc->ptr); \ long ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = LONG2NUM(ret); \ @@ -535,7 +537,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) #if HAVE_LONG_LONG /* used in ruby.h */ case DLTYPE_LONG_LONG: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,LONG_LONG,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,LONG_LONG,DLSTACK_PROTO##n##_,cfunc->ptr); \ LONG_LONG ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = LL2NUM(ret); \ @@ -546,7 +548,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) #endif case DLTYPE_FLOAT: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,float,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,float,DLSTACK_PROTO##n##_,cfunc->ptr); \ float ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = rb_float_new(ret); \ @@ -556,7 +558,7 @@ rb_dlcfunc_call(VALUE self, VALUE ary) break; case DLTYPE_DOUBLE: #define CASE(n) case n: { \ - DECL_FUNC_STDCALL(f,double,DLSTACK_PROTO##n##_) = cfunc->ptr; \ + DECL_FUNC_STDCALL(f,double,DLSTACK_PROTO##n##_,cfunc->ptr); \ double ret; \ ret = f(DLSTACK_ARGS##n(stack)); \ result = rb_float_new(ret); \ diff --git a/ext/dl/cptr.c b/ext/dl/cptr.c index 5edd13cc97..2a34a704e2 100644 --- a/ext/dl/cptr.c +++ b/ext/dl/cptr.c @@ -16,9 +16,9 @@ get_freefunc(VALUE func) return NULL; } if (rb_dlcfunc_kind_p(func)) { - return RCFUNC_DATA(func)->ptr; + return (freefunc_t)(VALUE)RCFUNC_DATA(func)->ptr; } - return NUM2PTR(rb_Integer(func)); + return (freefunc_t)(VALUE)NUM2PTR(rb_Integer(func)); } static ID id_to_ptr; diff --git a/ext/dl/handle.c b/ext/dl/handle.c index dddd8d54e9..3e3b91a8c9 100644 --- a/ext/dl/handle.c +++ b/ext/dl/handle.c @@ -305,7 +305,7 @@ dlhandle_sym(void *handle, const char *name) void (*func)(); rb_secure(2); - func = dlsym(handle, name); + func = (void (*)())(VALUE)dlsym(handle, name); CHECK_DLERROR; #if defined(FUNC_STDCALL) if( !func ){ |