--- jython clean/org/python/core/PyListDerived.java 2005-06-20 13:12:14.000000000 -0400 +++ jython/org/python/core/PyListDerived.java 2006-03-18 21:21:29.144208400 -0500 @@ -756,7 +756,7 @@ public PyObject __finditem__(PyObject key) { // ??? PyType self_type=getType(); - PyObject impl=self_type.lookup("__getitem__"); + PyObject impl=self_type.lookup("__finditem__"); if (impl!=null) try { return impl.__get__(this,self_type).__call__(key); @@ -768,6 +768,34 @@ return super.__finditem__(key); } + public PyObject __getitem__(PyObject key) { // ??? + PyType self_type=getType(); + PyObject impl=self_type.lookup("__getitem__"); + if (impl!=null) + try { + return impl.__get__(this,self_type).__call__(key); + } catch (PyException exc) { + if (Py.matchException(exc,Py.LookupError)) + return null; + throw exc; + } + return super.__getitem__(key); + } + + public PyObject __getslice__(PyObject start, PyObject stop, PyObject step) { + PyType self_type=getType(); + PyObject impl=self_type.lookup("__getslice__"); + if (impl!=null) + try { + return impl.__get__(this,self_type).__call__(start, stop); + } catch (PyException exc) { + if (Py.matchException(exc,Py.LookupError)) + return null; + throw exc; + } + return super.__getslice__(start, stop, step); + } + public void __setitem__(PyObject key,PyObject value) { // ??? PyType self_type=getType(); PyObject impl=self_type.lookup("__setitem__");