[Pyrex] Re: Is this example correct?
Edward C. Jones
edcjones at erols.com
Fri May 9 14:49:46 CEST 2003
Thanks. I had a feeling that it was rediculous to malloc small structs.
Ed Jones
Pedro Rodriguez wrote:
>On Mon, 05 May 2003 22:18:15 +0000, Edward C. Jones wrote:
>
>
>
>>Is the code below correct? Can I reduce the number of calls to malloc?
>>Any ideas for improvement?
>>
>>
>>
>
>[...code snipped...]
>
>Sorry for this late question, but I am not familiar with the extension
>types and I may be missing something.
>
>The examples provided by Edward perform allocation/deallocation at
>initialisation/destruction of the object.
>
>Is there any pitfall to turn this into the following form, where no
>specific allocation is required:
>
>cdef class TemP__Num:
> # --> replace 't' as a pointer to Num into a full Num
> cdef Num t
>
> def __new__(self, i=0, x=0.0):
> # Removed [m]allocation of 't'
> if i != 0 and x != 0.0:
> raise TypeError, 'both i and x are non-zero'
> if x != 0.0:
> self.t.x = x
> else:
> self.t.i = i
>
> def __dealloc__(self):
> # Removed freeing 't'
> pass
>
> ...
>
> def ToPointer(self):
> # Use '&' on t
> return PyCObject_FromVoidPtrAndDesc(&(self.t), 'type Num*', NULL)
>
>
>
More information about the Pyrex
mailing list