* ext/dl/cfunc.c (dlcfunc_mark), ext/dl/cptr.c (dlptr_mark):
workaround to mark wrapped object. this is not a true fix,
because [Bug #4929] is caused by the interface design of DL.
* ext/dl/cptr.c (rb_dlptr_s_to_ptr): fix wrapping condition.
* ext/dl/cptr.c (rb_dlptr_s_to_ptr): fix wrapping condition.
* ext/dl/cptr.c (rb_dlptr_s_to_ptr): use rb_check_funcall.
merge revision(s) 32712,32718,32719: [Backport #6014]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e