From bf48e2286965c53e1d083113c7d2b4d4eb9a0f13 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 21 Dec 2004 23:35:11 +0000 Subject: * ext/dl/sym.c (rb_dlsym_initialize): extract internal pointers after all argument conversion. fixed: [ruby-dev:25271] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/dl/sym.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ext/dl') diff --git a/ext/dl/sym.c b/ext/dl/sym.c index 751b2be39f..7151d3c04e 100644 --- a/ext/dl/sym.c +++ b/ext/dl/sym.c @@ -154,8 +154,9 @@ rb_dlsym_initialize(int argc, VALUE argv[], VALUE self) rb_scan_args(argc, argv, "12", &addr, &name, &type); saddr = (void*)(DLNUM2LONG(rb_Integer(addr))); - sname = NIL_P(name) ? NULL : StringValuePtr(name); + if (!NIL_P(name)) StringValue(name); stype = NIL_P(type) ? NULL : StringValuePtr(type); + sname = NIL_P(name) ? NULL : RSTRING(name)->ptr; if( saddr ){ Data_Get_Struct(self, struct sym_data, data); -- cgit v1.2.3