Fix overloading for non-pointers and NULL - Ruby
This commit is contained in:
parent
2769a8763c
commit
d14c97408d
2 changed files with 53 additions and 1 deletions
52
Examples/test-suite/ruby/overload_null_runme.rb
Normal file
52
Examples/test-suite/ruby/overload_null_runme.rb
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env ruby
|
||||
#
|
||||
# Put script description here.
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
require 'swig_assert'
|
||||
require 'overload_null'
|
||||
|
||||
include Overload_null
|
||||
|
||||
o = Overload.new
|
||||
x = X.new
|
||||
|
||||
swig_assert(1 == o.byval1(x))
|
||||
swig_assert(2 == o.byval1(nil))
|
||||
|
||||
swig_assert(3 == o.byval2(nil))
|
||||
swig_assert(4 == o.byval2(x))
|
||||
|
||||
swig_assert(5 == o.byref1(x))
|
||||
swig_assert(6 == o.byref1(nil))
|
||||
|
||||
swig_assert(7 == o.byref2(nil))
|
||||
swig_assert(8 == o.byref2(x))
|
||||
|
||||
swig_assert(9 == o.byconstref1(x))
|
||||
swig_assert(10 == o.byconstref1(nil))
|
||||
|
||||
swig_assert(11 == o.byconstref2(nil))
|
||||
swig_assert(12 == o.byconstref2(x))
|
||||
|
||||
# const pointer references
|
||||
swig_assert(13 == o.byval1cpr(x))
|
||||
swig_assert(14 == o.byval1cpr(nil))
|
||||
|
||||
swig_assert(15 == o.byval2cpr(nil))
|
||||
swig_assert(16 == o.byval2cpr(x))
|
||||
|
||||
# forward class declaration
|
||||
swig_assert(17 == o.byval1forwardptr(x))
|
||||
swig_assert(18 == o.byval1forwardptr(nil))
|
||||
|
||||
swig_assert(19 == o.byval2forwardptr(nil))
|
||||
swig_assert(20 == o.byval2forwardptr(x))
|
||||
|
||||
swig_assert(21 == o.byval1forwardref(x))
|
||||
|
||||
swig_assert(22 == o.byval2forwardref(x))
|
||||
|
|
@ -266,7 +266,7 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
|
|||
if (NIL_P(obj)) {
|
||||
if (ptr)
|
||||
*ptr = 0;
|
||||
return SWIG_OK;
|
||||
return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK;
|
||||
} else {
|
||||
if (TYPE(obj) != T_DATA) {
|
||||
return SWIG_ERROR;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue