Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 27a4450

Browse files
committed
Fixed two silly bugs in the PEP252 support code, added an assert
that basechain isn't set, and made the output a bit prettier.
1 parent ad692cc commit 27a4450

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

Tools/bgen/bgen/bgenObjectDefinition.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ def assertions(self):
215215
assert self.outputSetattr.im_func == PEP252Mixin.outputSetattr.im_func
216216
assert self.outputGetattrBody == None
217217
assert self.outputGetattrHook == None
218+
assert self.basechain == "NULL"
218219

219220
def outputGetattr(self):
220221
pass
@@ -293,39 +294,45 @@ def outputGetSetList(self):
293294
self.outputGetter(name, get)
294295
else:
295296
Output("#define %s_get_%s NULL", self.prefix, name)
297+
Output()
296298
if set:
297299
self.outputSetter(name, set)
298300
else:
299301
Output("#define %s_set_%s NULL", self.prefix, name)
302+
Output()
300303

301304
Output("static PyGetSetDef %s_getsetlist[] = {", self.prefix)
302305
IndentLevel()
303306
for name, get, set, doc in self.getsetlist:
304307
if doc:
305-
doc = `doc`
308+
doc = '"' + doc + '"'
306309
else:
307310
doc = "NULL"
308-
Output("{\"%s\", (getter)%s_get_%s, (setter)%s_set_%s, %s}",
311+
Output("{\"%s\", (getter)%s_get_%s, (setter)%s_set_%s, %s},",
309312
name, self.prefix, name, self.prefix, name, doc)
313+
Output("{NULL, NULL, NULL, NULL},")
310314
DedentLevel()
311315
Output("};")
312316
else:
313317
Output("#define %s_getsetlist NULL", self.prefix)
318+
Output()
314319

315320
def outputGetter(self, name, code):
316321
Output("static PyObject *%s_get_%s(%s *self, void *closure)",
317322
self.prefix, name, self.objecttype)
318323
OutLbrace()
319324
Output(code)
320325
OutRbrace()
326+
Output()
321327

322328
def outputSetter(self, name, code):
323-
Output("static int %s_get_%s(%s *self, PyObject *v, void *closure)",
329+
Output("static int %s_set_%s(%s *self, PyObject *v, void *closure)",
324330
self.prefix, name, self.objecttype)
325331
OutLbrace()
326332
Output(code)
327333
Output("return 0;")
328334
OutRbrace()
335+
Output()
329336

330337
class GlobalObjectDefinition(ObjectDefinition):
331338
"""Like ObjectDefinition but exports some parts.

0 commit comments

Comments
 (0)