Commit 0f70a1e7 authored by Jack Jansen's avatar Jack Jansen

Make CF module PEP253 based (finally).

parent a6675ddc
This diff is collapsed.
...@@ -250,7 +250,7 @@ OptionalCFURLRef = OpaqueByValueType("CFURLRef", "OptionalCFURLRefObj") ...@@ -250,7 +250,7 @@ OptionalCFURLRef = OpaqueByValueType("CFURLRef", "OptionalCFURLRefObj")
# Our (opaque) objects # Our (opaque) objects
class MyGlobalObjectDefinition(GlobalObjectDefinition): class MyGlobalObjectDefinition(PEP253Mixin, GlobalObjectDefinition):
def outputCheckNewArg(self): def outputCheckNewArg(self):
Output('if (itself == NULL)') Output('if (itself == NULL)')
OutLbrace() OutLbrace()
...@@ -302,11 +302,39 @@ class MyGlobalObjectDefinition(GlobalObjectDefinition): ...@@ -302,11 +302,39 @@ class MyGlobalObjectDefinition(GlobalObjectDefinition):
Output("return PyString_FromString(buf);") Output("return PyString_FromString(buf);")
OutRbrace() OutRbrace()
def output_tp_newBody(self):
Output("PyObject *self;")
Output
Output("if ((self = type->tp_alloc(type, 0)) == NULL) return NULL;")
Output("((%s *)self)->ob_itself = NULL;", self.objecttype)
Output("((%s *)self)->ob_freeit = CFRelease;", self.objecttype)
Output("return self;")
def output_tp_initBody(self):
Output("%s itself;", self.itselftype)
Output("char *kw[] = {\"itself\", 0};")
Output()
Output("if (PyArg_ParseTupleAndKeywords(args, kwds, \"O&\", kw, %s_Convert, &itself))",
self.prefix)
OutLbrace()
Output("((%s *)self)->ob_itself = itself;", self.objecttype)
Output("return 0;")
OutRbrace()
if self.prefix != 'CFTypeRefObj':
Output()
Output("/* Any CFTypeRef descendent is allowed as initializer too */")
Output("if (PyArg_ParseTupleAndKeywords(args, kwds, \"O&\", kw, CFTypeRefObj_Convert, &itself))")
OutLbrace()
Output("((%s *)self)->ob_itself = itself;", self.objecttype)
Output("return 0;")
OutRbrace()
Output("return -1;")
class CFTypeRefObjectDefinition(MyGlobalObjectDefinition): class CFTypeRefObjectDefinition(MyGlobalObjectDefinition):
pass pass
class CFArrayRefObjectDefinition(MyGlobalObjectDefinition): class CFArrayRefObjectDefinition(MyGlobalObjectDefinition):
basechain = "&CFTypeRefObj_chain" basetype = "CFTypeRef_Type"
def outputRepr(self): def outputRepr(self):
Output() Output()
...@@ -318,7 +346,7 @@ class CFArrayRefObjectDefinition(MyGlobalObjectDefinition): ...@@ -318,7 +346,7 @@ class CFArrayRefObjectDefinition(MyGlobalObjectDefinition):
OutRbrace() OutRbrace()
class CFMutableArrayRefObjectDefinition(MyGlobalObjectDefinition): class CFMutableArrayRefObjectDefinition(MyGlobalObjectDefinition):
basechain = "&CFArrayRefObj_chain" basetype = "CFArrayRef_Type"
def outputRepr(self): def outputRepr(self):
Output() Output()
...@@ -330,7 +358,7 @@ class CFMutableArrayRefObjectDefinition(MyGlobalObjectDefinition): ...@@ -330,7 +358,7 @@ class CFMutableArrayRefObjectDefinition(MyGlobalObjectDefinition):
OutRbrace() OutRbrace()
class CFDictionaryRefObjectDefinition(MyGlobalObjectDefinition): class CFDictionaryRefObjectDefinition(MyGlobalObjectDefinition):
basechain = "&CFTypeRefObj_chain" basetype = "CFTypeRef_Type"
def outputRepr(self): def outputRepr(self):
Output() Output()
...@@ -342,7 +370,7 @@ class CFDictionaryRefObjectDefinition(MyGlobalObjectDefinition): ...@@ -342,7 +370,7 @@ class CFDictionaryRefObjectDefinition(MyGlobalObjectDefinition):
OutRbrace() OutRbrace()
class CFMutableDictionaryRefObjectDefinition(MyGlobalObjectDefinition): class CFMutableDictionaryRefObjectDefinition(MyGlobalObjectDefinition):
basechain = "&CFDictionaryRefObj_chain" basetype = "CFDictionaryRef_Type"
def outputRepr(self): def outputRepr(self):
Output() Output()
...@@ -354,7 +382,7 @@ class CFMutableDictionaryRefObjectDefinition(MyGlobalObjectDefinition): ...@@ -354,7 +382,7 @@ class CFMutableDictionaryRefObjectDefinition(MyGlobalObjectDefinition):
OutRbrace() OutRbrace()
class CFDataRefObjectDefinition(MyGlobalObjectDefinition): class CFDataRefObjectDefinition(MyGlobalObjectDefinition):
basechain = "&CFTypeRefObj_chain" basetype = "CFTypeRef_Type"
def outputCheckConvertArg(self): def outputCheckConvertArg(self):
Out(""" Out("""
...@@ -378,7 +406,7 @@ class CFDataRefObjectDefinition(MyGlobalObjectDefinition): ...@@ -378,7 +406,7 @@ class CFDataRefObjectDefinition(MyGlobalObjectDefinition):
OutRbrace() OutRbrace()
class CFMutableDataRefObjectDefinition(MyGlobalObjectDefinition): class CFMutableDataRefObjectDefinition(MyGlobalObjectDefinition):
basechain = "&CFDataRefObj_chain" basetype = "CFDataRef_Type"
def outputRepr(self): def outputRepr(self):
Output() Output()
...@@ -390,7 +418,7 @@ class CFMutableDataRefObjectDefinition(MyGlobalObjectDefinition): ...@@ -390,7 +418,7 @@ class CFMutableDataRefObjectDefinition(MyGlobalObjectDefinition):
OutRbrace() OutRbrace()
class CFStringRefObjectDefinition(MyGlobalObjectDefinition): class CFStringRefObjectDefinition(MyGlobalObjectDefinition):
basechain = "&CFTypeRefObj_chain" basetype = "CFTypeRef_Type"
def outputCheckConvertArg(self): def outputCheckConvertArg(self):
Out(""" Out("""
...@@ -423,7 +451,7 @@ class CFStringRefObjectDefinition(MyGlobalObjectDefinition): ...@@ -423,7 +451,7 @@ class CFStringRefObjectDefinition(MyGlobalObjectDefinition):
OutRbrace() OutRbrace()
class CFMutableStringRefObjectDefinition(CFStringRefObjectDefinition): class CFMutableStringRefObjectDefinition(CFStringRefObjectDefinition):
basechain = "&CFStringRefObj_chain" basetype = "CFStringRef_Type"
def outputCheckConvertArg(self): def outputCheckConvertArg(self):
# Mutable, don't allow Python strings # Mutable, don't allow Python strings
...@@ -439,7 +467,7 @@ class CFMutableStringRefObjectDefinition(CFStringRefObjectDefinition): ...@@ -439,7 +467,7 @@ class CFMutableStringRefObjectDefinition(CFStringRefObjectDefinition):
OutRbrace() OutRbrace()
class CFURLRefObjectDefinition(MyGlobalObjectDefinition): class CFURLRefObjectDefinition(MyGlobalObjectDefinition):
basechain = "&CFTypeRefObj_chain" basetype = "CFTypeRef_Type"
def outputRepr(self): def outputRepr(self):
Output() Output()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment