def passOutput(self, name):
return "%s__out__, %s__len__, &%s__len__" % (name, name, name)
+
+class MallocHeapOutputBufferType(HeapOutputBufferType):
+ """Output buffer allocated by the called function -- passed as (&buffer, &size).
+
+ Instantiate without parameters.
+ Call from Python without parameters.
+ """
+
+ def getargsCheck(self, name):
+ Output("%s__out__ = NULL;", name)
+
+ def getAuxDeclarations(self, name):
+ return []
+
+ def passOutput(self, name):
+ return "&%s__out__, &%s__len__" % (name, name)
+
+ def getargsFormat(self):
+ return ""
+
+ def getargsArgs(self, name):
+ return None
+
+ def mkvalueFormat(self):
+ return "z#"
+
+ def cleanup(self, name):
+ Output("if( %s__out__ ) free(%s__out__);", name, name)
+