Commit 0c4ad4e1 authored by Jim Fulton's avatar Jim Fulton

Fixed bug in reinitialization code.

parent e1c2c430
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
static char Trie_module_documentation[] = static char Trie_module_documentation[] =
"" ""
"\n$Id: Trie.c,v 1.5 1997/03/20 19:30:04 jim Exp $" "\n$Id: Trie.c,v 1.6 1997/04/03 15:53:48 jim Exp $"
; ;
...@@ -143,21 +143,36 @@ Trie__p___reinit__(TrieObject *self, PyObject *args) ...@@ -143,21 +143,36 @@ Trie__p___reinit__(TrieObject *self, PyObject *args)
{ {
PyObject *oid, *jar, *copy; PyObject *oid, *jar, *copy;
UNLESS(PyArg_ParseTuple(args, "OOO", &oid, &jar, &copy)) return NULL; if(PyArg_ParseTuple(args, ""))
UNLESS(self->oid)
{ {
Py_INCREF(oid); if(self->state==cPersistent_UPTODATE_STATE)
ASSIGN(self->oid, oid); {
Py_XDECREF(self->bins);
Py_XDECREF(self->value);
self->bins=NULL;
self->value=NULL;
self->min=0;
self->state=cPersistent_GHOST_STATE;
}
} }
if((self->oid==oid || PyObject_Compare(self->oid, oid)==0) else
&& self->state==cPersistent_UPTODATE_STATE)
{ {
Py_XDECREF(self->bins); UNLESS(PyArg_ParseTuple(args, "OOO", &oid, &jar, &copy)) return NULL;
Py_XDECREF(self->value); UNLESS(self->oid)
self->bins=NULL; {
self->value=NULL; Py_INCREF(oid);
self->min=0; ASSIGN(self->oid, oid);
self->state=cPersistent_GHOST_STATE; }
if((self->oid==oid || PyObject_Compare(self->oid, oid)==0)
&& self->state==cPersistent_UPTODATE_STATE)
{
Py_XDECREF(self->bins);
Py_XDECREF(self->value);
self->bins=NULL;
self->value=NULL;
self->min=0;
self->state=cPersistent_GHOST_STATE;
}
} }
Py_INCREF(Py_None); Py_INCREF(Py_None);
return Py_None; return Py_None;
...@@ -647,7 +662,7 @@ void ...@@ -647,7 +662,7 @@ void
initTrie() initTrie()
{ {
PyObject *m, *d; PyObject *m, *d;
char *rev="$Revision: 1.5 $"; char *rev="$Revision: 1.6 $";
UNLESS(ExtensionClassImported) return; UNLESS(ExtensionClassImported) return;
...@@ -687,6 +702,9 @@ initTrie() ...@@ -687,6 +702,9 @@ initTrie()
Revision Log: Revision Log:
$Log: Trie.c,v $ $Log: Trie.c,v $
Revision 1.6 1997/04/03 15:53:48 jim
Fixed bug in reinitialization code.
Revision 1.5 1997/03/20 19:30:04 jim Revision 1.5 1997/03/20 19:30:04 jim
Major rewrite to use more efficient data structure. In particular, Major rewrite to use more efficient data structure. In particular,
try to avoid one-element tries by storing partial-key/value tuples try to avoid one-element tries by storing partial-key/value tuples
......
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