You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by va...@apache.org on 2009/08/03 16:27:57 UTC
svn commit: r800403 - in /lucene/pylucene/trunk/jcc: CHANGES jcc/cpp.py
jcc/sources/JArray.h
Author: vajda
Date: Mon Aug 3 14:27:56 2009
New Revision: 800403
URL: http://svn.apache.org/viewvc?rev=800403&view=rev
Log:
fixed local string ref leaks in JArray<jstring>.get/toSequence (Aric Coady)
Modified:
lucene/pylucene/trunk/jcc/CHANGES
lucene/pylucene/trunk/jcc/jcc/cpp.py
lucene/pylucene/trunk/jcc/jcc/sources/JArray.h
Modified: lucene/pylucene/trunk/jcc/CHANGES
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/CHANGES?rev=800403&r1=800402&r2=800403&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/CHANGES (original)
+++ lucene/pylucene/trunk/jcc/CHANGES Mon Aug 3 14:27:56 2009
@@ -3,6 +3,7 @@
------------------
- added 'typeof' to reserved word list
- added Java stacktrace to __str__() of JavaError, fixing half of PYLUCENE-1
+ - fixed local string ref leaks in JArray<jstring>.get/toSequence (Aric Coady)
-
Version 2.2 -> 2.3
Modified: lucene/pylucene/trunk/jcc/jcc/cpp.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/cpp.py?rev=800403&r1=800402&r2=800403&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/cpp.py (original)
+++ lucene/pylucene/trunk/jcc/jcc/cpp.py Mon Aug 3 14:27:56 2009
@@ -48,11 +48,9 @@
class JavaError(Exception):
def getJavaException(self):
-
return self.args[0]
def __str__(self):
-
writer = StringWriter()
self.getJavaException().printStackTrace(PrintWriter(writer))
Modified: lucene/pylucene/trunk/jcc/jcc/sources/JArray.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/JArray.h?rev=800403&r1=800402&r2=800403&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/JArray.h (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/JArray.h Mon Aug 3 14:27:56 2009
@@ -292,10 +292,11 @@
PyObject *list = PyList_New(hi - lo);
for (int i = lo; i < hi; i++) {
- jstring value = (jstring)
+ jstring str = (jstring)
env->getObjectArrayElement((jobjectArray) this$, i);
- PyObject *obj = env->fromJString(value);
+ PyObject *obj = env->fromJString(str);
+ env->get_vm_env()->DeleteLocalRef(str);
PyList_SET_ITEM(list, i - lo, obj);
}
@@ -313,8 +314,10 @@
{
jstring str = (jstring)
env->getObjectArrayElement((jobjectArray) this$, n);
+ PyObject *obj = env->fromJString(str);
- return env->fromJString(str);
+ env->get_vm_env()->DeleteLocalRef(str);
+ return obj;
}
}