]> granicus.if.org Git - python/commitdiff
Some structures should be passed to Py_BuildValue by reference, not by value,
authorJack Jansen <jack.jansen@cwi.nl>
Mon, 18 Mar 2002 15:24:22 +0000 (15:24 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Mon, 18 Mar 2002 15:24:22 +0000 (15:24 +0000)
notably FSSpec and FSRef objects. First half of fix for #531291.

2.2.1 candidate.

Tools/bgen/bgen/bgenType.py
Tools/bgen/bgen/macsupport.py

index fa316a724e1b02e5e63c3b6cde5e9f6d8fbd1390..9b4f11f95d5f4cd5c94d746035ed706c7616a5b4 100644 (file)
@@ -233,6 +233,14 @@ class OpaqueByValueType(OpaqueType):
 
        def mkvalueArgs(self, name):
                return "%s, %s" % (self.new, name)
+               
+class OpaqueByValueStructType(OpaqueByValueType):
+       """Similar to OpaqueByValueType, but we also pass this to mkvalue by
+       address, in stead of by value.
+       """
+
+       def mkvalueArgs(self, name):
+               return "%s, &%s" % (self.new, name)
 
 
 class OpaqueArrayType(OpaqueByValueType):
index 2caac9739713aaed418a0abcd47dfb7c602c6b56..bd38f023bb4e74d365860e86f5832a33bf4432af 100644 (file)
@@ -46,9 +46,9 @@ ConstStringPtr = StringPtr
 
 # File System Specifications
 FSSpec_ptr = OpaqueType("FSSpec", "PyMac_BuildFSSpec", "PyMac_GetFSSpec")
-FSSpec = OpaqueByValueType("FSSpec", "PyMac_BuildFSSpec", "PyMac_GetFSSpec")
+FSSpec = OpaqueByValueStructType("FSSpec", "PyMac_BuildFSSpec", "PyMac_GetFSSpec")
 FSRef_ptr = OpaqueType("FSRef", "PyMac_BuildFSRef", "PyMac_GetFSRef")
-FSRef = OpaqueByValueType("FSRef", "PyMac_BuildFSRef", "PyMac_GetFSRef")
+FSRef = OpaqueByValueStructType("FSRef", "PyMac_BuildFSRef", "PyMac_GetFSRef")
 
 # OSType and ResType: 4-byte character strings
 def OSTypeType(typename):