You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pylucene-commits@lucene.apache.org by va...@apache.org on 2012/06/26 03:29:52 UTC
svn commit: r1353792 - in /lucene/pylucene/trunk/jcc: ./ _jcc/ _jcc/java/io/
_jcc/java/lang/ _jcc/java/lang/reflect/ _jcc/java/util/ jcc/ jcc/sources/
Author: vajda
Date: Tue Jun 26 01:29:42 2012
New Revision: 1353792
URL: http://svn.apache.org/viewvc?rev=1353792&view=rev
Log:
- fixed class initialization race bug PYLUCENE-17 (with Patrick J. McNerthney)
Modified:
lucene/pylucene/trunk/jcc/CHANGES
lucene/pylucene/trunk/jcc/_jcc/boot.cpp
lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.cpp
lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.h
lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.cpp
lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.h
lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp
lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/String.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/String.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.cpp
lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.h
lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.cpp
lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.h
lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.cpp
lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.h
lucene/pylucene/trunk/jcc/jcc/cpp.py
lucene/pylucene/trunk/jcc/jcc/python.py
lucene/pylucene/trunk/jcc/jcc/sources/JArray.cpp
lucene/pylucene/trunk/jcc/jcc/sources/JArray.h
lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.cpp
lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.h
lucene/pylucene/trunk/jcc/jcc/sources/JObject.h
lucene/pylucene/trunk/jcc/jcc/sources/functions.cpp
lucene/pylucene/trunk/jcc/jcc/sources/functions.h
lucene/pylucene/trunk/jcc/jcc/sources/types.cpp
Modified: lucene/pylucene/trunk/jcc/CHANGES
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/CHANGES?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/CHANGES (original)
+++ lucene/pylucene/trunk/jcc/CHANGES Tue Jun 26 01:29:42 2012
@@ -1,3 +1,8 @@
+Version 2.13 ->
+--------------------
+ - fixed class initialization race bug PYLUCENE-17 (with Patrick J. McNerthney)
+ -
+
Version 2.12 -> 2.13
--------------------
- fixed bug with name collision between method and static field of same name
Modified: lucene/pylucene/trunk/jcc/_jcc/boot.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/boot.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/boot.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/boot.cpp Tue Jun 26 01:29:42 2012
@@ -39,8 +39,8 @@ PyObject *__initialize__(PyObject *modul
if (env == NULL)
return NULL;
- java::lang::Class::initializeClass();
- java::lang::RuntimeException::initializeClass();
+ java::lang::Class::initializeClass(false);
+ java::lang::RuntimeException::initializeClass(false);
return env;
}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.cpp Tue Jun 26 01:29:42 2012
@@ -29,8 +29,10 @@ namespace java {
java::lang::Class *PrintWriter::class$ = NULL;
jmethodID *PrintWriter::_mids = NULL;
- jclass PrintWriter::initializeClass()
+ jclass PrintWriter::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/io/PrintWriter");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/io/PrintWriter.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static java::lang::Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit PrintWriter(jobject obj) : Writer(obj) {
- initializeClass();
+ initializeClass(false);
}
PrintWriter(Writer writer);
PrintWriter(const PrintWriter& obj) : Writer(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.cpp Tue Jun 26 01:29:42 2012
@@ -29,8 +29,10 @@ namespace java {
java::lang::Class *StringWriter::class$ = NULL;
jmethodID *StringWriter::_mids = NULL;
- jclass StringWriter::initializeClass()
+ jclass StringWriter::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/io/StringWriter");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/io/StringWriter.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static java::lang::Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit StringWriter(jobject obj) : Writer(obj) {
- initializeClass();
+ initializeClass(false);
}
StringWriter();
StringWriter(const StringWriter& obj) : Writer(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.cpp Tue Jun 26 01:29:42 2012
@@ -28,8 +28,10 @@ namespace java {
java::lang::Class *Writer::class$ = NULL;
jmethodID *Writer::_mids = NULL;
- jclass Writer::initializeClass()
+ jclass Writer::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/io/Writer");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/io/Writer.h Tue Jun 26 01:29:42 2012
@@ -27,10 +27,10 @@ namespace java {
public:
static java::lang::Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Writer(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
};
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.cpp Tue Jun 26 01:29:42 2012
@@ -33,8 +33,10 @@ namespace java {
Boolean *Boolean::TRUE = NULL;
Boolean *Boolean::FALSE = NULL;
- jclass Boolean::initializeClass()
+ jclass Boolean::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Boolean");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Boolean.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Boolean(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Boolean(jboolean);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Byte::class$ = NULL;
jmethodID *Byte::_mids = NULL;
- jclass Byte::initializeClass()
+ jclass Byte::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Byte");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Byte.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Byte(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Byte(jbyte);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Character::class$ = NULL;
jmethodID *Character::_mids = NULL;
- jclass Character::initializeClass()
+ jclass Character::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Character");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Character.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Character(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Character(jchar);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.cpp Tue Jun 26 01:29:42 2012
@@ -63,8 +63,10 @@ namespace java {
Class *Class::class$ = NULL;
jmethodID *Class::_mids = NULL;
- jclass Class::initializeClass()
+ jclass Class::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Class");
@@ -150,7 +152,7 @@ namespace java {
Class Class::forName(const String& className)
{
- jclass cls = initializeClass();
+ jclass cls = initializeClass(false);
jobject obj = env->callStaticObjectMethod(cls, _mids[mid_forName], className.this$);
return Class((jclass) obj);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Class.h Tue Jun 26 01:29:42 2012
@@ -37,10 +37,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Class(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Class(const Class& obj) : Object(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Double::class$ = NULL;
jmethodID *Double::_mids = NULL;
- jclass Double::initializeClass()
+ jclass Double::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Double");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Double.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Double(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Double(jdouble);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.cpp Tue Jun 26 01:29:42 2012
@@ -28,8 +28,10 @@ namespace java {
Class *Exception::class$ = NULL;
jmethodID *Exception::_mids = NULL;
- jclass Exception::initializeClass()
+ jclass Exception::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Exception");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Exception.h Tue Jun 26 01:29:42 2012
@@ -27,10 +27,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Exception(jobject obj) : Throwable(obj) {
- initializeClass();
+ initializeClass(false);
}
};
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Float::class$ = NULL;
jmethodID *Float::_mids = NULL;
- jclass Float::initializeClass()
+ jclass Float::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Float");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Float.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Float(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Float(jfloat);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Integer::class$ = NULL;
jmethodID *Integer::_mids = NULL;
- jclass Integer::initializeClass()
+ jclass Integer::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Integer");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Integer.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Integer(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Integer(jint);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Long::class$ = NULL;
jmethodID *Long::_mids = NULL;
- jclass Long::initializeClass()
+ jclass Long::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Long");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Long.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Long(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Long(jlong);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.cpp Tue Jun 26 01:29:42 2012
@@ -33,8 +33,10 @@ namespace java {
Class *Object::class$ = NULL;
jmethodID *Object::mids$ = NULL;
- jclass Object::initializeClass()
+ jclass Object::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Object");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Object.h Tue Jun 26 01:29:42 2012
@@ -27,11 +27,11 @@ namespace java {
public:
static Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Object();
explicit Object(jobject obj) : JObject(obj) {
- initializeClass();
+ initializeClass(false);
}
String toString() const;
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.cpp Tue Jun 26 01:29:42 2012
@@ -29,8 +29,10 @@ namespace java {
Class *RuntimeException::class$ = NULL;
jmethodID *RuntimeException::_mids = NULL;
- jclass RuntimeException::initializeClass()
+ jclass RuntimeException::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/RuntimeException");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/RuntimeException.h Tue Jun 26 01:29:42 2012
@@ -27,10 +27,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit RuntimeException(jobject obj) : Exception(obj) {
- initializeClass();
+ initializeClass(false);
}
};
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Short::class$ = NULL;
jmethodID *Short::_mids = NULL;
- jclass Short::initializeClass()
+ jclass Short::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Short");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Short.h Tue Jun 26 01:29:42 2012
@@ -26,10 +26,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Short(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Short(jshort);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/String.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/String.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/String.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/String.cpp Tue Jun 26 01:29:42 2012
@@ -32,8 +32,10 @@ namespace java {
Class *String::class$ = NULL;
jmethodID *String::_mids = NULL;
- jclass String::initializeClass()
+ jclass String::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/String");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/String.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/String.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/String.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/String.h Tue Jun 26 01:29:42 2012
@@ -27,10 +27,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit String(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
String();
String(const String& obj) : Object(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.cpp Tue Jun 26 01:29:42 2012
@@ -33,8 +33,10 @@ namespace java {
Class *Throwable::class$ = NULL;
jmethodID *Throwable::_mids = NULL;
- jclass Throwable::initializeClass()
+ jclass Throwable::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/Throwable");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/Throwable.h Tue Jun 26 01:29:42 2012
@@ -33,10 +33,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Throwable(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
void printStackTrace() const;
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.cpp Tue Jun 26 01:29:42 2012
@@ -45,8 +45,10 @@ namespace java {
Class *Constructor::class$ = NULL;
jmethodID *Constructor::_mids = NULL;
- jclass Constructor::initializeClass()
+ jclass Constructor::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/reflect/Constructor");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Constructor.h Tue Jun 26 01:29:42 2012
@@ -33,10 +33,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Constructor(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Constructor(const Constructor& obj) : Object(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.cpp Tue Jun 26 01:29:42 2012
@@ -39,8 +39,10 @@ namespace java {
Class *Field::class$ = NULL;
jmethodID *Field::_mids = NULL;
- jclass Field::initializeClass()
+ jclass Field::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/reflect/Field");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Field.h Tue Jun 26 01:29:42 2012
@@ -31,10 +31,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Field(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Field(const Field& obj) : Object(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.cpp Tue Jun 26 01:29:42 2012
@@ -13,8 +13,10 @@ namespace java {
java::lang::Class *GenericArrayType::class$ = NULL;
jmethodID *GenericArrayType::mids$ = NULL;
- jclass GenericArrayType::initializeClass()
+ jclass GenericArrayType::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericArrayType.h Tue Jun 26 01:29:42 2012
@@ -25,11 +25,11 @@ namespace java {
static java::lang::Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit GenericArrayType(jobject obj) : java::lang::reflect::Type(obj) {
if (obj != NULL)
- initializeClass();
+ initializeClass(false);
}
GenericArrayType(const GenericArrayType& obj) : java::lang::reflect::Type(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.cpp Tue Jun 26 01:29:42 2012
@@ -14,8 +14,10 @@ namespace java {
java::lang::Class *GenericDeclaration::class$ = NULL;
jmethodID *GenericDeclaration::mids$ = NULL;
- jclass GenericDeclaration::initializeClass()
+ jclass GenericDeclaration::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/GenericDeclaration.h Tue Jun 26 01:29:42 2012
@@ -28,11 +28,11 @@ namespace java {
static java::lang::Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit GenericDeclaration(jobject obj) : java::lang::Object(obj) {
if (obj != NULL)
- initializeClass();
+ initializeClass(false);
}
GenericDeclaration(const GenericDeclaration& obj) : java::lang::Object(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.cpp Tue Jun 26 01:29:42 2012
@@ -48,8 +48,10 @@ namespace java {
Class *Method::class$ = NULL;
jmethodID *Method::_mids = NULL;
- jclass Method::initializeClass()
+ jclass Method::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/reflect/Method");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Method.h Tue Jun 26 01:29:42 2012
@@ -33,10 +33,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Method(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
Method(const Method& obj) : Object(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.cpp Tue Jun 26 01:29:42 2012
@@ -37,8 +37,10 @@ namespace java {
Class *Modifier::class$ = NULL;
jmethodID *Modifier::_mids = NULL;
- jclass Modifier::initializeClass()
+ jclass Modifier::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/lang/reflect/Modifier");
@@ -74,43 +76,43 @@ namespace java {
int Modifier::isPublic(int mod)
{
- jclass cls = initializeClass();
+ jclass cls = env->getClass(initializeClass);
return (int) env->callStaticBooleanMethod(cls, _mids[mid_isPublic], mod);
}
int Modifier::isStatic(int mod)
{
- jclass cls = initializeClass();
+ jclass cls = env->getClass(initializeClass);
return (int) env->callStaticBooleanMethod(cls, _mids[mid_isStatic], mod);
}
int Modifier::isNative(int mod)
{
- jclass cls = initializeClass();
+ jclass cls = env->getClass(initializeClass);
return (int) env->callStaticBooleanMethod(cls, _mids[mid_isNative], mod);
}
int Modifier::isFinal(int mod)
{
- jclass cls = initializeClass();
+ jclass cls = env->getClass(initializeClass);
return (int) env->callStaticBooleanMethod(cls, _mids[mid_isFinal], mod);
}
int Modifier::isAbstract(int mod)
{
- jclass cls = initializeClass();
+ jclass cls = env->getClass(initializeClass);
return (int) env->callStaticBooleanMethod(cls, _mids[mid_isAbstract], mod);
}
int Modifier::isPrivate(int mod)
{
- jclass cls = initializeClass();
+ jclass cls = env->getClass(initializeClass);
return (int) env->callStaticBooleanMethod(cls, _mids[mid_isPrivate], mod);
}
int Modifier::isProtected(int mod)
{
- jclass cls = initializeClass();
+ jclass cls = env->getClass(initializeClass);
return (int) env->callStaticBooleanMethod(cls, _mids[mid_isProtected], mod);
}
}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Modifier.h Tue Jun 26 01:29:42 2012
@@ -29,11 +29,11 @@ namespace java {
explicit Modifier();
public:
explicit Modifier(jobject obj) : Object(obj) {
- initializeClass();
+ initializeClass(false);
}
static Class *class$;
static jmethodID *_mids;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
static int isPublic(int mod);
static int isStatic(int mod);
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.cpp Tue Jun 26 01:29:42 2012
@@ -13,8 +13,10 @@ namespace java {
java::lang::Class *ParameterizedType::class$ = NULL;
jmethodID *ParameterizedType::mids$ = NULL;
- jclass ParameterizedType::initializeClass()
+ jclass ParameterizedType::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/ParameterizedType.h Tue Jun 26 01:29:42 2012
@@ -27,11 +27,11 @@ namespace java {
static java::lang::Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit ParameterizedType(jobject obj) : java::lang::reflect::Type(obj) {
if (obj != NULL)
- initializeClass();
+ initializeClass(false);
}
ParameterizedType(const ParameterizedType& obj) : java::lang::reflect::Type(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.cpp Tue Jun 26 01:29:42 2012
@@ -13,8 +13,10 @@ namespace java {
java::lang::Class *Type::class$ = NULL;
jmethodID *Type::mids$ = NULL;
- jclass Type::initializeClass()
+ jclass Type::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/Type.h Tue Jun 26 01:29:42 2012
@@ -21,11 +21,11 @@ namespace java {
static java::lang::Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Type(jobject obj) : java::lang::Object(obj) {
if (obj != NULL)
- initializeClass();
+ initializeClass(false);
}
Type(const Type& obj) : java::lang::Object(obj) {}
};
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.cpp Tue Jun 26 01:29:42 2012
@@ -15,8 +15,10 @@ namespace java {
java::lang::Class *TypeVariable::class$ = NULL;
jmethodID *TypeVariable::mids$ = NULL;
- jclass TypeVariable::initializeClass()
+ jclass TypeVariable::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/TypeVariable.h Tue Jun 26 01:29:42 2012
@@ -31,11 +31,11 @@ namespace java {
static java::lang::Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit TypeVariable(jobject obj) : java::lang::reflect::Type(obj) {
if (obj != NULL)
- initializeClass();
+ initializeClass(false);
}
TypeVariable(const TypeVariable& obj) : java::lang::reflect::Type(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.cpp Tue Jun 26 01:29:42 2012
@@ -13,8 +13,10 @@ namespace java {
java::lang::Class *WildcardType::class$ = NULL;
jmethodID *WildcardType::mids$ = NULL;
- jclass WildcardType::initializeClass()
+ jclass WildcardType::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
Modified: lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/lang/reflect/WildcardType.h Tue Jun 26 01:29:42 2012
@@ -26,11 +26,11 @@ namespace java {
static java::lang::Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit WildcardType(jobject obj) : java::lang::reflect::Type(obj) {
if (obj != NULL)
- initializeClass();
+ initializeClass(false);
}
WildcardType(const WildcardType& obj) : java::lang::reflect::Type(obj) {}
Modified: lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Enumeration::class$ = NULL;
jmethodID *Enumeration::mids$ = NULL;
- jclass Enumeration::initializeClass()
+ jclass Enumeration::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/util/Enumeration");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/util/Enumeration.h Tue Jun 26 01:29:42 2012
@@ -30,10 +30,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Enumeration(jobject obj) : JObject(obj) {
- initializeClass();
+ initializeClass(false);
}
jboolean hasMoreElements() const;
Modified: lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.cpp (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.cpp Tue Jun 26 01:29:42 2012
@@ -30,8 +30,10 @@ namespace java {
Class *Iterator::class$ = NULL;
jmethodID *Iterator::mids$ = NULL;
- jclass Iterator::initializeClass()
+ jclass Iterator::initializeClass(bool getOnly)
{
+ if (getOnly)
+ return (jclass) (class$ == NULL ? NULL : class$->this$);
if (!class$)
{
jclass cls = env->findClass("java/util/Iterator");
Modified: lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.h (original)
+++ lucene/pylucene/trunk/jcc/_jcc/java/util/Iterator.h Tue Jun 26 01:29:42 2012
@@ -30,10 +30,10 @@ namespace java {
public:
static Class *class$;
static jmethodID *mids$;
- static jclass initializeClass();
+ static jclass initializeClass(bool);
explicit Iterator(jobject obj) : JObject(obj) {
- initializeClass();
+ initializeClass(false);
}
jboolean hasNext() const;
Modified: lucene/pylucene/trunk/jcc/jcc/cpp.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/cpp.py?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/cpp.py (original)
+++ lucene/pylucene/trunk/jcc/jcc/cpp.py Tue Jun 26 01:29:42 2012
@@ -893,13 +893,14 @@ def header(env, out, cls, typeset, packa
line(out, indent, 'static jmethodID *mids$;');
if instanceFields:
line(out, indent, 'static jfieldID *fids$;');
- line(out, indent, 'static jclass initializeClass();');
+ line(out, indent, 'static bool live$;');
+ line(out, indent, 'static jclass initializeClass(bool);');
line(out)
line(out, indent, 'explicit %s(jobject obj) : %s(obj) {',
cppname(names[-1]), absname(cppnames(superNames)))
line(out, indent + 1, 'if (obj != NULL)');
- line(out, indent + 2, 'initializeClass();')
+ line(out, indent + 2, 'env->getClass(initializeClass);')
line(out, indent, '}')
line(out, indent, '%s(const %s& obj) : %s(obj) {}',
cppname(names[-1]), cppname(names[-1]),
@@ -999,6 +1000,7 @@ def code(env, out, cls, superCls, constr
line(out, indent, 'jmethodID *%s::mids$ = NULL;', cppname(names[-1]))
if instanceFields:
line(out, indent, 'jfieldID *%s::fids$ = NULL;', cppname(names[-1]))
+ line(out, indent, 'bool %s::live$ = false;', cppname(names[-1]))
for field in fields:
fieldType = field.getType()
@@ -1014,11 +1016,13 @@ def code(env, out, cls, superCls, constr
typeName, cppname(names[-1]), fieldName)
line(out)
- line(out, indent, 'jclass %s::initializeClass()', cppname(names[-1]))
+ line(out, indent, 'jclass %s::initializeClass(bool getOnly)',
+ cppname(names[-1]))
line(out, indent, '{')
- line(out, indent + 1, 'if (!class$)')
+ line(out, indent + 1, 'if (getOnly)')
+ line(out, indent + 2, 'return (jclass) (live$ ? class$->this$ : NULL);')
+ line(out, indent + 1, 'if (class$ == NULL)')
line(out, indent + 1, '{')
- line(out)
line(out, indent + 2, 'jclass cls = (jclass) env->findClass("%s");',
className.replace('.', '/'))
@@ -1082,6 +1086,7 @@ def code(env, out, cls, superCls, constr
cppFieldName, typename(fieldType, cls, False),
fieldName, signature(field))
+ line(out, indent + 2, "live$ = true;")
line(out, indent + 1, '}')
line(out, indent + 1, 'return (jclass) class$->this$;')
line(out, indent, '}')
@@ -1137,7 +1142,8 @@ def code(env, out, cls, superCls, constr
cppname(methodName), decls, const)
line(out, indent, '{')
if isStatic:
- line(out, indent + 1, 'jclass cls = initializeClass();');
+ line(out, indent + 1,
+ 'jclass cls = env->getClass(initializeClass);');
if returnType.isPrimitive():
line(out, indent + 1,
'%senv->call%s%sMethod(%s, %smids$[%smid_%s_%s]%s);',
Modified: lucene/pylucene/trunk/jcc/jcc/python.py
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/python.py?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/python.py (original)
+++ lucene/pylucene/trunk/jcc/jcc/python.py Tue Jun 26 01:29:42 2012
@@ -1075,10 +1075,10 @@ def python(env, out_h, out, cls, superCl
line(out, indent + 1, 'PyDict_SetItemString(PY_TYPE(%s).tp_dict, "boxfn_", make_descriptor(%s));', names[-1], boxfn_)
if isExtension:
- line(out, indent + 1, 'jclass cls = %s::initializeClass();',
+ line(out, indent + 1, 'jclass cls = env->getClass(%s::initializeClass);',
cppname(names[-1]))
elif fields:
- line(out, indent + 1, '%s::initializeClass();', cppname(names[-1]))
+ line(out, indent + 1, 'env->getClass(%s::initializeClass);', cppname(names[-1]))
if isExtension:
count = 0
Modified: lucene/pylucene/trunk/jcc/jcc/sources/JArray.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/JArray.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/JArray.cpp (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/JArray.cpp Tue Jun 26 01:29:42 2012
@@ -400,7 +400,7 @@ static int seq_setslice(U *self, Py_ssiz
}
template<typename T>
-static jclass initializeClass(void)
+static jclass initializeClass(bool getOnly)
{
return env->get_vm_env()->GetObjectClass(JArray<T>((Py_ssize_t) 0).this$);
}
@@ -717,7 +717,7 @@ template<> int init< jobject,_t_jobjecta
return 0;
}
-template<> jclass initializeClass<jobject>(void)
+template<> jclass initializeClass<jobject>(bool getOnly)
{
jclass cls = env->findClass("java/lang/Object");
return env->get_vm_env()->GetObjectClass(JArray<jobject>(cls, (Py_ssize_t) 0).this$);
Modified: lucene/pylucene/trunk/jcc/jcc/sources/JArray.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/JArray.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/JArray.h (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/JArray.h Tue Jun 26 01:29:42 2012
@@ -55,7 +55,7 @@ public:
}
#ifdef PYTHON
- JArray<T>(PyObject *sequence) : java::lang::Object(fromPySequence(T::initializeClass(), sequence)) {
+ JArray<T>(PyObject *sequence) : java::lang::Object(fromPySequence(env->getClass(T::initializeClass), sequence)) {
length = this$ ? env->getArrayLength((jobjectArray) this$) : 0;
}
Modified: lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.cpp (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.cpp Tue Jun 26 01:29:42 2012
@@ -60,13 +60,17 @@ JCCEnv::JCCEnv(JavaVM *vm, JNIEnv *vm_en
if (!mutex)
{
mutex = new CRITICAL_SECTION();
- InitializeCriticalSection(mutex);
+ InitializeCriticalSection(mutex); // recursive by default
}
#else
if (!mutex)
{
+ pthread_mutexattr_t attr;
+
+ pthread_mutexattr_init(&attr);
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
mutex = new pthread_mutex_t();
- pthread_mutex_init(mutex, NULL);
+ pthread_mutex_init(mutex, &attr);
}
#endif
@@ -245,7 +249,7 @@ jobject JCCEnv::enumerationNext(jobject
jboolean JCCEnv::isInstanceOf(jobject obj, getclassfn initializeClass) const
{
- return get_vm_env()->IsInstanceOf(obj, (*initializeClass)());
+ return get_vm_env()->IsInstanceOf(obj, getClass(initializeClass));
}
jclass JCCEnv::findClass(const char *className) const
@@ -386,10 +390,23 @@ jobject JCCEnv::deleteGlobalRef(jobject
return NULL;
}
+jclass JCCEnv::getClass(getclassfn initializeClass) const
+{
+ jclass cls = (*initializeClass)(true);
+
+ if (cls == NULL)
+ {
+ lock locked;
+ cls = (*initializeClass)(false);
+ }
+
+ return cls;
+}
+
jobject JCCEnv::newObject(getclassfn initializeClass, jmethodID **mids,
int m, ...)
{
- jclass cls = (*initializeClass)();
+ jclass cls = getClass(initializeClass);
JNIEnv *vm_env = get_vm_env();
jobject obj;
Modified: lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.h (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/JCCEnv.h Tue Jun 26 01:29:42 2012
@@ -70,7 +70,7 @@ extern JCCEnv *env;
#define _EXC_PYTHON ((int) 0)
#define _EXC_JAVA ((int) 1)
-typedef jclass (*getclassfn)(void);
+typedef jclass (*getclassfn)(bool);
class countedRef {
public:
@@ -152,6 +152,7 @@ public:
jobject newGlobalRef(jobject obj, int id);
jobject deleteGlobalRef(jobject obj, int id);
+ jclass getClass(getclassfn initializeClass) const;
jobject newObject(getclassfn initializeClass, jmethodID **mids, int m, ...);
jobjectArray newObjectArray(jclass cls, int size);
Modified: lucene/pylucene/trunk/jcc/jcc/sources/JObject.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/JObject.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/JObject.h (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/JObject.h Tue Jun 26 01:29:42 2012
@@ -21,7 +21,6 @@
class _DLL_EXPORT JObject {
public:
jobject this$;
- int id; /* zero when this$ is a weak ref */
inline explicit JObject(jobject obj)
{
@@ -83,6 +82,9 @@ public:
return *this;
}
+
+private:
+ int id; // zero when this$ is a weak ref */
};
Modified: lucene/pylucene/trunk/jcc/jcc/sources/functions.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/functions.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/functions.cpp (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/functions.cpp Tue Jun 26 01:29:42 2012
@@ -216,7 +216,7 @@ int _parseArgs(PyObject **args, unsigned
case 'K':
try {
getclassfn initializeClass = va_arg(list, getclassfn);
- cls = (*initializeClass)();
+ cls = env->getClass(initializeClass);
} catch (int e) {
switch (e) {
case _EXC_PYTHON:
@@ -238,7 +238,7 @@ int _parseArgs(PyObject **args, unsigned
* case because of earlier recursion avoidance (JObject(cls)).
*/
if (!Class::class$)
- Class::initializeClass();
+ env->getClass(Class::initializeClass);
if (array)
{
@@ -623,7 +623,7 @@ int _parseArgs(PyObject **args, unsigned
case 'k':
case 'K':
getclassfn initializeClass = va_arg(check, getclassfn);
- cls = (*initializeClass)();
+ cls = env->getClass(initializeClass);
break;
}
Modified: lucene/pylucene/trunk/jcc/jcc/sources/functions.h
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/functions.h?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/functions.h (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/functions.h Tue Jun 26 01:29:42 2012
@@ -152,7 +152,7 @@ template<class T, class U> PyObject *get
jobject next;
OBJ_CALL(next = env->iteratorNext(self->object.this$));
- jclass cls = java::lang::String::initializeClass();
+ jclass cls = env->getClass(java::lang::String::initializeClass);
if (env->get_vm_env()->IsInstanceOf(next, cls))
return env->fromJString((jstring) next, 1);
@@ -173,7 +173,7 @@ template<class T, class U> PyObject *get
jobject next;
OBJ_CALL(next = env->iteratorNext(self->object.this$));
- jclass cls = java::lang::String::initializeClass();
+ jclass cls = env->getClass(java::lang::String::initializeClass);
if (env->get_vm_env()->IsInstanceOf(next, cls))
return env->fromJString((jstring) next, 1);
@@ -198,7 +198,7 @@ template<class T, class U> PyObject *get
jobject next;
OBJ_CALL(next = env->enumerationNext(self->object.this$));
- jclass cls = java::lang::String::initializeClass();
+ jclass cls = env->getClass(java::lang::String::initializeClass);
if (env->get_vm_env()->IsInstanceOf(next, cls))
return env->fromJString((jstring) next, 1);
@@ -219,7 +219,7 @@ template<class T, class U> PyObject *get
jobject next;
OBJ_CALL(next = env->enumerationNext(self->object.this$));
- jclass cls = java::lang::String::initializeClass();
+ jclass cls = env->getClass(java::lang::String::initializeClass);
if (env->get_vm_env()->IsInstanceOf(next, cls))
return env->fromJString((jstring) next, 1);
@@ -241,7 +241,7 @@ template<class T, class U, class V> PyOb
return NULL;
}
- jclass cls = java::lang::String::initializeClass();
+ jclass cls = env->getClass(java::lang::String::initializeClass);
if (env->get_vm_env()->IsInstanceOf(next.this$, cls))
return env->fromJString((jstring) next.this$, 0);
@@ -259,7 +259,7 @@ template<class T, class U, class V> PyOb
return NULL;
}
- jclass cls = java::lang::String::initializeClass();
+ jclass cls = env->getClass(java::lang::String::initializeClass);
if (env->get_vm_env()->IsInstanceOf(next.this$, cls))
return env->fromJString((jstring) next.this$, 0);
Modified: lucene/pylucene/trunk/jcc/jcc/sources/types.cpp
URL: http://svn.apache.org/viewvc/lucene/pylucene/trunk/jcc/jcc/sources/types.cpp?rev=1353792&r1=1353791&r2=1353792&view=diff
==============================================================================
--- lucene/pylucene/trunk/jcc/jcc/sources/types.cpp (original)
+++ lucene/pylucene/trunk/jcc/jcc/sources/types.cpp Tue Jun 26 01:29:42 2012
@@ -552,10 +552,10 @@ static PyObject *t_descriptor___get__(t_
{
#ifdef _java_generics
if (self->flags & DESCRIPTOR_GENERIC)
- return t_Class::wrap_Object(Class((*self->access.initializeClass)()), (PyTypeObject *) type);
+ return t_Class::wrap_Object(Class(env->getClass(self->access.initializeClass)), (PyTypeObject *) type);
else
#endif
- return t_Class::wrap_Object(Class((*self->access.initializeClass)()));
+ return t_Class::wrap_Object(Class(env->getClass(self->access.initializeClass)));
}
Py_RETURN_NONE;