Fixed a nasty bug where FindControl could return a reference to a

destroyed python object.
This commit is contained in:
Jack Jansen 1996-04-12 16:26:59 +00:00
parent da6a971994
commit c574b43d35
4 changed files with 7 additions and 4 deletions

View File

@ -95,7 +95,7 @@ CtlObj_Convert(v, p_itself)
static void CtlObj_dealloc(self)
ControlObject *self;
{
/* Cleanup of self->ob_itself goes here */
SetCRefCon(self->ob_itself, (long)0); /* Make it forget about us */
PyMem_DEL(self);
}

View File

@ -1,4 +1,4 @@
# Generated from 'flap:CW8 Gold:Metrowerks CodeWarrior:MacOS Support:Headers:Universal Headers:Controls.h'
# Generated from 'Sap:CW8 Gold:Metrowerks CodeWarrior:MacOS Support:Headers:Universal Headers:Controls.h'
f = Function(ControlRef, 'NewControl',
(WindowRef, 'theWindow', InMode),

View File

@ -3,11 +3,12 @@ import addpack
addpack.addpack(':Tools:bgen:bgen')
from scantools import Scanner
from bgenlocations import TOOLBOXDIR
def main():
input = "Controls.h"
output = "ctlgen.py"
defsoutput = "Controls.py"
defsoutput = TOOLBOXDIR + "Controls.py"
scanner = MyScanner(input, output, defsoutput)
scanner.scan()
scanner.close()

View File

@ -68,7 +68,9 @@ class MyObjectDefinition(GlobalObjectDefinition):
def outputInitStructMembers(self):
GlobalObjectDefinition.outputInitStructMembers(self)
Output("SetCRefCon(itself, (long)it);")
def outputCleanupStructMembers(self):
Output("SetCRefCon(self->ob_itself, (long)0); /* Make it forget about us */")
# Create the generator groups and link them
module = MacModule(MODNAME, MODPREFIX, includestuff, finalstuff, initstuff)
object = MyObjectDefinition(OBJECTNAME, OBJECTPREFIX, OBJECTTYPE)