I have two XS modules on solaris using Sun C compiler.  One has 
a C helper function, defined before any MODULE line in the xs 
file.  It takes a C pointer and returns a created perl object.  
The second module calls that function from the first module's 
shared object.

In 32-bit mode, this worked.  In 64-bit mode, the rv returned 
by the function, when used by the second module, is bad.  Any 
attempts to dereference (using SvRV, etc), produce seg faults.  
I added a duplicate function in the second module, just to 
isolate the problem origin, and everything works great again.

Why does this not work in 64-bit, since it still works in 32-bit?  
I'm guessing that this is not a good practice, so I will stop 
doing it, but curious about the difference.


Any thoughts, especially suggestions on how to deal with duplicate 
code between modules, is appreciated.


Thanks,

Marc


















__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to