A new Python header

Kirk McDonald kirklin.mcdonald at gmail.com
Wed Jun 21 00:59:06 PDT 2006


Kirk McDonald wrote:
> Ha! I fixed it. It was a stupid problem. I managed to decrement a 
> reference count when I shouldn't have, causing Python to free() 
> something twice when the interpreter closed down.
> 
> Kirk McDonald wrote:
> 
>> // Note the new function template syntax. Ohh, ahh.
>> typeof(Ptr) lazy_sys(alias Ptr, char[] name) () {
>>     if (Ptr is null) {
>>         PyObject* sys_modules = PyImport_GetModuleDict();
>>         Ptr = PyDict_GetItemString(sys_modules, name ~ \0);
> 
> This one right here; GetModuleDict returns a borrowed reference!
> 
>>         Py_DECREF(sys_modules);
>>         assert (Ptr !is null,
>>             "python.d couldn't load " ~ name ~ " attribute!");
>>     }
>>     return Ptr;
>> }
>>
> 
> Anyway, the updated (and now working) header can be found at:
> 
> http://216.190.88.10/media/python.d
> 
> -Kirk McDonald

Durrrr, that's not the right URL. It's this:

http://216.190.88.10:8087/media/python.d

-Kirk McDonald



More information about the Digitalmars-d mailing list