Attached is an example .cpp file that can be compile with mkoctfile,
demonstrating the issue. I have included a simple makefile to compile
it and create the necessary symlinks.
The code tries to store handles to a library in a map. The key to the
map is passed back to octave such that the "user" can choose on which
instance of the library a function is called.
Thanks for testing and I am curious to know if you guys think it is a
bug in 3.2 or if it was "un-intentionally" working in 3.0.
Christophe Tournery
Testing in Octave 3.0.5:
------------------------
octave:1> h1 = mylib_init()
h1 = 0
octave:2> h2 = mylib_init()
h2 = 1
octave:3> mylib_destroy(h1)
octave:4> mylib_destroy(h2)
Testing in octave 3.2.0:
------------------------
octave:1> h1 = mylib_init()
h1 = 0
octave:2> h2 = mylib_init()
h2 = 1
octave:3> mylib_destroy(h1)
error: mylib_destroy: handle '0' does not exist!
octave:3> mylib_destroy(h2)
error: mylib_destroy: handle '1' does not exist!