@@ -42,18 +42,25 @@ static PyObject* rapidxml_NodeObject_first_node(rapidxml_NodeObject* self,
4242 PyObject* args,
4343 PyObject* kwds) {
4444 const char * name = NULL ;
45+ Py_buffer name_buff = {0 };
4546 rapidxml::xml_node<>* node;
4647
47- if (!_parse_args_for_name (args, kwds, &name)) {
48+ if (!_parse_args_for_name (args, kwds, &name_buff, & name)) {
4849 goto err;
4950 }
5051 node = static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->first_node (name);
5152 if (node == NULL ) {
5253 goto err;
5354 }
55+ if (name_buff.buf ) {
56+ PyBuffer_Release (&name_buff);
57+ }
5458 return _bind_result (reinterpret_cast <rapidxml_BaseObject*>(self),
5559 node, &rapidxml_NodeType);
5660 err:
61+ if (name_buff.buf ) {
62+ PyBuffer_Release (&name_buff);
63+ }
5764 Py_INCREF (Py_None);
5865 return Py_None;
5966}
@@ -62,19 +69,26 @@ static PyObject* rapidxml_NodeObject_last_node(rapidxml_NodeObject* self,
6269 PyObject* args,
6370 PyObject* kwds) {
6471 const char * name = NULL ;
72+ Py_buffer name_buff = {0 };
6573 rapidxml::xml_node<>* node;
6674
67- if (!(_parse_args_for_name (args, kwds, &name) &&
75+ if (!(_parse_args_for_name (args, kwds, &name_buff, & name) &&
6876 static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->first_node ())) {
6977 goto err;
7078 }
7179 node = static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->last_node (name);
7280 if (node == NULL ) {
7381 goto err;
7482 }
83+ if (name_buff.buf ) {
84+ PyBuffer_Release (&name_buff);
85+ }
7586 return _bind_result (reinterpret_cast <rapidxml_BaseObject*>(self),
7687 node, &rapidxml_NodeType);
7788 err:
89+ if (name_buff.buf ) {
90+ PyBuffer_Release (&name_buff);
91+ }
7892 Py_INCREF (Py_None);
7993 return Py_None;
8094}
@@ -83,19 +97,26 @@ static PyObject* rapidxml_NodeObject_previous_sibling(rapidxml_NodeObject* self,
8397 PyObject* args,
8498 PyObject* kwds) {
8599 const char * name = NULL ;
100+ Py_buffer name_buff = {0 };
86101 rapidxml::xml_node<>* node;
87102
88- if (!(_parse_args_for_name (args, kwds, &name) &&
103+ if (!(_parse_args_for_name (args, kwds, &name_buff, & name) &&
89104 static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->parent ())) {
90105 goto err;
91106 }
92107 node = static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->previous_sibling (name);
93108 if (node == NULL ) {
94109 goto err;
95110 }
111+ if (name_buff.buf ) {
112+ PyBuffer_Release (&name_buff);
113+ }
96114 return _bind_result (reinterpret_cast <rapidxml_BaseObject*>(self),
97115 node, &rapidxml_NodeType);
98116 err:
117+ if (name_buff.buf ) {
118+ PyBuffer_Release (&name_buff);
119+ }
99120 Py_INCREF (Py_None);
100121 return Py_None;
101122}
@@ -104,19 +125,26 @@ static PyObject* rapidxml_NodeObject_next_sibling(rapidxml_NodeObject* self,
104125 PyObject* args,
105126 PyObject* kwds) {
106127 const char * name = NULL ;
128+ Py_buffer name_buff = {0 };
107129 rapidxml::xml_node<>* node;
108130
109- if (!(_parse_args_for_name (args, kwds, &name) &&
131+ if (!(_parse_args_for_name (args, kwds, &name_buff, & name) &&
110132 static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->parent ())) {
111133 goto err;
112134 }
113135 node = static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->next_sibling (name);
114136 if (node == NULL ) {
115137 goto err;
116138 }
139+ if (name_buff.buf ) {
140+ PyBuffer_Release (&name_buff);
141+ }
117142 return _bind_result (reinterpret_cast <rapidxml_BaseObject*>(self),
118143 node, &rapidxml_NodeType);
119144 err:
145+ if (name_buff.buf ) {
146+ PyBuffer_Release (&name_buff);
147+ }
120148 Py_INCREF (Py_None);
121149 return Py_None;
122150}
@@ -125,18 +153,25 @@ static PyObject* rapidxml_NodeObject_first_attribute(rapidxml_NodeObject* self,
125153 PyObject* args,
126154 PyObject* kwds) {
127155 const char * name = NULL ;
156+ Py_buffer name_buff = {0 };
128157 rapidxml::xml_attribute<>* attribute;
129158
130- if (!_parse_args_for_name (args, kwds, &name)) {
159+ if (!_parse_args_for_name (args, kwds, &name_buff, & name)) {
131160 goto err;
132161 }
133162 attribute = static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->first_attribute (name);
134163 if (attribute == NULL ) {
135164 goto err;
136165 }
166+ if (name_buff.buf ) {
167+ PyBuffer_Release (&name_buff);
168+ }
137169 return _bind_result (reinterpret_cast <rapidxml_BaseObject*>(self),
138170 attribute, &rapidxml_AttributeType);
139171 err:
172+ if (name_buff.buf ) {
173+ PyBuffer_Release (&name_buff);
174+ }
140175 Py_INCREF (Py_None);
141176 return Py_None;
142177}
@@ -145,18 +180,25 @@ static PyObject* rapidxml_NodeObject_last_attribute(rapidxml_NodeObject* self,
145180 PyObject* args,
146181 PyObject* kwds) {
147182 const char * name = NULL ;
183+ Py_buffer name_buff = {0 };
148184 rapidxml::xml_attribute<>* attribute;
149185
150- if (!_parse_args_for_name (args, kwds, &name)) {
186+ if (!_parse_args_for_name (args, kwds, &name_buff, & name)) {
151187 goto err;
152188 }
153189 attribute = static_cast <rapidxml::xml_node<>*>(self->base .underlying_obj )->last_attribute (name);
154190 if (attribute == NULL ) {
155191 goto err;
156192 }
193+ if (name_buff.buf ) {
194+ PyBuffer_Release (&name_buff);
195+ }
157196 return _bind_result (reinterpret_cast <rapidxml_BaseObject*>(self),
158197 attribute, &rapidxml_AttributeType);
159198 err:
199+ if (name_buff.buf ) {
200+ PyBuffer_Release (&name_buff);
201+ }
160202 Py_INCREF (Py_None);
161203 return Py_None;
162204}
0 commit comments