diff --git a/ChangeLog b/ChangeLog index 37a2b75022..c6cb78f5b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,12 @@ -Wed Jul 23 17:51:18 2008 Nobuyoshi Nakada +Wed Jul 23 18:03:31 2008 Nobuyoshi Nakada + + * ext/dl/dl.c (rb_ary_to_ptr), ext/dl/ptr.c (rb_dlmem_delete): + suppress warnings. + + * ext/dl/ptr.c (rb_dlptr_inspect), ext/dl/sym.c (rb_dlsym_inspect): + use %p conversion. + + * ext/dl/sym.c (rb_dlsym_guardcall): prevent guard from optimization. * ext/nkf/nkf-utf8/nkf.c (options): operators without any effect. diff --git a/ext/dl/dl.c b/ext/dl/dl.c index f65247be86..8a4643c7de 100644 --- a/ext/dl/dl.c +++ b/ext/dl/dl.c @@ -547,6 +547,8 @@ rb_ary_to_ptr(int argc, VALUE argv[], VALUE self) case 0: ptr = rb_ary2cary(0, self, &size); break; + default: + return Qnil; } if (ptr) { VALUE p = rb_dlptr_new(ptr, size, dlfree); diff --git a/ext/dl/ptr.c b/ext/dl/ptr.c index 01eb31da20..075259479d 100644 --- a/ext/dl/ptr.c +++ b/ext/dl/ptr.c @@ -18,8 +18,9 @@ static st_table* st_memory_table; static void rb_dlmem_delete(void *ptr) { + st_data_t data = (st_data_t)ptr; rb_secure(4); - st_delete(st_memory_table, (st_data_t*)&ptr, NULL); + st_delete(st_memory_table, &data, NULL); } static void @@ -458,7 +459,7 @@ rb_dlptr_inspect(VALUE self) char str[1024]; Data_Get_Struct(self, struct ptr_data, data); - snprintf(str, 1023, "#<%s:0x%lx ptr=0x%lx size=%ld free=0x%lx>", + snprintf(str, 1023, "#<%s:%p ptr=%p size=%ld free=0x%lx>", rb_class2name(CLASS_OF(self)), data, data->ptr, data->size, (long)data->free); return rb_str_new2(str); diff --git a/ext/dl/sym.c b/ext/dl/sym.c index 933fb7f4f0..8c7c0ecf60 100644 --- a/ext/dl/sym.c +++ b/ext/dl/sym.c @@ -268,7 +268,7 @@ rb_dlsym_inspect(VALUE self) str_size = RSTRING(proto)->len + 100; str = dlmalloc(str_size); snprintf(str, str_size - 1, - "#", + "#", sym, sym->func, RSTRING(proto)->ptr); val = rb_tainted_str_new2(str); dlfree(str); @@ -430,6 +430,7 @@ rb_dlsym_guardcall(char type, ANY_TYPE *ret, long *stack, void *func) default: return 0; } + (void)guard; return 1; } # ifdef __MSVC_RUNTIME_CHECKS