mirror of https://github.com/python/cpython
Added hash() and compare() functions. Needed because multiple WinObj's can now refer to the same underlying WindowRef.
This commit is contained in:
parent
620e914266
commit
87a30924d0
|
@ -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...
|
||||
|
|
Loading…
Reference in New Issue