11cimport cython
22from cpython.ref cimport Py_INCREF, Py_DECREF
33from libc.string cimport strcmp
4- from libc.stdlib cimport malloc, free
4+ from cpython.mem cimport PyMem_Malloc, PyMem_Free
55
66from .gdextension_interface cimport *
77from .gdapi cimport *
@@ -127,32 +127,32 @@ cdef inline void _extension_class_method_get_argument_info(void* p_method_userda
127127
128128 if p_argument == - 1 :
129129 r_info.type = _type_name_to_gdnative_variant_type(spec.return_type)
130- r_info.name = malloc (sizeof(gd_string_name_t))
130+ r_info.name = PyMem_Malloc (sizeof(gd_string_name_t))
131131 (< gd_string_name_t* > r_info.name)[0 ] = gd_string_name_from_pybytes(b" " )
132132 else :
133133 arg_name, type_name = spec.arguments_type[p_argument]
134134 r_info.type = _type_name_to_gdnative_variant_type(type_name)
135- r_info.name = malloc (sizeof(gd_string_name_t))
135+ r_info.name = PyMem_Malloc (sizeof(gd_string_name_t))
136136 (< gd_string_name_t* > r_info.name)[0 ] = gd_string_name_from_pybytes(arg_name)
137137
138- r_info.class_name = malloc (sizeof(gd_string_name_t))
138+ r_info.class_name = PyMem_Malloc (sizeof(gd_string_name_t))
139139 (< gd_string_name_t* > r_info.class_name)[0 ] = gd_string_name_from_pybytes(spec.class_name)
140140
141141 # TODO: finish that !
142142 r_info.hint = PROPERTY_HINT_NONE
143- r_info.hint_string = malloc (sizeof(gd_string_t))
143+ r_info.hint_string = PyMem_Malloc (sizeof(gd_string_t))
144144 (< gd_string_t* > r_info.hint_string)[0 ] = gd_string_from_pybytes(b" " )
145145 r_info.usage = PROPERTY_USAGE_DEFAULT
146146
147147
148148cdef inline void _extension_class_method_empty_argument_info(GDExtensionPropertyInfo* r_info) noexcept with gil:
149149 r_info.type = GDEXTENSION_VARIANT_TYPE_NIL
150- r_info.name = malloc (sizeof(gd_string_name_t))
150+ r_info.name = PyMem_Malloc (sizeof(gd_string_name_t))
151151 (< gd_string_name_t* > r_info.name)[0 ] = gd_string_name_from_pybytes(b" " )
152- r_info.class_name = malloc (sizeof(gd_string_name_t))
152+ r_info.class_name = PyMem_Malloc (sizeof(gd_string_name_t))
153153 (< gd_string_name_t* > r_info.class_name)[0 ] = gd_string_name_from_pybytes(b" " )
154154 r_info.hint = PROPERTY_HINT_NONE
155- r_info.hint_string = malloc (sizeof(gd_string_t))
155+ r_info.hint_string = PyMem_Malloc (sizeof(gd_string_t))
156156 (< gd_string_t* > r_info.hint_string)[0 ] = gd_string_from_pybytes(b" " )
157157 r_info.usage = PROPERTY_USAGE_DEFAULT
158158
@@ -337,7 +337,7 @@ cdef inline void register_extension_class_method(
337337 else :
338338 info.method_flags = GDEXTENSION_METHOD_FLAG_NORMAL
339339
340- info.return_value_info = < GDExtensionPropertyInfo* > malloc (sizeof(GDExtensionPropertyInfo))
340+ info.return_value_info = < GDExtensionPropertyInfo* > PyMem_Malloc (sizeof(GDExtensionPropertyInfo))
341341 if return_type == b" void" :
342342 info.has_return_value = False # gd_bool_t
343343 info.return_value_metadata = GDEXTENSION_METHOD_ARGUMENT_METADATA_NONE # Dummy default
@@ -351,8 +351,8 @@ cdef inline void register_extension_class_method(
351351 info.argument_count = < uint32_t> len (arguments_type) # uint32_t
352352
353353 if info.argument_count > 0 :
354- info.arguments_info = < GDExtensionPropertyInfo* > malloc (sizeof(GDExtensionPropertyInfo) * info.argument_count)
355- info.arguments_metadata = < GDExtensionClassMethodArgumentMetadata* > malloc (sizeof(GDExtensionClassMethodArgumentMetadata) * info.argument_count)
354+ info.arguments_info = < GDExtensionPropertyInfo* > PyMem_Malloc (sizeof(GDExtensionPropertyInfo) * info.argument_count)
355+ info.arguments_metadata = < GDExtensionClassMethodArgumentMetadata* > PyMem_Malloc (sizeof(GDExtensionClassMethodArgumentMetadata) * info.argument_count)
356356 else :
357357 info.arguments_info = NULL # GDExtensionPropertyInfo *
358358 info.arguments_metadata = NULL # GDExtensionClassMethodArgumentMetadata *
@@ -381,31 +381,31 @@ cdef inline void register_extension_class_method(
381381 gd_string_name_del(& gd_method_name)
382382
383383 gd_string_name_del(< gd_string_name_t* > info.return_value_info.name)
384- free (info.return_value_info.name)
384+ PyMem_Free (info.return_value_info.name)
385385
386386 gd_string_name_del(< gd_string_name_t* > info.return_value_info.class_name)
387- free (info.return_value_info.class_name)
387+ PyMem_Free (info.return_value_info.class_name)
388388
389389 gd_string_del(< gd_string_t* > info.return_value_info.hint_string)
390- free (info.return_value_info.hint_string)
390+ PyMem_Free (info.return_value_info.hint_string)
391391
392- free (info.return_value_info)
392+ PyMem_Free (info.return_value_info)
393393
394394 for i, _ in enumerate (arguments_type):
395395 gd_string_name_del(< gd_string_name_t* > info.arguments_info[i].name)
396- free (info.arguments_info[i].name)
396+ PyMem_Free (info.arguments_info[i].name)
397397
398398 gd_string_name_del(< gd_string_name_t* > info.arguments_info[i].class_name)
399- free (info.arguments_info[i].class_name)
399+ PyMem_Free (info.arguments_info[i].class_name)
400400
401401 gd_string_del(< gd_string_t* > info.arguments_info[i].hint_string)
402- free (info.arguments_info[i].hint_string)
402+ PyMem_Free (info.arguments_info[i].hint_string)
403403
404404 if info.arguments_info != NULL :
405- free (info.arguments_info)
405+ PyMem_Free (info.arguments_info)
406406
407407 if info.arguments_metadata != NULL :
408- free (info.arguments_metadata)
408+ PyMem_Free (info.arguments_metadata)
409409
410410 # TODO: free `info.default_arguments`
411411
0 commit comments