Class.h (_Jv_FindInterpreterMethod): Add new declaration.

* java/lang/Class.h (_Jv_FindInterpreterMethod): Add new declaration.
        * java/lang/natClass.cc (_Jv_FindInterpreterMethod): New function.

From-SVN: r110142
This commit is contained in:
Keith Seitz 2006-01-23 18:44:43 +00:00 committed by Keith Seitz
parent 192a50ad41
commit 8a0092c834
3 changed files with 47 additions and 5 deletions

View file

@ -1,6 +1,6 @@
// natClass.cc - Implementation of java.lang.Class native methods.
/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation
This file is part of libgcj.
@ -1220,3 +1220,29 @@ _Jv_getInterfaceMethod (jclass search_class, jclass &found_class, int &index,
return false;
}
#ifdef INTERPRETER
_Jv_InterpMethod*
_Jv_FindInterpreterMethod (jclass klass, jmethodID desired_method)
{
using namespace java::lang::reflect;
_Jv_InterpClass* iclass
= reinterpret_cast<_Jv_InterpClass*> (klass->aux_info);
_Jv_MethodBase** imethods = _Jv_GetFirstMethod (iclass);
for (int i = 0; i < JvNumMethods (klass); ++i)
{
_Jv_MethodBase* imeth = imethods[i];
_Jv_ushort accflags = klass->methods[i].accflags;
if ((accflags & (Modifier::NATIVE | Modifier::ABSTRACT)) == 0)
{
_Jv_InterpMethod* im = reinterpret_cast<_Jv_InterpMethod*> (imeth);
if (im->get_method () == desired_method)
return im;
}
}
return NULL;
}
#endif