Commit 9529dddb authored by Jack Jansen's avatar Jack Jansen

Added hash() and compare() functions. Needed because multiple WinObj's can now...

Added hash() and compare() functions. Needed because multiple WinObj's can now refer to the same underlying WindowRef.
parent 6512b071
......@@ -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)
......
......@@ -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...
......
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