Added hash() and compare() functions. Needed because multiple WinObj's can now refer to the same underlying WindowRef.

This commit is contained in:
Jack Jansen 2000-12-19 21:34:55 +00:00
parent 620e914266
commit 87a30924d0
2 changed files with 35 additions and 2 deletions

View File

@ -2165,11 +2165,21 @@ static PyObject *WinObj_getattr(self, name)
#define WinObj_setattr NULL
#define WinObj_compare NULL
static int WinObj_compare(self, other)
WindowObject *self, *other;
{
if ( self->ob_itself > other->ob_itself ) return 1;
if ( self->ob_itself < other->ob_itself ) return -1;
return 0;
}
#define WinObj_repr NULL
#define WinObj_hash NULL
static int WinObj_hash(self)
WindowObject *self;
{
return (int)self->ob_itself;
}
PyTypeObject Window_Type = {
PyObject_HEAD_INIT(&PyType_Type)

View File

@ -126,6 +126,29 @@ class MyObjectDefinition(GlobalObjectDefinition):
OutRbrace()
Output("self->ob_itself = NULL;")
Output("self->ob_freeit = NULL;")
def outputCompare(self):
Output()
Output("static int %s_compare(self, other)", self.prefix)
IndentLevel()
Output("%s *self, *other;", self.objecttype)
DedentLevel()
OutLbrace()
Output("if ( self->ob_itself > other->ob_itself ) return 1;")
Output("if ( self->ob_itself < other->ob_itself ) return -1;")
Output("return 0;")
OutRbrace()
def outputHash(self):
Output()
Output("static int %s_hash(self)", self.prefix)
IndentLevel()
Output("%s *self;", self.objecttype)
DedentLevel()
OutLbrace()
Output("return (int)self->ob_itself;")
OutRbrace()
## def outputFreeIt(self, itselfname):
## Output("DisposeWindow(%s);", itselfname)
# From here on it's basically all boiler plate...