The immediate result is for varopt, but having this working should be an important part of adding tuple support.
I'm least confident in the error recovery during deserialization. I think it's most likely that Python will throw an error which propagates through the c++ code. In this case I'm intercepting it to try to decrement reference counts for items we've already allocated but it's hard to tell if that's actually preventing a leak or not. Happy for suggestions on how to clean up that code.
The immediate result is for varopt, but having this working should be an important part of adding tuple support.
I'm least confident in the error recovery during deserialization. I think it's most likely that Python will throw an error which propagates through the c++ code. In this case I'm intercepting it to try to decrement reference counts for items we've already allocated but it's hard to tell if that's actually preventing a leak or not. Happy for suggestions on how to clean up that code.
Also, fixed a size bug in varopt.