@@ -76,7 +76,7 @@ inline PyObject *read_bool(ReaderT *reader)
7676 if (reader->ptr + 1 > reader->end )
7777 {
7878 PyErr_SetString (PyExc_ValueError, " read_bool out of bounds" );
79- return NULL ;
79+ return nullptr ;
8080 }
8181 PyObject *value = *reader->ptr ++ ? Py_True : Py_False;
8282 Py_INCREF (value);
@@ -88,7 +88,7 @@ inline PyObject *read_bool_array(ReaderT *reader, int32_t count)
8888 if (reader->ptr + count > reader->end )
8989 {
9090 PyErr_SetString (PyExc_ValueError, " read_bool_array out of bounds" );
91- return NULL ;
91+ return nullptr ;
9292 }
9393 PyObject *list = PyList_New (count);
9494 for (auto i = 0 ; i < count; i++)
@@ -105,7 +105,7 @@ inline PyObject *read_u8(ReaderT *reader)
105105 if (reader->ptr + 1 > reader->end )
106106 {
107107 PyErr_SetString (PyExc_ValueError, " read_u8 out of bounds" );
108- return NULL ;
108+ return nullptr ;
109109 }
110110 return PyLong_FromUnsignedLong (*reader->ptr ++);
111111}
@@ -115,7 +115,7 @@ inline PyObject *read_u8_array(ReaderT *reader, int32_t count)
115115 if (reader->ptr + count > reader->end )
116116 {
117117 PyErr_SetString (PyExc_ValueError, " read_u8_array out of bounds" );
118- return NULL ;
118+ return nullptr ;
119119 }
120120 PyObject *list = PyList_New (count);
121121 for (auto i = 0 ; i < count; i++)
@@ -130,7 +130,7 @@ inline PyObject *read_s8(ReaderT *reader)
130130 if (reader->ptr + 1 > reader->end )
131131 {
132132 PyErr_SetString (PyExc_ValueError, " read_s8 out of bounds" );
133- return NULL ;
133+ return nullptr ;
134134 }
135135 return PyLong_FromLong ((int8_t )*reader->ptr ++);
136136}
@@ -140,7 +140,7 @@ inline PyObject *read_s8_array(ReaderT *reader, int32_t count)
140140 if (reader->ptr + count > reader->end )
141141 {
142142 PyErr_SetString (PyExc_ValueError, " read_s8_array out of bounds" );
143- return NULL ;
143+ return nullptr ;
144144 }
145145 PyObject *list = PyList_New (count);
146146 int8_t *ptr = (int8_t *)reader->ptr ;
@@ -291,12 +291,12 @@ inline PyObject *read_str(ReaderT *reader)
291291 int32_t length;
292292 if (!_read_length<swap>(reader, &length))
293293 {
294- return NULL ;
294+ return nullptr ;
295295 }
296296 if (reader->ptr + length > reader->end )
297297 {
298298 PyErr_SetString (PyExc_EOFError, " read_str out of bounds" );
299- return NULL ;
299+ return nullptr ;
300300 }
301301 PyObject *py_str = PyUnicode_DecodeUTF8 ((char *)reader->ptr , length, " surrogateescape" );
302302 reader->ptr += length;
@@ -310,12 +310,12 @@ inline PyObject *read_bytes(ReaderT *reader)
310310 int32_t length;
311311 if (!_read_length<swap>(reader, &length))
312312 {
313- return NULL ;
313+ return nullptr ;
314314 }
315315 if (reader->ptr + length > reader->end )
316316 {
317317 PyErr_SetString (PyExc_ValueError, " read_bytes out of bounds" );
318- return NULL ;
318+ return nullptr ;
319319 }
320320 PyObject *bytes = PyBytes_FromStringAndSize ((char *)reader->ptr , length);
321321 reader->ptr += length;
@@ -328,19 +328,19 @@ inline PyObject *read_pair(ReaderT *reader, TypeTreeNodeObject *node, TypeTreeRe
328328 if (PyList_GET_SIZE (node->m_Children ) != 2 )
329329 {
330330 PyErr_SetString (PyExc_ValueError, " Pair node must have 2 children" );
331- return NULL ;
331+ return nullptr ;
332332 }
333333
334334 PyObject *first = read_typetree_value<swap>(reader, (TypeTreeNodeObject *)PyList_GET_ITEM (node->m_Children , 0 ), config);
335- if (first == NULL )
335+ if (first == nullptr )
336336 {
337- return NULL ;
337+ return nullptr ;
338338 }
339339 PyObject *second = read_typetree_value<swap>(reader, (TypeTreeNodeObject *)PyList_GET_ITEM (node->m_Children , 1 ), config);
340- if (second == NULL )
340+ if (second == nullptr )
341341 {
342342 Py_DECREF (first);
343- return NULL ;
343+ return nullptr ;
344344 }
345345 // PyTuple_Pack creates two strong references
346346 PyObject *pair = PyTuple_Pack (2 , first, second);
@@ -356,31 +356,31 @@ inline PyObject *read_pair_array(ReaderT *reader, TypeTreeNodeObject *node, Type
356356 if (PyList_GET_SIZE (node->m_Children ) != 2 )
357357 {
358358 PyErr_SetString (PyExc_ValueError, " Pair node must have 2 children" );
359- return NULL ;
359+ return nullptr ;
360360 }
361361
362362 TypeTreeNodeObject *first_child = (TypeTreeNodeObject *)PyList_GET_ITEM (node->m_Children , 0 );
363363 TypeTreeNodeObject *second_child = (TypeTreeNodeObject *)PyList_GET_ITEM (node->m_Children , 1 );
364364
365365 PyObject *list = PyList_New (count);
366- if (list == NULL )
366+ if (list == nullptr )
367367 {
368- return NULL ;
368+ return nullptr ;
369369 }
370370 for (auto i = 0 ; i < count; i++)
371371 {
372372 PyObject *first = read_typetree_value<swap>(reader, first_child, config);
373- if (first == NULL )
373+ if (first == nullptr )
374374 {
375375 Py_DECREF (list);
376- return NULL ;
376+ return nullptr ;
377377 }
378378 PyObject *second = read_typetree_value<swap>(reader, second_child, config);
379- if (second == NULL )
379+ if (second == nullptr )
380380 {
381381 Py_DECREF (first);
382382 Py_DECREF (list);
383- return NULL ;
383+ return nullptr ;
384384 }
385385 PyList_SET_ITEM (list, i, PyTuple_Pack (2 , first, second)); // pack creates two strong references
386386 // so we need to decref both values here to bring their ref count back to 1
@@ -412,10 +412,10 @@ inline PyObject *read_class(ReaderT *reader, TypeTreeNodeObject *node, TypeTreeR
412412 }
413413 }
414414 PyObject *child_value = read_typetree_value<swap>(reader, child, config); // child_value: 1 refcount
415- if (child_value == NULL )
415+ if (child_value == nullptr )
416416 {
417417 Py_DECREF (value); // value: 0 refcount
418- return NULL ;
418+ return nullptr ;
419419 }
420420 int set_item_result;
421421 if constexpr (as_dict == true )
@@ -430,7 +430,7 @@ inline PyObject *read_class(ReaderT *reader, TypeTreeNodeObject *node, TypeTreeR
430430 {
431431 Py_DECREF (value); // value: 0 refcount
432432 Py_DECREF (child_value); // child_value: 0 refcount
433- return NULL ;
433+ return nullptr ;
434434 }
435435 // PyDict_SetItem increases ref count, so we need to decref here
436436 Py_DECREF (child_value); // child_value: 1 refcount
@@ -449,7 +449,7 @@ static PyObject *_get_annotations = nullptr;
449449inline PyObject *get_annotations (PyObject *clz)
450450{
451451#if PY_VERSION_HEX >= 0x030e0000
452- return PyObject_CallFunctionObjArgs (_get_annotations, clz, NULL );
452+ return PyObject_CallFunctionObjArgs (_get_annotations, clz, nullptr );
453453#else
454454 return PyObject_GetAttrString (clz, " __annotations__" );
455455#endif
@@ -468,9 +468,9 @@ inline PyObject *parse_class(PyObject *kwargs, TypeTreeNodeObject *node, TypeTre
468468 // slots check
469469 PyObject *slots = nullptr ;
470470
471- if (kwargs == NULL )
471+ if (kwargs == nullptr )
472472 {
473- return NULL ;
473+ return nullptr ;
474474 }
475475
476476 if (node->_data_type == NodeDataType::PPtr)
@@ -587,27 +587,27 @@ TypeTreeNodeObject *get_ref_type_node(PyObject *ref_object, PyObject *assetsfile
587587 if (assetsfile == Py_None)
588588 {
589589 PyErr_SetString (PyExc_ValueError, " Reference Type found but no SerializedFile passed as assetsfile to read_typetree!" );
590- return NULL ;
590+ return nullptr ;
591591 }
592592 PyObject *ref_types = PyObject_GetAttrString (assetsfile, " ref_types" );
593593 if (!ref_types || !PyList_Check (ref_types))
594594 {
595595 Py_XDECREF (ref_types);
596596 PyErr_SetString (PyExc_ValueError, " No SerializedFile.ref_types" );
597- return NULL ;
597+ return nullptr ;
598598 }
599599
600600 PyObject *type = PyDict_GetItemString (ref_object, " type" );
601601 if (!type)
602602 {
603603 Py_DECREF (ref_types);
604604 PyErr_SetString (PyExc_ValueError, " Failed to get 'type'" );
605- return NULL ;
605+ return nullptr ;
606606 }
607607
608- PyObject *cls = NULL ;
609- PyObject *ns = NULL ;
610- PyObject *asm_ = NULL ;
608+ PyObject *cls = nullptr ;
609+ PyObject *ns = nullptr ;
610+ PyObject *asm_ = nullptr ;
611611 if (PyDict_Check (type))
612612 {
613613 cls = PyDict_GetItemString (type, " class" );
@@ -631,7 +631,7 @@ TypeTreeNodeObject *get_ref_type_node(PyObject *ref_object, PyObject *assetsfile
631631 Py_XDECREF (ns);
632632 Py_XDECREF (asm_);
633633 PyErr_SetString (PyExc_ValueError, " Failed to get 'class', 'ns' or 'asm'" );
634- return NULL ;
634+ return nullptr ;
635635 }
636636
637637 if (PyUnicode_GET_LENGTH (cls) == 0 )
@@ -644,7 +644,7 @@ TypeTreeNodeObject *get_ref_type_node(PyObject *ref_object, PyObject *assetsfile
644644 }
645645
646646 Py_ssize_t ref_types_len = PyList_Size (ref_types);
647- TypeTreeNodeObject *ref_type_node = NULL ;
647+ TypeTreeNodeObject *ref_type_node = nullptr ;
648648 for (Py_ssize_t i = 0 ; i < ref_types_len; i++)
649649 {
650650 PyObject *ref_type = PyList_GetItem (ref_types, i);
@@ -762,7 +762,7 @@ PyObject *read_typetree_value(ReaderT *reader, TypeTreeNodeObject *node, TypeTre
762762 {
763763 PyErr_SetString (PyExc_ValueError, " Failed to get ref type node" );
764764 Py_DECREF (value);
765- return NULL ;
765+ return nullptr ;
766766 }
767767 else if (ref_node == (TypeTreeNodeObject *)Py_None)
768768 {
@@ -777,28 +777,28 @@ PyObject *read_typetree_value(ReaderT *reader, TypeTreeNodeObject *node, TypeTre
777777 child_value = read_typetree_value<swap>(reader, child, config);
778778 }
779779
780- if (child_value == NULL )
780+ if (child_value == nullptr )
781781 {
782782 Py_DECREF (value);
783- return NULL ;
783+ return nullptr ;
784784 }
785785 if (PyDict_SetItem (value, child->m_Name , child_value))
786786 {
787787 Py_DECREF (value);
788788 Py_DECREF (child_value);
789- return NULL ;
789+ return nullptr ;
790790 }
791791 // dict increases ref count, so we need to decref here
792792 Py_DECREF (child_value);
793793 }
794794 if (!config->as_dict )
795795 {
796796 PyObject *clz = PyObject_GetAttrString (config->classes , " UnknownObject" );
797- if (clz == NULL )
797+ if (clz == nullptr )
798798 {
799799 PyErr_SetString (PyExc_ValueError, " Failed to get class" );
800800 Py_DECREF (value);
801- return NULL ;
801+ return nullptr ;
802802 }
803803 PyObject *args = PyTuple_Pack (1 , (PyObject *)node);
804804 PyObject *instance = PyObject_Call (clz, args, value);
@@ -822,7 +822,7 @@ PyObject *read_typetree_value(ReaderT *reader, TypeTreeNodeObject *node, TypeTre
822822 if (PyList_GET_SIZE (child->m_Children ) != 2 )
823823 {
824824 PyErr_SetString (PyExc_ValueError, " Array node must have 2 children" );
825- return NULL ;
825+ return nullptr ;
826826 }
827827
828828 if (child->_align )
@@ -832,24 +832,24 @@ PyObject *read_typetree_value(ReaderT *reader, TypeTreeNodeObject *node, TypeTre
832832 int32_t length;
833833 if (!_read_length<swap>(reader, &length))
834834 {
835- return NULL ;
835+ return nullptr ;
836836 }
837837
838838 child = (TypeTreeNodeObject *)PyList_GET_ITEM (child->m_Children , 1 );
839839 if (std::find (std::begin (SUPPORTED_VALUE_ARRAY_READ_TYPES ), std::end (SUPPORTED_VALUE_ARRAY_READ_TYPES ), child->_data_type ) == std::end (SUPPORTED_VALUE_ARRAY_READ_TYPES ))
840840 {
841841 value = PyList_New (length);
842- if (value == NULL )
842+ if (value == nullptr )
843843 {
844- return NULL ;
844+ return nullptr ;
845845 }
846846 for (int i = 0 ; i < length; i++)
847847 {
848848 PyObject *item = read_typetree_value<swap>(reader, child, config);
849- if (item == NULL )
849+ if (item == nullptr )
850850 {
851851 Py_DECREF (value);
852- return NULL ;
852+ return nullptr ;
853853 }
854854 PyList_SET_ITEM (value, i, item);
855855 }
@@ -874,7 +874,7 @@ PyObject *read_typetree_value(ReaderT *reader, TypeTreeNodeObject *node, TypeTre
874874 }
875875 }
876876
877- if (align && value != NULL )
877+ if (align && value != nullptr )
878878 {
879879 align4 (reader);
880880 }
@@ -931,7 +931,7 @@ PyObject *read_typetree_value_array(ReaderT *reader, TypeTreeNodeObject *node, T
931931 PyErr_SetString (PyExc_TypeError, error_msg.c_str ());
932932 value = nullptr ;
933933 }
934- if (align && value != NULL )
934+ if (align && value != nullptr )
935935 {
936936 align4 (reader);
937937 }
@@ -961,7 +961,7 @@ static bool is_null_none_or_type(PyObject *obj, PyTypeObject *type, const char *
961961
962962PyObject *read_typetree (PyObject *self, PyObject *args, PyObject *kwargs)
963963{
964- const char *kwlist[] = {" data" , " node" , " endian" , " as_dict" , " assetsfile" , " classes" , NULL };
964+ const char *kwlist[] = {" data" , " node" , " endian" , " as_dict" , " assetsfile" , " classes" , nullptr };
965965 Py_buffer view;
966966 PyObject *node = nullptr ;
967967 int as_dict = 1 ;
@@ -1027,7 +1027,7 @@ PyObject *read_typetree(PyObject *self, PyObject *args, PyObject *kwargs)
10271027 Py_DECREF (config.assetfile );
10281028 Py_DECREF (config.classes );
10291029 PyErr_SetString (PyExc_ValueError, " Invalid endian" );
1030- return NULL ;
1030+ return nullptr ;
10311031 }
10321032 }
10331033
@@ -1052,7 +1052,7 @@ PyObject *read_typetree(PyObject *self, PyObject *args, PyObject *kwargs)
10521052 Py_XDECREF (config.assetfile );
10531053 Py_XDECREF (config.classes );
10541054
1055- return (value != NULL ) ? Py_BuildValue (" (Nn)" , value, bytes_read) : NULL ;
1055+ return (value != nullptr ) ? Py_BuildValue (" (Nn)" , value, bytes_read) : nullptr ;
10561056}
10571057
10581058// TypeTreeNode impl
@@ -1141,7 +1141,7 @@ static int TypeTreeNode_init(TypeTreeNodeObject *self, PyObject *args, PyObject
11411141 " m_Index" ,
11421142 " m_MetaFlag" ,
11431143 " m_RefTypeHash" ,
1144- NULL };
1144+ nullptr };
11451145
11461146 // ensure all fields are set to 0
11471147 // in case init fails, so that dealloc doesn't segfault
@@ -1244,16 +1244,16 @@ static PyMemberDef TypeTreeNode_members[] = {
12441244 {" m_MetaFlag" , T_OBJECT_EX , offsetof (TypeTreeNodeObject, m_MetaFlag), 0 , " " },
12451245 {" m_RefTypeHash" , T_OBJECT_EX , offsetof (TypeTreeNodeObject, m_RefTypeHash), 0 , " " },
12461246 {" _clean_name" , T_OBJECT_EX , offsetof (TypeTreeNodeObject, _clean_name), 0 , " " },
1247- {NULL } /* Sentinel */
1247+ {nullptr } /* Sentinel */
12481248};
12491249
12501250static PyTypeObject TypeTreeNodeType = []() -> PyTypeObject
12511251{
12521252 PyTypeObject type = {
12531253#if PY_VERSION_HEX >= 0x03080000
1254- PyVarObject_HEAD_INIT (NULL , 0 )
1254+ PyVarObject_HEAD_INIT (nullptr , 0 )
12551255#else
1256- PyObject_HEAD_INIT (NULL ) 0
1256+ PyObject_HEAD_INIT (nullptr ) 0
12571257#endif
12581258 };
12591259 type.tp_name = " TypeTreeHelper.TypeTreeNode" ;
0 commit comments