Граф коммитов

17 Коммитов

Автор SHA1 Сообщение Дата
ngoto a1a5c879f7 * test/dl/test_func.rb (test_name_with_block, test_bind, test_qsort1): call unbind to release the callback closure because maximum number of callbacks is limited to DL::MAX_CALLBACK (== 5) with pure DL without Fiddle.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-11 15:44:22 +00:00
ngoto 1fcde7c2e2 * ext/dl/lib/dl/func.rb (DL::Function#unbind, #bound?): suppress NoMethodError when Fiddle is available. [ruby-core:50756] [Bug #7543]
* test/dl/test_func.rb (test_bound*, test_unbind*): tests for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-11 15:24:31 +00:00
ngoto 9920da5593 * ext/dl/lib/dl/func.rb (DL::Function#bind): When Fiddle is used,
@ptr should be updated. This fixes SEGV raised in DL::Function#call
  after calling DL::Function#bind. [Bug #7516] [ruby-dev:46708]
* test/dl/test_func.rb (test_bind): test for the above


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-05 13:24:19 +00:00
ngoto f1841f43eb * ext/dl/lib/dl/func.rb (DL::Function#initialize, DL::Function#bind):
ABI should be set by using CFunc#calltype even when Fiddle is used.
  When Fiddle is used and a block is given, name shoud not be ignored.
  [ruby-core:50562] [Bug #7514]
* ext/dl/lib/dl/import.rb (DL::Importer#bind_function): should respect
  abi and name when Fiddle is used.
* test/dl/test_func.rb (test_name_with_block): test for "name" method
  with giving a block.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-05 03:20:05 +00:00
ngoto bff44ef4cd * test/dl/test_func.rb (test_qsort1, test_qsort2): use TYPE_SIZE_T
for size_t variables. [ruby-dev:45733] [Bug #6584]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-13 13:52:04 +00:00
nobu 9f3914aba6 * 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.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-27 17:15:09 +00:00
nobu 3a47cf3395 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-15 11:55:52 +00:00
nobu 59064a75b8 * test/dl/test_dl2.rb (TestDL#test_sin): math functions do not
work on x86_64 due to the design of DL2.
* test/dl/test_func.rb (DL::TestFunc#test_{sinf,sin): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-01-30 07:15:23 +00:00
tarui db4a0d42dd * ext/dl/lib/dl/func.rb (call): don't overwrite original arguments
to defend from GC.
	* test/dl/test_func.rb (test_string): add test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-25 19:43:15 +00:00
usa ec21e8438c * test/dl/test_func.rb (test_sinf): sinf() doesn't exist in the standard of C.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 09:07:27 +00:00
tenderlove b386fe21ec Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/dl/function.c: DL::Function now uses libffi

        * ext/dl/cfunc.c (rb_dl_set_last_error): set to non static so errors
          can be exposed.

        * ext/dl/closure.c: DL::Closure will now be used in place of
          ext/dl/callback/*.

        * ext/dl/dl.c: legacy callbacks removed in favor of libffi

        * ext/dl/dl_converions.(c,h): used for converting ruby types to FFI
          types.

        * ext/dl/callback/*: replaced by libffi callbacks.

        * ext/dl/lib/dl/callback.rb: Converting internal callbacks to use
          DL::Closure

        * ext/dl/lib/dl/closure.rb: Ruby parts of the new DL::Closure object

        * ext/dl/lib/dl/import.rb: More conversion to use DL::Closure object

        * ext/dl/lib/dl/value.rb (ruby2ffi): adding private method for
          DL::CPtr to ffi value conversion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-03 01:23:48 +00:00
tenderlove 753de85e40 * test/dl/test_callback.rb testing callback removal
* test/dl/test_func.rb testing function names, to_i

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-07 00:49:09 +00:00
tenderlove 9a9cc65035 * test/dl/test_cptr.rb (**): using ruby_xfree instead of libc's free
* test/dl/test_func.rb (test_strdod): strtod needs a char ** argument

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-13 07:19:59 +00:00
tenderlove 17ccd5d013 * ext/dl/cptr.c (rb_dlptr_s_to_ptr): when wrapping a pointer it should
keep a reference to the object it's wrapping
* test/dl/test_func.rb use standard test methods

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-12 22:41:07 +00:00
tenderlove f0e0b77864 * test/dl/test_func.rb (test_strtod): strtod test should not rely on
memory layout

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-10 22:51:24 +00:00
akr 3ce642f5af * test/dl: use require_relative to require test_base.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-10 17:14:53 +00:00
nobu f9ca2119e4 * test/dl: moved from ext/dl/test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03 06:03:23 +00:00