Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 98844 Details for
Bug 148629
Support Java 6 Class File Format Changes
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Newest patch for org.eclipse.hyades,probekit
148629-probekit.patch (text/plain), 202.52 KB, created by
Asaf Yaffe
on 2008-05-06 10:28:13 EDT
(
hide
)
Description:
Newest patch for org.eclipse.hyades,probekit
Filename:
MIME Type:
Creator:
Asaf Yaffe
Created:
2008-05-06 10:28:13 EDT
Size:
202.52 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.hyades.probekit >Index: src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbeInterface.cpp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbeInterface.cpp,v >retrieving revision 1.6 >diff -u -r1.6 BCIEngProbeInterface.cpp >--- src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbeInterface.cpp 24 Mar 2006 21:58:56 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbeInterface.cpp 6 May 2008 14:23:38 -0000 >@@ -20,23 +20,26 @@ > #pragma convert(819) /* see comment in CommonDef.h about this */ > #endif > >+#include <assert.h> >+ > #ifdef MVS > #include <unistd.h> /* for __atoe */ > #endif > >-#include "CommonDef.h" >- > #define _BCIENGINTERFACE_DLL_EXPORT // Make the "C" interface exported > >+#include "BCIEngProbe.h" >+#include "BCIEngProbeInterface.h" >+ >+#include "CommonDef.h" >+ > #ifdef WIN32 > #pragma warning(disable:4786) > #endif > >-#include "BCIEngProbe.h" >-#include "BCIEngProbeInterface.h" >- > #define TOK_WHITESPACE " \t" > >+int g_use_verifier; > //------------------------------------------------------------------------------ > inline static unsigned ExceptionToError(CBCIEngProbeInterfaceException& ex) > { >@@ -341,6 +344,12 @@ > > } > >+//------------------------------------------------------------------------------ >+void >+CBCIEngProbeInterface::UseStackMapRecalculation(bool a_use_recalculation) >+{ >+ m_peng.m_use_external_verifier = a_use_recalculation; >+} > > //------------------------------------------------------------------------------ > void >@@ -439,6 +448,27 @@ > try > { > CBCIEngProbeInterface* peng = (CBCIEngProbeInterface*)i_pbcieng; >+ peng->UseStackMapRecalculation(false); >+ peng->Instrument(i_pInClass, i_cbInClass, o_ppOutClass, o_pcbOutClass); >+ } >+ catch (CBCIEngProbeInterfaceException& ex) >+ { >+ uErr = ExceptionToError(ex); >+ } >+ return uErr; >+} >+ >+//------------------------------------------------------------------------------ >+unsigned Instrument2(pbcieng_t i_pbcieng, void* i_pInClass, size_t i_cbInClass, >+ void** o_ppOutClass, size_t* o_pcbOutClass, void *(*pEnv)(void **)) >+{ >+ unsigned uErr = 0; >+ initialize_dynamic(pEnv); >+ try >+ { >+ >+ CBCIEngProbeInterface* peng = (CBCIEngProbeInterface*)i_pbcieng; >+ peng->UseStackMapRecalculation(true); > peng->Instrument(i_pInClass, i_cbInClass, o_ppOutClass, o_pcbOutClass); > } > catch (CBCIEngProbeInterfaceException& ex) >@@ -453,6 +483,7 @@ > { > unsigned uErr = 0; > CBCIEngProbeInterface* peng = (CBCIEngProbeInterface*)i_pbcieng; >+ //assert(i_pfnMalloc); > peng->SetAllocator(i_pfnMalloc); > return uErr; > } >Index: src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.dsp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.dsp,v >retrieving revision 1.5 >diff -u -r1.5 BCIEngProbe.dsp >--- src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.dsp 24 Mar 2006 21:58:56 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.dsp 6 May 2008 14:23:38 -0000 >@@ -43,7 +43,7 @@ > # PROP Ignore_Export_Lib 0 > # PROP Target_Dir "" > # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "BCIENGPROBE_EXPORTS" /YX /FD /c >-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c >+# ADD CPP /nologo /MT /W3 /GX /Zd /O2 /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATIC_BUILD" /YX /FD /c > # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 > # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 > # ADD BASE RSC /l 0x409 /d "NDEBUG" >@@ -53,7 +53,7 @@ > # ADD BSC32 /nologo > LINK32=link.exe > # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 >-# ADD LINK32 kernel32.lib bciengj.lib /nologo /dll /debug /machine:I386 /libpath:"..\..\..\bci\jclass\release" /libpath:"..\..\..\bci\bcieng\bciengj\release" >+# ADD LINK32 bciengj.lib kernel32.lib verifier.lib /nologo /dll /debug /machine:I386 /libpath:"..\..\..\bci\jclass\release" /libpath:"..\..\..\bci\bcieng\bciengj\release" /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > > !ELSEIF "$(CFG)" == "BCIEngProbe - Win32 Debug" > >@@ -69,7 +69,7 @@ > # PROP Ignore_Export_Lib 0 > # PROP Target_Dir "" > # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "BCIENGPROBE_EXPORTS" /YX /FD /GZ /c >-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FR /YX /FD /GZ /c >+# ADD CPP /nologo /MDd /W3 /GX /Zd /Od /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATIC_BUILD" /FR /YX /FD /GZ /c > # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 > # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 > # ADD BASE RSC /l 0x409 /d "_DEBUG" >@@ -79,7 +79,8 @@ > # ADD BSC32 /nologo > LINK32=link.exe > # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept >-# ADD LINK32 bciengj.lib kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\bci\jclass\debug" /libpath:"..\..\..\bci\bcieng\bciengj\debug" >+# ADD LINK32 verifier.lib bciengj.lib kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/BCIEngProbe.dll " /pdbtype:sept /libpath:"..\..\..\bci\jclass\debug" /libpath:"..\..\..\bci\bcieng\bciengj\debug" /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" >+# SUBTRACT LINK32 /verbose > > !ENDIF > >Index: src-native/BCI/BCIEng/BCIEngProbe/Makefile.unix >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/Makefile.unix,v >retrieving revision 1.7 >diff -u -r1.7 Makefile.unix >--- src-native/BCI/BCIEng/BCIEngProbe/Makefile.unix 24 Mar 2006 21:58:56 -0000 1.7 >+++ src-native/BCI/BCIEng/BCIEngProbe/Makefile.unix 6 May 2008 14:23:38 -0000 >@@ -22,7 +22,11 @@ > include ../../makefile.include > > CPPFLAGS += -I.. -I../BCIEngJ -I../../Common -I../../JClass >+CPPFLAGS += -I../../../../../org.apache.harmony_vmcore_verifier/src/include -I../../../../../org.apache.harmony_vmcore_verifier/src/vmcore/include -I../../../../../org.apache.harmony_vmcore_verifier/src/vmcore/src/verifier-3363/x_verifier >+CPPFLAGS += -DSTATIC_BUILD -DLINUX -DPLATFORM_POSIX > CFLAGS += $(PIC_FLAG) >+LDIRS += -L../../../../../org.apache.harmony_vmcore_verifier/lib/linux/$(BUILD_MODE_DIR)/$(ARCH_DIR) >+LIBS = -lverifier > > OBJS = BCIEngProbe.o \ > BCIEngProbeInterface.o >@@ -44,7 +48,7 @@ > $(CXX_AR) $@ $? > > libBCIEngProbe$(SHLIB_EXT) : $(OBJS) >- $(CXX) $(CFLAGS) $? -o $@ $(SHLIB_FLAG) >+ $(CXX) $(CFLAGS) $? -o $@ $(SHLIB_FLAG) $(LDIRS) $(LIBS) > > clean clobber: > rm -f $(OBJS) libBCIEngProbe$(SHLIB_EXT) libBCIEngProbe.a >Index: src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.mak >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.mak,v >retrieving revision 1.6 >diff -u -r1.6 BCIEngProbe.mak >--- src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.mak 24 Mar 2006 21:58:56 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.mak 6 May 2008 14:23:38 -0000 >@@ -74,7 +74,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MT /W3 /GX /Zi /O2 /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Fp"$(INTDIR)\BCIEngProbe.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /GX /Zd /O2 /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATIC_BUILD" /Fp"$(INTDIR)\BCIEngProbe.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -114,11 +114,12 @@ > BSC32_SBRS= \ > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib bciengj.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /machine:I386 /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\release" /libpath:"..\..\bcieng\bciengj\release" >+LINK32_FLAGS=bciengj.lib kernel32.lib verifier.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /machine:I386 /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\..\bci\jclass\release" /libpath:"..\..\..\bci\bcieng\bciengj\release" /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\BCIEngProbeInterface.obj" \ >- "..\BCIEngJ\Release\BCIEngJ.lib" >+ "..\BCIEngJ\Release\BCIEngJ.lib" \ >+ "..\..\JClass\Release\JClassStat.lib" > > "$(OUTDIR)\BCIEngProbe.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) > $(LINK32) @<< >@@ -164,7 +165,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngProbe.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /GX /Zd /Od /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngProbe.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -211,11 +212,12 @@ > << > > LINK32=link.exe >-LINK32_FLAGS=bciengj.lib kernel32.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /machine:I386 /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /pdbtype:sept /libpath:"..\..\jclass\debug" /libpath:"..\..\bcieng\bciengj\debug" >+LINK32_FLAGS=bciengj.lib kernel32.lib verifier.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /machine:I386 /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /pdbtype:sept /libpath:"..\..\..\bci\jclass\debug" /libpath:"..\..\..\bci\bcieng\bciengj\debug" /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\BCIEngProbeInterface.obj" \ >- "..\BCIEngJ\Debug\BCIEngJ.lib" >+ "..\BCIEngJ\Debug\BCIEngJ.lib" \ >+ "..\..\JClass\Debug\JClassStat.lib" > > "$(OUTDIR)\BCIEngProbe.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) > $(LINK32) @<< >Index: src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbeInterface.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbeInterface.h,v >retrieving revision 1.6 >diff -u -r1.6 BCIEngProbeInterface.h >--- src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbeInterface.h 24 Mar 2006 21:58:56 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbeInterface.h 6 May 2008 14:23:38 -0000 >@@ -53,9 +53,9 @@ > #ifndef _BCIENGPROBEINTERFACE_H > #define _BCIENGPROBEINTERFACE_H > // Make the "C" interface exported >-#include "CommonDef.h" > #include "BCIEngProbe.h" > #include "BCIEngInterface.h" >+#include "CommonDef.h" > > #define BCI_ENG_PROBE_1_0 0x00010000 > >@@ -85,6 +85,9 @@ > > private: > CBCIEngProbe m_peng; >+ void UseStackMapRecalculation(bool a_use_recalculation); >+ friend unsigned Instrument(pbcieng_t, void*, size_t , void** , size_t* ); >+ friend unsigned Instrument2(pbcieng_t, void*, size_t , void** , size_t*, void *(*f)(void **)); > }; > > //------------------------------------------------------------------------------ >Index: src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.cpp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.cpp,v >retrieving revision 1.8 >diff -u -r1.8 BCIEngProbe.cpp >--- src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.cpp 12 Mar 2008 12:36:36 -0000 1.8 >+++ src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.cpp 6 May 2008 14:23:38 -0000 >@@ -20,18 +20,21 @@ > #pragma convert(819) /* see comment in CommonDef.h about this */ > #endif > >+#include <assert.h> >+ > #ifdef WIN32 > #pragma warning(disable:4786) > #endif > >-#include "CommonDef.h" > #include "ModuleJ.h" // Instrumentation module for Java >+#include "CommonDef.h" > #include "JVMInsSet.h" // JVM Instruction set > #include "ExtRefJ_StatMethod.h" // Java external ref. implemented as static > #include "JMemStream.h" // Java memory stream > #include "BCIEngProbe.h" // BCI Engine for Probe Kit > #include "BCIEngInterface.h" // for callback message number defines > >+ > #include <stdio.h> // for sprintf on Linux > #ifdef MVS > # include <unistd.h> /* for __etoa */ >@@ -1830,10 +1833,16 @@ > // Starting with the call to Open, we don't need to delete pClass any more: > // The module owns it. > CModuleJ* pModuleJ = new CModuleJ; >+ pModuleJ->UseStackMapCalculation(m_use_external_verifier); > pModuleJ->Open(pClass, true); > pModuleJ->SetAccessFlags(pClass->GetAccessFlags()); >- pModuleJ->Parse(); >- >+ if (pModuleJ->Parse() != 0) { >+ *o_pcbOutClass = i_cbInClass; >+ *o_ppOutClass = i_pInClass; >+ delete pClass; >+ return false; >+ } >+ > // If we were asked to, then dump the module before and after instrumentation > const char *dump_output_file; > if ((dump_output_file = getenv("PROBEKIT_DUMP_FILE")) != NULL) { >@@ -1845,6 +1854,7 @@ > output_stream << "=========== DUMP BEFORE INSTRUMENTATION" << endl; > pModuleJ->Dump(output_stream); > >+ > #if defined(MVS) || defined(__OS400__) > /* On EBCDIC systems, convert ASCII to EBCDIC */ > char* data = output_stream.str(); >@@ -1864,7 +1874,6 @@ > // to this module, but we still ran callsite probes against this > // module and maybe we didn't actually do anything. > // In that case we should set out == in and return without calling emit. >- > pModuleJ->Emit(); > > // Tell the client that's driving us that we did something to this module >@@ -1882,6 +1891,7 @@ > #else > ofstream output_stream(dump_output_file, ios::app); > #endif >+ > output_stream << "=========== DUMP AFTER INSTRUMENTATION" << endl; > pModuleJ->Dump(output_stream); > >@@ -1898,6 +1908,13 @@ > } > > *o_pcbOutClass = pClass->GetSize(); >+ if (m_pfnMalloc == NULL) { >+ /*skipping*/ >+ *o_pcbOutClass = i_cbInClass; >+ *o_ppOutClass = i_pInClass; >+ delete pClass; >+ return false; >+ } > *o_ppOutClass = m_pfnMalloc(*o_pcbOutClass); > > CJMemStream OutStream; // Memory stream >@@ -1998,7 +2015,6 @@ > { > InstrumentMethod(*itrMeth); > } >- > // Process any staticInitializer fragments that matched this class, > // and default initializers for staticField elements in probes that matched. > HandleStaticInitializers(pmodj); >@@ -3179,7 +3195,7 @@ > { > return; > } >- >+ > // Allow the client that's driving us to veto instrumentation of this module > if (NULL != m_pfnCallback && > (m_wCBFlags & BCIENGINTERFACE_CALLBACK_METHOD) && >Index: src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.h,v >retrieving revision 1.6 >diff -u -r1.6 BCIEngProbe.h >--- src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.h 24 Mar 2006 21:58:56 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.h 6 May 2008 14:23:38 -0000 >@@ -23,8 +23,8 @@ > #include <string> > #include <list> > #include <set> >-#include "BCIEng.h" > #include "ModuleJ.h" >+#include "BCIEng.h" > #include "CommonDef.h" > #include "JavaHelpers.h" // Java helpers > USE_NAMESPACE(std); >@@ -504,6 +504,8 @@ > // These fields are reset and reused for each instrumented method > IP_t m_ipFinally; // Finally wrapper label > IP_t m_ipCatchAll; // catch-all wrapper label >+friend class CBCIEngProbeInterface; >+ bool m_use_external_verifier; > }; > > #endif // defined _BCIENGPROBE_H_ >Index: src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.mak64 >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.mak64,v >retrieving revision 1.1 >diff -u -r1.1 BCIEngProbe.mak64 >--- src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.mak64 19 May 2006 21:06:03 -0000 1.1 >+++ src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.mak64 6 May 2008 14:23:38 -0000 >@@ -76,7 +76,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Fp"$(INTDIR)\BCIEngProbe.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\..\BCIEng\BCIEngJ" /I "..\..\BCIEng" /I "..\..\JClass" /I "..\..\common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATIC_BUILD" /Fp"$(INTDIR)\BCIEngProbe.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -113,7 +113,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib bciengj.lib bufferoverflowU.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\release" /libpath:"..\..\bcieng\bciengj\release" /machine:IA64 >+LINK32_FLAGS=bciengj.lib kernel32.lib verifier.lib bufferoverflowU.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\release" /libpath:"..\..\bcieng\bciengj\release" /machine:IA64 /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IPF" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\BCIEngProbeInterface.obj" \ >@@ -162,7 +162,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngProbe.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /Zi /Od /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\..\BCIEng" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngProbe.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -199,7 +199,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=bciengj.lib kernel32.lib bufferoverflowU.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\debug" /libpath:"..\..\bcieng\bciengj\debug" /machine:IA64 >+LINK32_FLAGS=bciengj.lib kernel32.lib verifier.lib bufferoverflowU.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\debug" /libpath:"..\..\bcieng\bciengj\debug" /machine:IA64 /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IPF" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\BCIEngProbeInterface.obj" \ >@@ -246,7 +246,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /Fp"$(INTDIR)\BCIEngProbe.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\..\BCIEng" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATIC_BUILD" /Fp"$(INTDIR)\BCIEngProbe.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -283,7 +283,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib bciengj.lib bufferoverflowU.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\release" /libpath:"..\..\bcieng\bciengj\release" /machine:AMD64 >+LINK32_FLAGS=bciengj.lib kernel32.lib verifier.lib bufferoverflowU.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\release" /libpath:"..\..\bcieng\bciengj\release" /machine:AMD64 /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\EM64T" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\BCIEngProbeInterface.obj" \ >@@ -332,7 +332,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\..\BCIEng\\" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngProbe.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /Zi /Od /I "..\..\BCIEng" /I "..\..\BCIEng\BCIEngJ" /I "..\..\JClass" /I "..\..\common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngProbe.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -369,7 +369,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=bciengj.lib kernel32.lib bufferoverflowU.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\debug" /libpath:"..\..\bcieng\bciengj\debug" /machine:AMD64 >+LINK32_FLAGS=bciengj.lib kernel32.lib verifier.lib bufferoverflowU.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\BCIEngProbe.pdb" /debug /out:"$(OUTDIR)\BCIEngProbe.dll" /implib:"$(OUTDIR)\BCIEngProbe.lib" /libpath:"..\..\jclass\debug" /libpath:"..\..\bcieng\bciengj\debug" /machine:AMD64 /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\EM64T" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\BCIEngProbeInterface.obj" \ >Index: src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.dep >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.dep,v >retrieving revision 1.5 >diff -u -r1.5 BCIEngProbe.dep >--- src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.dep 24 Mar 2006 21:58:56 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEngProbe/BCIEngProbe.dep 6 May 2008 14:23:38 -0000 >@@ -1,6 +1,12 @@ > # Microsoft Developer Studio Generated Dependency File, included by BCIEngProbe.mak > > .\BCIEngProbe.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\common\commondef.h"\ > "..\..\common\javadef.h"\ > "..\..\Common\JavaHelpers.h"\ >@@ -10,6 +16,8 @@ > "..\..\JClass\JMemStream.h"\ > "..\..\JClass\JStream.h"\ > "..\BCIEng.h"\ >+ "..\bcienginterface.h"\ >+ "..\BCIEngJ\class_inerface_int.h"\ > "..\BCIEngJ\ExtRefJ_StatMethod.h"\ > "..\BCIEngJ\JVMInsSet.h"\ > "..\BCIEngJ\ModuleJ.h"\ >@@ -19,6 +27,12 @@ > > > .\BCIEngProbeInterface.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\common\commondef.h"\ > "..\..\common\javadef.h"\ > "..\..\Common\JavaHelpers.h"\ >Index: src-native/BCI/BCIEng/Module.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/Module.h,v >retrieving revision 1.8 >diff -u -r1.8 Module.h >--- src-native/BCI/BCIEng/Module.h 10 Apr 2006 03:57:59 -0000 1.8 >+++ src-native/BCI/BCIEng/Module.h 6 May 2008 14:23:36 -0000 >@@ -132,7 +132,7 @@ > > virtual const vector<string>& GetSourceFileNames() = 0; > >- virtual void Parse()=0; >+ virtual int Parse()=0; > virtual void Emit(); > > CMethods* GetMethods(){return m_pMethods;} >@@ -527,6 +527,7 @@ > X_REASON_PARSE_ERROR, // Parsing error > X_REASON_INVALID_CALL, // Invalid method call (e.g. abstract method) > X_REASON_CODE_OVERRUN, // Code overrun during emission >+ X_REASON_VERIFICATION_FAILED, // Verifier stack map recalculation failed > X_REASON_LAST > }; > >Index: src-native/BCI/BCIEng/BCIEng.mak >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEng.mak,v >retrieving revision 1.5 >diff -u -r1.5 BCIEng.mak >--- src-native/BCI/BCIEng/BCIEng.mak 24 Mar 2006 21:59:51 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEng.mak 6 May 2008 14:23:36 -0000 >@@ -49,7 +49,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /GX /Zi /O2 /I "..\Common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "..\Common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > BSC32=bscmake.exe > BSC32_FLAGS=/nologo /o"$(OUTDIR)\BCIEng.bsc" > BSC32_SBRS= \ >@@ -86,7 +86,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /GZ /c > BSC32=bscmake.exe > BSC32_FLAGS=/nologo /o"$(OUTDIR)\BCIEng.bsc" > BSC32_SBRS= \ >Index: src-native/BCI/BCIEng/BCIEng.mak64 >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEng.mak64,v >retrieving revision 1.1 >diff -u -r1.1 BCIEng.mak64 >--- src-native/BCI/BCIEng/BCIEng.mak64 19 May 2006 21:06:03 -0000 1.1 >+++ src-native/BCI/BCIEng/BCIEng.mak64 6 May 2008 14:23:36 -0000 >@@ -51,7 +51,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\Common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\Common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEng.lib" >@@ -85,7 +85,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\Common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /Zi /Od /I "..\Common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEng.lib" >@@ -119,7 +119,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\Common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\Common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEng.lib" >@@ -153,7 +153,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\Common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /Zi /Od /I "..\Common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEng.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEng.lib" >Index: src-native/BCI/BCIEng/BCIEng.dsw >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEng.dsw,v >retrieving revision 1.5 >diff -u -r1.5 BCIEng.dsw >--- src-native/BCI/BCIEng/BCIEng.dsw 24 Mar 2006 21:59:52 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEng.dsw 6 May 2008 14:23:36 -0000 >@@ -3,7 +3,7 @@ > > ############################################################################### > >-Project: "BCIEng"=.\BCIEng.dsp - Package Owner=<4> >+Project: "BCIEng"=".\BCIEng.dsp" - Package Owner=<4> > > Package=<5> > {{{ >@@ -15,7 +15,7 @@ > > ############################################################################### > >-Project: "BCIEngJ"=.\BCIEngJ\BCIEngJ.dsp - Package Owner=<4> >+Project: "BCIEngJ"=".\BCIEngJ\BCIEngJ.dsp" - Package Owner=<4> > > Package=<5> > {{{ >@@ -30,7 +30,7 @@ > > ############################################################################### > >-Project: "BCIEngProbe"=.\BCIEngProbe\BCIEngProbe.dsp - Package Owner=<4> >+Project: "BCIEngProbe"=".\BCIEngProbe\BCIEngProbe.dsp" - Package Owner=<4> > > Package=<5> > {{{ >@@ -48,7 +48,7 @@ > > ############################################################################### > >-Project: "BciEngJTest"=.\BCIEngJ\BciEngJTest\BciEngJTest.dsp - Package Owner=<4> >+Project: "BciEngJTest"=".\BCIEngJ\BciEngJTest\BciEngJTest.dsp" - Package Owner=<4> > > Package=<5> > {{{ >@@ -60,7 +60,7 @@ > > ############################################################################### > >-Project: "JClassStat"=..\JClass\JClassStat.dsp - Package Owner=<4> >+Project: "JClassStat"="..\JClass\JClassStat.dsp" - Package Owner=<4> > > Package=<5> > {{{ >@@ -72,7 +72,7 @@ > > ############################################################################### > >-Project: "JDump"=..\JDump\JDump.dsp - Package Owner=<4> >+Project: "JDump"="..\JDump\JDump.dsp" - Package Owner=<4> > > Package=<5> > {{{ >@@ -90,7 +90,7 @@ > > ############################################################################### > >-Project: "ProbeInstrumenter"=.\BCIEngProbe\ProbeInstrumenter\ProbeInstrumenter.dsp - Package Owner=<4> >+Project: "ProbeInstrumenter"=".\BCIEngProbe\ProbeInstrumenter\ProbeInstrumenter.dsp" - Package Owner=<4> > > Package=<5> > {{{ >@@ -105,7 +105,7 @@ > > ############################################################################### > >-Project: "ProbeUnitTests"=.\ProbeUnitTests\ProbeUnitTests.dsp - Package Owner=<4> >+Project: "ProbeUnitTests"=".\ProbeUnitTests\ProbeUnitTests.dsp" - Package Owner=<4> > > Package=<5> > {{{ >Index: src-native/BCI/BCIEng/BCIEngInterface.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngInterface.h,v >retrieving revision 1.6 >diff -u -r1.6 BCIEngInterface.h >--- src-native/BCI/BCIEng/BCIEngInterface.h 24 Mar 2006 21:59:51 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngInterface.h 6 May 2008 14:23:36 -0000 >@@ -152,6 +152,8 @@ > _BCIENGINTERFACE_EXT_REF unsigned Initialize(pbcieng_t i_pbcieng, const char* i_pchOptions, size_t i_cbOptions); > _BCIENGINTERFACE_EXT_REF unsigned Instrument(pbcieng_t i_pbcieng, void* i_pInClass, size_t i_cbInClass, > void** o_ppOutClass, size_t* o_pcbOutClass); >+ _BCIENGINTERFACE_EXT_REF unsigned Instrument2(pbcieng_t i_pbcieng, void* i_pInClass, size_t i_cbInClass, >+ void** o_ppOutClass, size_t* o_pcbOutClass, void *(*)(void **)); > _BCIENGINTERFACE_EXT_REF unsigned SetAllocator(pbcieng_t i_pbcieng, pfnMalloc_t i_pfnMalloc); > _BCIENGINTERFACE_EXT_REF unsigned SetCallback(pbcieng_t i_pbcieng, pfnCallback_t i_pfnCallback, unsigned i_uFlags); > >Index: src-native/BCI/BCIEng/BCIEng.dsp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEng.dsp,v >retrieving revision 1.5 >diff -u -r1.5 BCIEng.dsp >--- src-native/BCI/BCIEng/BCIEng.dsp 24 Mar 2006 21:59:51 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEng.dsp 6 May 2008 14:23:36 -0000 >@@ -23,6 +23,8 @@ > > # Begin Project > # PROP AllowPerConfigDependencies 0 >+# PROP Scc_ProjName "" >+# PROP Scc_LocalPath "" > CPP=cl.exe > RSC=rc.exe > >@@ -62,7 +64,7 @@ > # PROP Intermediate_Dir "Debug" > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c >-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c >+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\Common" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR /YX /FD /GZ /c > # ADD BASE RSC /l 0x409 /d "_DEBUG" > # ADD RSC /l 0x409 /d "_DEBUG" > BSC32=bscmake.exe >Index: src-native/BCI/JClass/JavaDef.h >=================================================================== >RCS file: src-native/BCI/JClass/JavaDef.h >diff -N src-native/BCI/JClass/JavaDef.h >--- src-native/BCI/JClass/JavaDef.h 24 Mar 2006 22:00:45 -0000 1.5 >+++ /dev/null 1 Jan 1970 00:00:00 -0000 >@@ -1,69 +0,0 @@ >- /********************************************************************** >- * Copyright (c) 2005, 2006 IBM Corporation and others. >- * All rights reserved. This program and the accompanying materials >- * are made available under the terms of the Eclipse Public License v1.0 >- * which accompanies this distribution, and is available at >- * http://www.eclipse.org/legal/epl-v10.html >- * $Id: JavaDef.h,v 1.5 2006/03/24 22:00:45 hleung Exp $ >- * >- * Contributors: >- * IBM - Initial API and implementation >- **********************************************************************/ >- >-//============================================================================== >-// JavaDef.h >-// >-// Some common Java definitions >-// >-//============================================================================== >- >-//??? NameSpace ??? >-#ifndef _JAVADEF_H >-#define _JAVADEF_H >- >-#define JAVA_MAGIC 0xCAFEBABE; >- >-// class_file.access_flags and field_info.access_flags values >-#define ACC_PUBLIC 0x0001 // Public access >-#define ACC_PRIVATE 0x0002 // Private access >-#define ACC_PROTECTED 0x0004 // Protected access >-#define ACC_STATIC 0x0008 // Static >-#define ACC_FINAL 0x0010 // Final access >-#define ACC_SUPER 0x0020 // Super access >-#define ACC_SYNCHRONIZED 0x0020 // Synchronized (for methods) >-#define ACC_INTERFACE 0x0200 // Interface acess >-#define ACC_ABSTRACT 0x0400 // Abstract access >- >-// cp_info.tag values >-#define CONSTANT_Utf8 1 // >-#define CONSTANT_Integer 3 // >-#define CONSTANT_Float 4 // >-#define CONSTANT_Long 5 // >-#define CONSTANT_Double 6 // >-#define CONSTANT_Class 7 // >-#define CONSTANT_String 8 // >-#define CONSTANT_Fieldref 9 // >-#define CONSTANT_Methodref 10 // >-#define CONSTANT_InterfaceMethodref 11 // >-#define CONSTANT_NameAndType 12 // >- >-#define CONSTANT_Unknown 0 >- >-// array types >-#define T_BOOLEAN 4 // bool >-#define T_CHAR 5 // char >-#define T_FLOAT 6 // float >-#define T_DOUBLE 7 // double >-#define T_BYTE 8 // byte >-#define T_SHORT 9 // short >-#define T_INT 10 // int >-#define T_LONG 11 // long >- >-// ToDo: other Java specific definitions >-typedef unsigned char u1; // 1 byte >-typedef unsigned short u2; // 2 byte unsigned integer >-typedef unsigned int u4; // 4 byte unsigned integer >- >-#endif // _JAVADEF_H >- >-//= End of JavaDef.h =========================================================== >Index: src-native/BCI/JClass/JClassStat.mak >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JClass/JClassStat.mak,v >retrieving revision 1.5 >diff -u -r1.5 JClassStat.mak >--- src-native/BCI/JClass/JClassStat.mak 24 Mar 2006 22:00:44 -0000 1.5 >+++ src-native/BCI/JClass/JClassStat.mak 6 May 2008 14:23:40 -0000 >@@ -64,7 +64,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "..\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\JClassStat.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "..\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > BSC32=bscmake.exe > BSC32_FLAGS=/nologo /o"$(OUTDIR)\JClassStat.bsc" > BSC32_SBRS= \ >@@ -109,7 +109,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\common" /I "..\Common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\common" /I "..\Common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /GZ /c > BSC32=bscmake.exe > BSC32_FLAGS=/nologo /o"$(OUTDIR)\JClassStat.bsc" > BSC32_SBRS= \ >Index: src-native/BCI/JClass/JClassBuilder.cpp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JClass/JClassBuilder.cpp,v >retrieving revision 1.5 >diff -u -r1.5 JClassBuilder.cpp >--- src-native/BCI/JClass/JClassBuilder.cpp 24 Mar 2006 22:00:44 -0000 1.5 >+++ src-native/BCI/JClass/JClassBuilder.cpp 6 May 2008 14:23:39 -0000 >@@ -80,7 +80,8 @@ > string > CJClassBuilder::GetSuperClassName() > { >- CCPUtf8Info* pcpUtf8 = (CCPUtf8Info*)((*m_pConstPool)[GetSuperClass()]); >+ CCPClassInfo* pccpClassInfo = (CCPClassInfo*)((*m_pConstPool)[GetSuperClass()]); >+ CCPUtf8Info* pcpUtf8 = (CCPUtf8Info*)((*m_pConstPool)[pccpClassInfo->GetClassInd()]); > string strSuperClass = (string)*pcpUtf8; > return strSuperClass; > } >@@ -245,6 +246,7 @@ > CConstPool::iterator itr = m_pConstPool->begin(); > while(itr != m_pConstPool->end()) > { >+ if (*itr == NULL) return NULL; > if((*itr)->GetTag() == CONSTANT_Class) > { > CCPClassInfo* pcpci = (CCPClassInfo*)*itr; >@@ -278,6 +280,22 @@ > } > > //------------------------------------------------------------------------------ >+// CreateClassConstant >+// In: >+// i_szClassName - class name >+// Returns: >+// CCPClassInfo* - pointer to the class infoin the constant pool >+// >+CCPClassInfo* >+CJClassBuilder::CreateClassConstant(CSTR i_szClassName) >+{ >+ u2 u2ClassName = m_pConstPool->Add(new CCPUtf8Info(i_szClassName)); >+ u2 u2ClassRef = m_pConstPool->Add(new CCPClassInfo(u2ClassName)); >+ CCPClassInfo* pcpClass = (CCPClassInfo*)((*m_pConstPool)[u2ClassRef]); >+ return pcpClass; >+} >+ >+//------------------------------------------------------------------------------ > // CreateIntegerConstant > // In: > // i_int - Integer value to add >Index: src-native/BCI/JClass/JClassStat.dep >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JClass/JClassStat.dep,v >retrieving revision 1.5 >diff -u -r1.5 JClassStat.dep >--- src-native/BCI/JClass/JClassStat.dep 24 Mar 2006 22:00:45 -0000 1.5 >+++ src-native/BCI/JClass/JClassStat.dep 6 May 2008 14:23:40 -0000 >@@ -13,31 +13,49 @@ > # Microsoft Developer Studio Generated Dependency File, included by JClassStat.mak > # Hand-edited by apratt to remove absolute paths and other silliness > >+ >+..\Common\JavaHelpers.cpp : \ >+ "..\common\commondef.h"\ >+ "..\common\JavaDef.h"\ >+ "..\Common\JavaHelpers.h"\ >+ >+ >+.\JClassBuilder.cpp : \ >+ "..\common\commondef.h"\ >+ "..\common\JavaDef.h"\ >+ "..\Common\JavaHelpers.h"\ >+ ".\JBaseStream.h"\ >+ ".\JClassBuilder.h"\ >+ ".\JClassFile.h"\ >+ ".\JStream.h"\ >+ >+ > .\JClassFile.cpp : \ > "..\common\commondef.h"\ >- ".\JavaDef.h"\ >+ "..\common\JavaDef.h"\ > ".\JBaseStream.h"\ > ".\JClassFile.h"\ >+ ".\JMemStream.h"\ > ".\JStream.h"\ > > > .\JFileStream.cpp : \ > "..\common\commondef.h"\ >- ".\JavaDef.h"\ >+ "..\common\JavaDef.h"\ > ".\JBaseStream.h"\ > ".\JFileStream.h"\ > > > .\JMemStream.cpp : \ > "..\common\commondef.h"\ >- ".\JavaDef.h"\ >+ "..\common\JavaDef.h"\ > ".\JBaseStream.h"\ > ".\JMemStream.h"\ > > > .\JStream.cpp : \ > "..\common\commondef.h"\ >- ".\JavaDef.h"\ >+ "..\common\JavaDef.h"\ > ".\JBaseStream.h"\ > ".\JStream.h"\ > >Index: src-native/BCI/JClass/JClassBuilder.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JClass/JClassBuilder.h,v >retrieving revision 1.5 >diff -u -r1.5 JClassBuilder.h >--- src-native/BCI/JClass/JClassBuilder.h 24 Mar 2006 22:00:45 -0000 1.5 >+++ src-native/BCI/JClass/JClassBuilder.h 6 May 2008 14:23:39 -0000 >@@ -62,7 +62,8 @@ > > // Constant pool manipulation > CCPStringInfo* CreateStringConstant(CSTR i_szString); >- CCPIntegerInfo* CreateIntegerConstant (JINTEGER i_int); >+ CCPClassInfo* CreateClassConstant(CSTR i_szClassName); >+ CCPIntegerInfo* CreateIntegerConstant (JINTEGER i_int); > CCPLongInfo* CreateLongConstant(JLONG i_long); > CCPFloatInfo* CreateFloatConstant(JFLOAT i_float); > CCPDoubleInfo* CreateDoubleConstant(JDOUBLE i_double); >Index: src-native/BCI/JClass/JClassStat.mak64 >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JClass/JClassStat.mak64,v >retrieving revision 1.1 >diff -u -r1.1 JClassStat.mak64 >--- src-native/BCI/JClass/JClassStat.mak64 19 May 2006 21:06:02 -0000 1.1 >+++ src-native/BCI/JClass/JClassStat.mak64 6 May 2008 14:23:40 -0000 >@@ -66,7 +66,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /EHsc /O2 /I "..\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\JClassStat.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /EHsc /O2 /I "..\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\JClassStat.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\JClassStat.lib" >@@ -108,7 +108,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\common" /I "..\Common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /Zi /Od /I "..\common" /I "..\Common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\JClassStat.lib" >@@ -149,7 +149,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /EHsc /O2 /I "..\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\JClassStat.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /EHsc /O2 /I "..\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\JClassStat.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\JClassStat.lib" >@@ -191,7 +191,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\common" /I "..\Common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /Zi /Od /I "..\common" /I "..\Common" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\JClassStat.lib" >Index: src-native/BCI/JClass/JClassStat.dsp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JClass/JClassStat.dsp,v >retrieving revision 1.4 >diff -u -r1.4 JClassStat.dsp >--- src-native/BCI/JClass/JClassStat.dsp 24 Mar 2006 22:00:45 -0000 1.4 >+++ src-native/BCI/JClass/JClassStat.dsp 6 May 2008 14:23:40 -0000 >@@ -41,7 +41,7 @@ > # PROP Intermediate_Dir "Release" > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c >-# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /FD /c >+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\common" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /YX /Zl /FD /c > # ADD BASE RSC /l 0x409 /d "NDEBUG" > # ADD RSC /l 0x409 /d "NDEBUG" > BSC32=bscmake.exe >Index: src-native/BCI/JClass/JClassFile.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JClass/JClassFile.h,v >retrieving revision 1.7 >diff -u -r1.7 JClassFile.h >--- src-native/BCI/JClass/JClassFile.h 10 Apr 2006 03:57:43 -0000 1.7 >+++ src-native/BCI/JClass/JClassFile.h 6 May 2008 14:23:40 -0000 >@@ -82,6 +82,7 @@ > class CLineNumberTableAttribute; > class CLocalVariableTableAttribute; > class CLocalVariableTypeTableAttribute; >+class CStackMapTableAttribute; > > //------------------------------------------------------------------------------ > // Container classes >@@ -182,8 +183,9 @@ > const CCPUtf8Info& operator = (const CCPUtf8Info& i_utf8) > { > m_u2Length = i_utf8.GetLength(); >- m_pu1Bytes = new u1[m_u2Length]; >+ m_pu1Bytes = new u1[m_u2Length + 1]; > memcpy(m_pu1Bytes, i_utf8.GetBytes(), m_u2Length); >+ m_pu1Bytes[m_u2Length] = '\0'; > return *this; > } > operator string () >@@ -672,6 +674,9 @@ > CLineNumberTableAttribute* GetLineNumbers(); > CLocalVariableTableAttribute* GetLocalVariables(); > CLocalVariableTypeTableAttribute* GetLocalVariableTypes(); >+ CStackMapTableAttribute* GetStackMaps(); >+ CStackMapTableAttribute* GetOrCreateStackMaps(); >+ > > protected: > u2 m_u2MaxStack; >@@ -899,6 +904,289 @@ > }; > > //------------------------------------------------------------------------------ >+// Verification Type Information (new in Java 6) >+// >+// Represents the following verification types: Top, Integer, Float, Double, Long, Null, >+// UninitializedThis >+// >+class CVerificationTypeInfo >+{ >+public: >+ CVerificationTypeInfo(u1 i_u1Tag); >+ ~CVerificationTypeInfo(); >+ virtual void Read(CJStream& i_jstream); >+ virtual u2 Read(u1* i_tbl); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CVerificationTypeInfo* Clone() const >+ { >+ return new CVerificationTypeInfo(*this); >+ } >+ >+ u1 GetTag() { return m_u1Tag; } >+ >+private: >+ u1 m_u1Tag; >+}; >+ >+//------------------------------------------------------------------------------ >+// Verification Type Information Vector >+// >+class CVerificationTypes : public vector<CVerificationTypeInfo*> >+{ >+public: >+ CVerificationTypes() { clear(); } >+ CVerificationTypes(const CVerificationTypes &i_VerTypes); >+ ~CVerificationTypes(); >+ >+ CVerificationTypes& operator = (const CVerificationTypes &i_VerTypes); >+ >+ virtual void Read(CJStream& i_jstream, u2 i_u2EntriesToRead); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ >+private: >+}; >+ >+//------------------------------------------------------------------------------ >+// Verification Type Information: Object (new in Java 6) >+// >+class CVerificationTypeObjectInfo : public CVerificationTypeInfo >+{ >+public: >+ CVerificationTypeObjectInfo(u1 i_u1Tag); >+ ~CVerificationTypeObjectInfo(); >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CVerificationTypeInfo* Clone() const >+ { >+ return new CVerificationTypeObjectInfo(*this); >+ } >+ >+ u2 GetCpoolIndex() { return m_u2CpoolIndex; } >+ void SetCpoolIndex(u2 i_u2CpoolIndex) { m_u2CpoolIndex = i_u2CpoolIndex; } >+ >+private: >+ u2 m_u2CpoolIndex; >+}; >+ >+//------------------------------------------------------------------------------ >+// Verification Type Information: Uninitialized Variable (new in Java 6) >+// >+class CVerificationTypeUninitializedVariableInfo : public CVerificationTypeInfo >+{ >+public: >+ CVerificationTypeUninitializedVariableInfo(u1 i_u1Tag); >+ ~CVerificationTypeUninitializedVariableInfo(); >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CVerificationTypeInfo* Clone() const >+ { >+ return new CVerificationTypeUninitializedVariableInfo(*this); >+ } >+ >+ u2 GetOffset() { return m_u2Offset; } >+ void SetOffset(u2 i_u2Offset) { m_u2Offset = i_u2Offset; } >+ >+private: >+ u2 m_u2Offset; >+}; >+ >+ >+//------------------------------------------------------------------------------ >+// Stack Map Frame Information (new in Java 6) >+// >+class CStackMapFrameInfo >+{ >+ friend class CStackMapTable; >+public: >+ CStackMapFrameInfo(u1 i_u1FrameType); >+ CStackMapFrameInfo(const CStackMapFrameInfo &i_Other); >+ ~CStackMapFrameInfo(); >+ >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CStackMapFrameInfo* Clone() const = 0; >+ >+ u1 GetFrameType() const { return m_u1FrameType; } >+ u2 GetByteCodeOffset() { return m_u2ByteCodeOffset; } >+ void SetByteCodeOffset(u2 i_u2Offset); >+ >+protected: >+ virtual void AdjustOffsetDelta(int i_s2PrevFrameOffset); >+ >+ u2 m_u2ByteCodeOffset; >+ u2 m_u2OffsetDelta; >+ u1 m_u1FrameType; >+}; >+ >+//------------------------------------------------------------------------------ >+// Stack Map Frame Information: same_frame and same_frame_extended (new in Java 6) >+// >+class CStackMapSameFrameInfo : public CStackMapFrameInfo >+{ >+ friend class CStackMapTable; >+public: >+ CStackMapSameFrameInfo(u1 i_u1FrameType, bool i_IsExtended); >+ ~CStackMapSameFrameInfo(); >+ >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CStackMapFrameInfo* Clone() const; >+ >+protected: >+ virtual void AdjustOffsetDelta(int i_s2PrevFrameOffset); >+ >+private: >+ bool m_IsExtended; >+}; >+ >+//------------------------------------------------------------------------------ >+// Stack Map Frame Information: chop_frame (new in Java 6) >+// >+class CStackMapChopFrameInfo : public CStackMapFrameInfo >+{ >+public: >+ CStackMapChopFrameInfo(u1 i_u1FrameType); >+ ~CStackMapChopFrameInfo(); >+ >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CStackMapFrameInfo* Clone() const; >+ >+private: >+}; >+ >+//------------------------------------------------------------------------------ >+// Stack Map Frame Information: same_locals_1_stack_item_frame and >+// same_locals_1_stack_item_frame_extended (new in Java 6) >+// >+class CStackMapSameLocals1StackItemFrameInfo : public CStackMapFrameInfo >+{ >+ friend class CStackMapTable; >+public: >+ CStackMapSameLocals1StackItemFrameInfo(u1 i_u1FrameType, bool i_IsExtended); >+ CStackMapSameLocals1StackItemFrameInfo(const CStackMapSameLocals1StackItemFrameInfo &i_Other); >+ ~CStackMapSameLocals1StackItemFrameInfo(); >+ >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CStackMapFrameInfo* Clone() const; >+ >+ CVerificationTypes& GetStack() { return m_Stack; } >+ >+protected: >+ virtual void AdjustOffsetDelta(int i_s2PrevFrameOffset); >+ >+private: >+ CStackMapSameLocals1StackItemFrameInfo& operator = (CStackMapSameLocals1StackItemFrameInfo &i_Other); >+ >+ CVerificationTypes m_Stack; // A vector with 1 entry >+ bool m_IsExtended; >+}; >+ >+//------------------------------------------------------------------------------ >+// Stack Map Frame Information: append_frame (new in Java 6) >+// >+class CStackMapAppendFrameInfo : public CStackMapFrameInfo >+{ >+public: >+ CStackMapAppendFrameInfo(u1 i_u1FrameType); >+ CStackMapAppendFrameInfo(const CStackMapAppendFrameInfo &i_Other); >+ ~CStackMapAppendFrameInfo(); >+ >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CStackMapFrameInfo* Clone() const; >+ >+ CVerificationTypes& GetLocals() { return m_Locals; } >+ >+private: >+ CStackMapAppendFrameInfo& operator = (const CStackMapAppendFrameInfo &i_Other); >+ >+ CVerificationTypes m_Locals; >+}; >+ >+//------------------------------------------------------------------------------ >+// Stack Map Frame Information: full_frame (new in Java 6) >+// >+class CStackMapFullFrameInfo : public CStackMapFrameInfo >+{ >+public: >+ CStackMapFullFrameInfo(u1 i_u1FrameType); >+ CStackMapFullFrameInfo(const CStackMapFullFrameInfo &i_Other); >+ ~CStackMapFullFrameInfo(); >+ >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual CStackMapFrameInfo* Clone() const; >+ >+ CVerificationTypes& GetLocals() { return m_Locals; } >+ CVerificationTypes& GetStack() { return m_Stack; } >+ >+private: >+ CStackMapFullFrameInfo& operator = (const CStackMapFullFrameInfo &i_Other); >+ >+ u2 m_u2NumberOfLocals; >+ CVerificationTypes m_Locals; >+ u2 m_u2NumberOfStackItems; >+ CVerificationTypes m_Stack; >+}; >+ >+ >+//------------------------------------------------------------------------------ >+// Stack Map Table (new in Java 6) >+// >+class CStackMapTable : public vector<CStackMapFrameInfo*> >+{ >+public: >+ CStackMapTable() { clear(); } >+ ~CStackMapTable(); >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ >+ void AdjustOffsetDeltas(); >+ CStackMapFrameInfo* GetFrameAtOffset(u2 i_u2Offset); >+ >+ CStackMapTable& operator = (const CStackMapTable& i_StackMaps); >+}; >+ >+//------------------------------------------------------------------------------ >+// Stack Map Table Attribute (new in Java 6 - [4.8.4]) >+// >+class CStackMapTableAttribute : public CAttributeInfo >+{ >+ friend class CStackMapTable; >+public: >+ CStackMapTableAttribute(CJClassFile* i_pClassFile); >+ ~CStackMapTableAttribute(); >+ virtual void Read(CJStream& i_jstream); >+ virtual void Write(CJStream& i_jstream) const; >+ virtual u4 GetSize() const; >+ virtual u4 GetLength() const; >+ >+ CStackMapTable& GetStackMapTable() { return m_StackMapTable; } >+ void SetStackMapTable(const CStackMapTable& i_stackmap) {m_StackMapTable = i_stackmap;} >+ void RereadFromBuffer(u1 *i_u1Tbl); >+ >+private: >+ CStackMapTable m_StackMapTable; >+ >+ // Disable assignment operator. >+ // To enable, implement these functions as public >+ CStackMapTableAttribute& operator = (const CStackMapTableAttribute& i_other) {} >+}; >+ >+//------------------------------------------------------------------------------ > // Interface information > // > class CInterfaceInfo >@@ -999,6 +1287,7 @@ > virtual u4 GetSize() const; > > u2 GetAccessFlags() {return m_u2AccessFlags;} >+ void SetAccessFlags(u2 i_u2AccessFlags) {m_u2AccessFlags = i_u2AccessFlags;} > u2 GetNameInd() const {return m_u2NameInd;} > u2 GetDescriptorInd() const {return m_u2DescriptorInd;} > CJAttribs& GetAttribs() {return m_Attribs;} >@@ -1070,7 +1359,7 @@ > class CJClassFile > { > public: >- enum {MajorVersion = 3, MinorVersion = 46}; // TODO: comment on version >+ enum {MajorVersion = 46, MinorVersion = 3}; // J2SE 1.2 > CJClassFile(); > virtual ~CJClassFile(); > >Index: src-native/BCI/JClass/JClassFile.cpp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JClass/JClassFile.cpp,v >retrieving revision 1.7 >diff -u -r1.7 JClassFile.cpp >--- src-native/BCI/JClass/JClassFile.cpp 10 Apr 2006 03:57:43 -0000 1.7 >+++ src-native/BCI/JClass/JClassFile.cpp 6 May 2008 14:23:39 -0000 >@@ -47,8 +47,11 @@ > # include <iostream> > #endif > >+#include "JavaDef.h" > #include "CommonDef.h" >+ > #include "JClassFile.h" >+#include "JMemStream.h" > > USE_NAMESPACE(std); > >@@ -224,8 +227,9 @@ > :CCPInfo(CONSTANT_Utf8) > { > m_u2Length = i_utf8Info.GetLength(); >- m_pu1Bytes = new u1[m_u2Length]; >- memcpy(m_pu1Bytes, i_utf8Info.GetBytes(), m_u2Length); >+ m_pu1Bytes = new u1[m_u2Length + 1]; >+ m_pu1Bytes[m_u2Length] = '\0'; >+ memcpy(m_pu1Bytes, i_utf8Info.GetBytes(), m_u2Length + 1); > } > > //------------------------------------------------------------------------------ >@@ -259,8 +263,9 @@ > void > CCPUtf8Info::Read(CJStream& i_jstream) > { >- i_jstream >> m_u2Length; >- m_pu1Bytes = new u1[m_u2Length]; >+ i_jstream >> m_u2Length; >+ m_pu1Bytes = new u1[m_u2Length + 1]; >+ m_pu1Bytes[m_u2Length] = 0; /*Helps standard string functions find end of the string*/ > i_jstream.ReadUtf8((void*)m_pu1Bytes, m_u2Length); > } > >@@ -1738,6 +1743,10 @@ > { > pCurrent = new CLocalVariableTypeTableAttribute(m_pClassFile); > } >+ else if(*pcpUtf8 == "StackMapTable") >+ { >+ pCurrent = new CStackMapTableAttribute(m_pClassFile); >+ } > else if(*pcpUtf8 == "Exceptions") > { > pCurrent = new CExceptionsAttribute(m_pClassFile); >@@ -2119,6 +2128,41 @@ > return NULL; > } > >+//------------------------------------------------------------------------------ >+CStackMapTableAttribute* >+CCodeAttribute::GetStackMaps() >+{ >+ for(CJAttribs::iterator iter = m_Attribs.begin(); iter < m_Attribs.end(); iter++) >+ { >+ if(*(*iter)->GetName() == "StackMapTable") >+ return (CStackMapTableAttribute*)*iter; >+ } >+ return NULL; >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapTableAttribute* >+CCodeAttribute::GetOrCreateStackMaps() >+{ >+ // Return the StackMapTable attribute of this Code attribute, creating a new one >+ // if such an attribute does not exist >+ >+ CStackMapTableAttribute* result = NULL; >+ for(CJAttribs::iterator iter = m_Attribs.begin(); iter < m_Attribs.end(); iter++) >+ { >+ if(*(*iter)->GetName() == "StackMapTable") >+ { >+ result = (CStackMapTableAttribute*)*iter; >+ } >+ } >+ >+ if (result == NULL) >+ { >+ result = new CStackMapTableAttribute(m_pClassFile); >+ m_Attribs.push_back(result); >+ } >+ return result; >+} > > //============================================================================== > // CExceptionsAttribute implementation >@@ -2500,6 +2544,764 @@ > {} > > //============================================================================== >+// CStackMapTableAttribute implementation >+// >+CVerificationTypeInfo::CVerificationTypeInfo(u1 i_u1Tag) >+: m_u1Tag(i_u1Tag) >+{ >+} >+ >+CVerificationTypeInfo::~CVerificationTypeInfo() >+{ >+} >+ >+void >+CVerificationTypeInfo::Read(CJStream& i_jstream) >+{ >+ // m_u1Tag is read by the CVerificationTypes container. >+} >+ >+u2 >+CVerificationTypeInfo::Read(u1 *i_tbl) >+{ >+ // m_u1Tag is read by the CVerificationTypes container. >+ return 0; >+} >+ >+void >+CVerificationTypeInfo::Write(CJStream& i_jstream) const >+{ >+ i_jstream << m_u1Tag; >+} >+ >+u4 >+CVerificationTypeInfo::GetSize() const >+{ >+ return sizeof(m_u1Tag); >+} >+ >+//------------------------------------------------------------------------------ >+CVerificationTypes::~CVerificationTypes() >+{ >+ for (iterator iter = begin(); iter != end(); iter++) >+ { >+ delete *iter; >+ } >+} >+ >+CVerificationTypes::CVerificationTypes(const CVerificationTypes &i_VerTypes) >+{ >+ *this = i_VerTypes; >+} >+ >+CVerificationTypes& >+CVerificationTypes::operator =(const CVerificationTypes &i_VerTypes) >+{ >+ for(iterator iter = begin(); iter != end(); iter++) >+ { >+ delete *iter; >+ } >+ if(!i_VerTypes.empty()) >+ { >+ const_iterator iterIn; >+ clear(); >+ for(iterIn = i_VerTypes.begin(); iterIn != i_VerTypes.end(); iterIn++) >+ { >+ push_back((*iterIn)->Clone()); >+ } >+ } >+ return *this; >+} >+ >+void >+CVerificationTypes::Read(CJStream& i_jstream, u2 i_u2EntriesToRead) >+{ >+ CVerificationTypeInfo* pCurrent; >+ >+ resize(i_u2EntriesToRead); >+ for(u2 u2Ind = 0; u2Ind < i_u2EntriesToRead; u2Ind++) >+ { >+ u1 u1Tag; >+ i_jstream >> u1Tag; >+ switch (u1Tag) >+ { >+ case ITEM_Top: >+ case ITEM_Integer: >+ case ITEM_Float: >+ case ITEM_Double: >+ case ITEM_Long: >+ case ITEM_Null: >+ case ITEM_UninitializedThis: >+ pCurrent = new CVerificationTypeInfo(u1Tag); >+ break; >+ case ITEM_Object: >+ pCurrent = new CVerificationTypeObjectInfo(u1Tag); >+ break; >+ case ITEM_Uninitialized: >+ pCurrent = new CVerificationTypeUninitializedVariableInfo(u1Tag); >+ break; >+ default: >+ throw CJClassFileException(CJClassFileException::X_INTERNAL_ERROR); >+ } >+ >+ pCurrent->Read(i_jstream); >+ (*this)[u2Ind] = pCurrent; >+ } >+} >+ >+void >+CVerificationTypes::Write(CJStream& i_jstream) const >+{ >+ for (u2 u2Ind = 0; u2Ind < size(); u2Ind++) >+ { >+ (*this)[u2Ind]->Write(i_jstream); >+ } >+} >+ >+u4 >+CVerificationTypes::GetSize() const >+{ >+ u4 u4Size = 0; >+ for (const_iterator iter = begin(); iter != end(); iter++) >+ { >+ u4Size += (*iter)->GetSize(); >+ } >+ return u4Size; >+} >+ >+//------------------------------------------------------------------------------ >+CVerificationTypeObjectInfo::CVerificationTypeObjectInfo(u1 i_u1Tag) >+: CVerificationTypeInfo(i_u1Tag) >+{ >+} >+ >+CVerificationTypeObjectInfo::~CVerificationTypeObjectInfo() >+{ >+} >+ >+void >+CVerificationTypeObjectInfo::Read(CJStream& i_jstream) >+{ >+ CVerificationTypeInfo::Read(i_jstream); >+ i_jstream >> m_u2CpoolIndex; >+} >+ >+void >+CVerificationTypeObjectInfo::Write(CJStream& i_jstream) const >+{ >+ CVerificationTypeInfo::Write(i_jstream); >+ i_jstream << m_u2CpoolIndex; >+} >+ >+u4 >+CVerificationTypeObjectInfo::GetSize() const >+{ >+ u4 u4Size = CVerificationTypeInfo::GetSize() >+ + sizeof(m_u2CpoolIndex); >+ return u4Size; >+} >+ >+//------------------------------------------------------------------------------ >+CVerificationTypeUninitializedVariableInfo::CVerificationTypeUninitializedVariableInfo(u1 i_u1Tag) >+: CVerificationTypeInfo(i_u1Tag) >+{ >+} >+ >+CVerificationTypeUninitializedVariableInfo::~CVerificationTypeUninitializedVariableInfo() >+{ >+} >+ >+void >+CVerificationTypeUninitializedVariableInfo::Read(CJStream& i_jstream) >+{ >+ CVerificationTypeInfo::Read(i_jstream); >+ i_jstream >> m_u2Offset; >+} >+ >+void >+CVerificationTypeUninitializedVariableInfo::Write(CJStream& i_jstream) const >+{ >+ CVerificationTypeInfo::Write(i_jstream); >+ i_jstream << m_u2Offset; >+} >+ >+u4 >+CVerificationTypeUninitializedVariableInfo::GetSize() const >+{ >+ u4 u4Size = CVerificationTypeInfo::GetSize() >+ + sizeof(m_u2Offset); >+ return u4Size; >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapFrameInfo::CStackMapFrameInfo(u1 i_u1FrameType) >+: m_u1FrameType(i_u1FrameType) >+{ >+ m_u2ByteCodeOffset = 0; >+ m_u2OffsetDelta = 0; >+} >+ >+CStackMapFrameInfo::~CStackMapFrameInfo() >+{ >+} >+ >+void >+CStackMapFrameInfo::Read(CJStream& i_jstream) >+{ >+ // m_u1FrameType is read by the CStackMapTable container >+} >+ >+void >+CStackMapFrameInfo::Write(CJStream& i_jstream) const >+{ >+ i_jstream << m_u1FrameType; >+} >+ >+u4 >+CStackMapFrameInfo::GetSize() const >+{ >+ return sizeof(m_u1FrameType); >+} >+ >+void >+CStackMapFrameInfo::SetByteCodeOffset(u2 i_u2Offset) >+{ >+ m_u2ByteCodeOffset = i_u2Offset; >+} >+ >+void >+CStackMapFrameInfo::AdjustOffsetDelta(int i_s2PrevFrameOffset) >+{ >+ int newOffsetDelta = m_u2ByteCodeOffset - 1 - i_s2PrevFrameOffset; >+ if (newOffsetDelta < 0) >+ { >+ // Frame order was changed. This is not supported >+ throw CJClassFileException(CJClassFileException::X_INTERNAL_ERROR); >+ } >+ m_u2OffsetDelta = (u2)newOffsetDelta; // this is a safe cast since newDelta >= 1 >+} >+ >+CStackMapFrameInfo::CStackMapFrameInfo(const CStackMapFrameInfo &i_Other) >+: m_u2ByteCodeOffset(i_Other.m_u2ByteCodeOffset), m_u2OffsetDelta(i_Other.m_u2OffsetDelta), >+ m_u1FrameType(i_Other.m_u1FrameType) >+{ >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapSameFrameInfo::CStackMapSameFrameInfo(u1 i_u1FrameType, bool i_IsExtended) >+: CStackMapFrameInfo(i_u1FrameType), m_IsExtended(i_IsExtended) >+{ >+} >+ >+CStackMapSameFrameInfo::~CStackMapSameFrameInfo() >+{ >+} >+ >+void >+CStackMapSameFrameInfo::Read(CJStream& i_jstream) >+{ >+ CStackMapFrameInfo::Read(i_jstream); >+ if (m_IsExtended) >+ { >+ // SAME_FRAME_EXTENDED type >+ i_jstream >> m_u2OffsetDelta; >+ } >+ else >+ { >+ // SAME frame type. offset_delta is stored in the tag >+ m_u2OffsetDelta = GetFrameType(); >+ } >+} >+ >+void >+CStackMapSameFrameInfo::Write(CJStream& i_jstream) const >+{ >+ CStackMapFrameInfo::Write(i_jstream); >+ if (m_IsExtended) >+ { >+ // SAME_FRAME_EXTENDED type >+ i_jstream << m_u2OffsetDelta; >+ } >+} >+ >+u4 >+CStackMapSameFrameInfo::GetSize() const >+{ >+ u4 u4Size = CStackMapFrameInfo::GetSize(); >+ if (m_IsExtended) >+ { >+ u4Size += sizeof(m_u2OffsetDelta); >+ } >+ return u4Size; >+} >+ >+void >+CStackMapSameFrameInfo::AdjustOffsetDelta(int i_s2PrevFrameOffset) >+{ >+ CStackMapFrameInfo::AdjustOffsetDelta(i_s2PrevFrameOffset); >+ if (m_u2OffsetDelta > 63) >+ { >+ // Frame type is SAME_FRAME_EXTENDED >+ m_u1FrameType = SAME_FRAME_EXTENDED; >+ m_IsExtended = true; >+ } >+ else >+ { >+ // Frame type is SAME_FRAME. offset_delta is stored in the tag >+ m_u1FrameType = (u1)m_u2OffsetDelta; // this is safe since m_u2OffsetDelta <= 63 >+ m_IsExtended = false; >+ } >+} >+ >+CStackMapFrameInfo* >+CStackMapSameFrameInfo::Clone() const >+{ >+ return new CStackMapSameFrameInfo(*this); >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapChopFrameInfo::CStackMapChopFrameInfo(u1 i_u1FrameType) >+: CStackMapFrameInfo(i_u1FrameType) >+{ >+} >+ >+CStackMapChopFrameInfo::~CStackMapChopFrameInfo() >+{ >+} >+ >+void >+CStackMapChopFrameInfo::Read(CJStream& i_jstream) >+{ >+ CStackMapFrameInfo::Read(i_jstream); >+ i_jstream >> m_u2OffsetDelta; >+} >+ >+void >+CStackMapChopFrameInfo::Write(CJStream& i_jstream) const >+{ >+ CStackMapFrameInfo::Write(i_jstream); >+ i_jstream << m_u2OffsetDelta; >+} >+ >+u4 >+CStackMapChopFrameInfo::GetSize() const >+{ >+ u4 u4Size = CStackMapFrameInfo::GetSize() >+ + sizeof(m_u2OffsetDelta); >+ return u4Size; >+} >+ >+CStackMapFrameInfo* >+CStackMapChopFrameInfo::Clone() const >+{ >+ return new CStackMapChopFrameInfo(*this); >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapSameLocals1StackItemFrameInfo::CStackMapSameLocals1StackItemFrameInfo(u1 i_u1FrameType, >+ bool i_IsExtended) >+: CStackMapFrameInfo(i_u1FrameType), m_IsExtended(i_IsExtended) >+{ >+} >+ >+CStackMapSameLocals1StackItemFrameInfo::~CStackMapSameLocals1StackItemFrameInfo() >+{ >+} >+ >+void >+CStackMapSameLocals1StackItemFrameInfo::Read(CJStream& i_jstream) >+{ >+ CStackMapFrameInfo::Read(i_jstream); >+ if (m_IsExtended) >+ { >+ // SAME_LOCALS_1_STACK_ITEM_FRAME_EXTENDED type >+ i_jstream >> m_u2OffsetDelta; >+ } >+ else >+ { >+ // SAME_LOCALS_1_STACK_ITEM_FRAME frame type >+ m_u2OffsetDelta = GetFrameType() - 64; >+ } >+ m_Stack.Read(i_jstream, 1); // must hold exactly one stack item >+} >+ >+void >+CStackMapSameLocals1StackItemFrameInfo::Write(CJStream& i_jstream) const >+{ >+ CStackMapFrameInfo::Write(i_jstream); >+ if (m_IsExtended) >+ { >+ // SAME_FRAME_EXTENDED type >+ i_jstream << m_u2OffsetDelta; >+ } >+ m_Stack.Write(i_jstream); >+} >+ >+u4 >+CStackMapSameLocals1StackItemFrameInfo::GetSize() const >+{ >+ u4 u4Size = CStackMapFrameInfo::GetSize(); >+ if (m_IsExtended) >+ { >+ u4Size += sizeof(m_u2OffsetDelta); >+ } >+ u4Size += m_Stack.GetSize(); >+ return u4Size; >+} >+ >+void >+CStackMapSameLocals1StackItemFrameInfo::AdjustOffsetDelta(int i_s2PrevFrameOffset) >+{ >+ CStackMapFrameInfo::AdjustOffsetDelta(i_s2PrevFrameOffset); >+ if (m_u2OffsetDelta + 64 > 127) >+ { >+ // Frame type is SAME_LOCALS_1_STACK_FRAME_EXTENDED >+ m_u1FrameType = SAME_LOCALS_1_STACK_ITEM_EXTENDED; >+ m_IsExtended = true; >+ } >+ else >+ { >+ // Frame type is SAME_LOCALS_1_STACK_FRAME. offset_delta is stored in the tag >+ m_u1FrameType = (u1)(m_u2OffsetDelta + 64); // this is safe since m_u2OffsetDelta <= 63 >+ m_IsExtended = false; >+ } >+} >+ >+CStackMapFrameInfo* >+CStackMapSameLocals1StackItemFrameInfo::Clone() const >+{ >+ return new CStackMapSameLocals1StackItemFrameInfo(*this); >+} >+ >+CStackMapSameLocals1StackItemFrameInfo::CStackMapSameLocals1StackItemFrameInfo(const CStackMapSameLocals1StackItemFrameInfo &i_Other) >+: CStackMapFrameInfo(i_Other), m_Stack(i_Other.m_Stack), m_IsExtended(i_Other.m_IsExtended) >+{ >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapAppendFrameInfo::CStackMapAppendFrameInfo(u1 i_u1FrameType) >+: CStackMapFrameInfo(i_u1FrameType) >+{ >+} >+ >+CStackMapAppendFrameInfo::~CStackMapAppendFrameInfo() >+{ >+} >+ >+void >+CStackMapAppendFrameInfo::Read(CJStream& i_jstream) >+{ >+ CStackMapFrameInfo::Read(i_jstream); >+ i_jstream >> m_u2OffsetDelta; >+ m_Locals.Read(i_jstream, GetFrameType() - 251); >+} >+ >+void >+CStackMapAppendFrameInfo::Write(CJStream& i_jstream) const >+{ >+ CStackMapFrameInfo::Write(i_jstream); >+ i_jstream << m_u2OffsetDelta; >+ m_Locals.Write(i_jstream); >+} >+ >+u4 >+CStackMapAppendFrameInfo::GetSize() const >+{ >+ u4 u4Size = CStackMapFrameInfo::GetSize() >+ + sizeof(m_u2OffsetDelta) >+ + m_Locals.GetSize(); >+ return u4Size; >+} >+ >+CStackMapFrameInfo* >+CStackMapAppendFrameInfo::Clone() const >+{ >+ return new CStackMapAppendFrameInfo(*this); >+} >+ >+CStackMapAppendFrameInfo::CStackMapAppendFrameInfo(const CStackMapAppendFrameInfo &i_Other) >+: CStackMapFrameInfo(i_Other), m_Locals(i_Other.m_Locals) >+{ >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapFullFrameInfo::CStackMapFullFrameInfo(u1 i_u1FrameType) >+: CStackMapFrameInfo(i_u1FrameType), m_u2NumberOfLocals(0), m_u2NumberOfStackItems(0) >+{ >+} >+ >+CStackMapFullFrameInfo::~CStackMapFullFrameInfo() >+{ >+} >+ >+void >+CStackMapFullFrameInfo::Read(CJStream& i_jstream) >+{ >+ CStackMapFrameInfo::Read(i_jstream); >+ i_jstream >> m_u2OffsetDelta >+ >> m_u2NumberOfLocals; >+ m_Locals.Read(i_jstream, m_u2NumberOfLocals); >+ i_jstream >> m_u2NumberOfStackItems; >+ m_Stack.Read(i_jstream, m_u2NumberOfStackItems); >+} >+ >+void >+CStackMapFullFrameInfo::Write(CJStream& i_jstream) const >+{ >+ CStackMapFrameInfo::Write(i_jstream); >+ i_jstream << m_u2OffsetDelta >+ << m_u2NumberOfLocals; >+ m_Locals.Write(i_jstream); >+ i_jstream << m_u2NumberOfStackItems; >+ m_Stack.Write(i_jstream); >+} >+ >+u4 >+CStackMapFullFrameInfo::GetSize() const >+{ >+ u4 u4Size = CStackMapFrameInfo::GetSize() >+ + sizeof(m_u2OffsetDelta) >+ + sizeof(m_u2NumberOfLocals) >+ + m_Locals.GetSize() >+ + sizeof(m_u2NumberOfStackItems) >+ + m_Stack.GetSize(); >+ return u4Size; >+} >+ >+CStackMapFrameInfo* >+CStackMapFullFrameInfo::Clone() const >+{ >+ return new CStackMapFullFrameInfo(*this); >+} >+ >+CStackMapFullFrameInfo::CStackMapFullFrameInfo(const CStackMapFullFrameInfo &i_Other) >+: CStackMapFrameInfo(i_Other), m_Locals(i_Other.m_Locals), m_Stack(i_Other.m_Stack), >+ m_u2NumberOfLocals(i_Other.m_u2NumberOfLocals), >+ m_u2NumberOfStackItems(i_Other.m_u2NumberOfStackItems) >+{ >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapTable::~CStackMapTable() >+{ >+ for (iterator iter = begin(); iter != end(); iter++) >+ { >+ delete *iter; >+ } >+} >+ >+void >+CStackMapTable::Read(CJStream& i_jstream) >+{ >+ u2 u2Size; >+ CStackMapFrameInfo* pCurrent; >+ int s2PrevFrameOffset = -1; >+ >+ i_jstream >> u2Size; >+ resize(u2Size); >+ for(u2 u2Ind = 0; u2Ind < u2Size; u2Ind++) >+ { >+ u1 u1FrameType; >+ i_jstream >> u1FrameType; >+ if (u1FrameType >= 0 && u1FrameType <= 63) >+ { >+ pCurrent = new CStackMapSameFrameInfo(u1FrameType, false); >+ } >+ else if (u1FrameType >= 64 && u1FrameType <= 127) >+ { >+ pCurrent = new CStackMapSameLocals1StackItemFrameInfo(u1FrameType, false); >+ } >+ else if (u1FrameType == SAME_LOCALS_1_STACK_ITEM_EXTENDED) >+ { >+ pCurrent = new CStackMapSameLocals1StackItemFrameInfo(u1FrameType, true); >+ } >+ else if (u1FrameType >= 248 && u1FrameType <= 250) >+ { >+ pCurrent = new CStackMapChopFrameInfo(u1FrameType); >+ } >+ else if (u1FrameType == SAME_FRAME_EXTENDED) >+ { >+ pCurrent = new CStackMapSameFrameInfo(u1FrameType, true); >+ } >+ else if (u1FrameType >= 252 && u1FrameType <= 254) >+ { >+ pCurrent = new CStackMapAppendFrameInfo(u1FrameType); >+ } >+ else if (u1FrameType == FULL_FRAME) >+ { >+ pCurrent = new CStackMapFullFrameInfo(u1FrameType); >+ } >+ else >+ { >+ // Unknown frame type >+ throw CJClassFileException(CJClassFileException::X_INTERNAL_ERROR); >+ } >+ >+ pCurrent->Read(i_jstream); >+ pCurrent->SetByteCodeOffset(s2PrevFrameOffset + 1 + pCurrent->m_u2OffsetDelta); >+ (*this)[u2Ind] = pCurrent; >+ s2PrevFrameOffset = pCurrent->GetByteCodeOffset(); >+ } >+} >+ >+void >+CStackMapTable::AdjustOffsetDeltas() >+{ >+ // Recalculate offset deltas for all frames. This function must be called before >+ // writing the Stack Map Table to the class file or calculating its size >+ CStackMapFrameInfo* pCurrent; >+ int s2PrevFrameOffset = -1; >+ >+ for (u2 u2Ind = 0; u2Ind < size(); u2Ind++) >+ { >+ pCurrent = (*this)[u2Ind]; >+ pCurrent->AdjustOffsetDelta(s2PrevFrameOffset); >+ s2PrevFrameOffset = pCurrent->GetByteCodeOffset(); >+ } >+} >+ >+CStackMapFrameInfo* >+CStackMapTable::GetFrameAtOffset(u2 i_u2Offset) >+{ >+ bool found = false; >+ iterator it = begin(); >+ for (; it != end(); ++it) >+ { >+ if ((*it)->GetByteCodeOffset() == i_u2Offset) >+ { >+ found = true; >+ break; >+ } >+ } >+ >+ if (found) >+ { >+ return (*it); >+ } >+ else >+ { >+ return NULL; >+ } >+} >+ >+void >+CStackMapTable::Write(CJStream& i_jstream) const >+{ >+ i_jstream << (u2)size(); // the number_of_entries field >+ >+ CStackMapFrameInfo* pCurrent; >+ int s2PrevFrameOffset = -1; >+ >+ for (u2 u2Ind = 0; u2Ind < size(); u2Ind++) >+ { >+ pCurrent = (*this)[u2Ind]; >+ pCurrent->Write(i_jstream); >+ s2PrevFrameOffset = pCurrent->GetByteCodeOffset(); >+ } >+} >+ >+u4 >+CStackMapTable::GetSize() const >+{ >+ u4 u4Size = sizeof(u2); // the number_of_entries field >+ for (const_iterator iter = begin(); iter != end(); iter++) >+ { >+ u4Size += (*iter)->GetSize(); >+ } >+ return u4Size; >+} >+ >+CStackMapTable& >+CStackMapTable::operator = (const CStackMapTable& i_StackMaps) >+{ >+ for(iterator iter = begin(); iter != end(); iter++) >+ { >+ delete *iter; >+ } >+ if(!i_StackMaps.empty()) >+ { >+ const_iterator iterIn; >+ clear(); >+ for(iterIn = i_StackMaps.begin(); iterIn != i_StackMaps.end(); iterIn++) >+ { >+ push_back((*iterIn)->Clone()); >+ } >+ } >+ return *this; >+} >+ >+//------------------------------------------------------------------------------ >+CStackMapTableAttribute::CStackMapTableAttribute(CJClassFile* i_pClassFile) >+: CAttributeInfo(i_pClassFile) >+{ >+ u2 u2NameInd = i_pClassFile->GetConstPool()->Add(new CCPUtf8Info("StackMapTable")); >+ m_u2NameInd = u2NameInd; >+ m_StackMapTable.clear(); >+} >+ >+CStackMapTableAttribute::~CStackMapTableAttribute() >+{ >+} >+ >+void >+CStackMapTableAttribute::Read(CJStream& i_jstream) >+{ >+ CAttributeInfo::Read(i_jstream); >+ m_StackMapTable.Read(i_jstream); >+} >+ >+void >+CStackMapTableAttribute::Write(CJStream& i_jstream) const >+{ >+ const u4 u4Length = GetLength() - CAttributeInfo::SizeOf(); >+ i_jstream << m_u2NameInd >+ << u4Length; >+ m_StackMapTable.Write(i_jstream); >+} >+ >+u4 >+CStackMapTableAttribute::GetSize() const >+{ >+ return GetLength(); >+} >+ >+u4 >+CStackMapTableAttribute::GetLength() const >+{ >+ u4 u4Length = CAttributeInfo::SizeOf() >+ + m_StackMapTable.GetSize(); >+ return u4Length; >+} >+ >+void >+CStackMapTableAttribute::RereadFromBuffer(u1 *i_u1Tbl) >+{ >+ u2 u2skip = 0; >+ u4 u4attributeLenght = 0; >+ >+ if (i_u1Tbl == NULL) return; >+ >+ u2skip = i_u1Tbl[0]; >+ u2skip <<= 8; >+ u2skip |= i_u1Tbl[1]; >+ >+ u4attributeLenght = i_u1Tbl[2]; >+ u4attributeLenght <<= 8; >+ u4attributeLenght |= i_u1Tbl[3]; >+ u4attributeLenght <<= 8; >+ u4attributeLenght |= i_u1Tbl[4]; >+ u4attributeLenght <<= 8; >+ u4attributeLenght |= i_u1Tbl[5]; >+ m_u4Length = u4attributeLenght; >+ CJMemStream memstream; >+ memstream.Open(&i_u1Tbl[2], u4attributeLenght >+ + sizeof(u2) /*part of attribute header (its length)*/ >+ + 2 /*workaround for end buffer checking*/); >+ CJStream mem_jstream(&memstream); >+ //GetStackMapTable().RereadFromBuffer(&i_u1Tbl[6]); >+ this->Read(mem_jstream); >+} >+//============================================================================== > // CJClassFile implementation > // > >@@ -2544,12 +3346,8 @@ > { > throw CJClassFileException(CJClassFileException::X_BAD_MAGIC); > } >- i_jstream >> m_u2MajorVersion; >- if(CJClassFile::MajorVersion < m_u2MajorVersion) >- { >- throw CJClassFileException(CJClassFileException::X_BAD_VERSION); >- } > i_jstream >> m_u2MinorVersion; >+ i_jstream >> m_u2MajorVersion; > m_pConstPool->Read(i_jstream); > i_jstream >> m_u2AccessFlags > >> m_u2ThisClass >@@ -2565,8 +3363,8 @@ > CJClassFile::Write(CJStream& i_jstream) const > { > i_jstream << m_u4Magic >- << m_u2MajorVersion >- << m_u2MinorVersion; >+ << m_u2MinorVersion >+ << m_u2MajorVersion; > m_pConstPool->Write(i_jstream); > i_jstream << m_u2AccessFlags > << m_u2ThisClass >Index: src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.mak >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.mak,v >retrieving revision 1.6 >diff -u -r1.6 ProbeInstrumenter.mak >--- src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.mak 24 Mar 2006 21:58:56 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.mak 6 May 2008 14:23:38 -0000 >@@ -74,7 +74,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /ML /W3 /GX /Zi /O2 /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR"..\Release\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /ML /W3 /GX /Zi /O2 /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"..\Release\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c > BSC32=bscmake.exe > BSC32_FLAGS=/nologo /o"$(OUTDIR)\ProbeInstrumenter.bsc" > BSC32_SBRS= \ >@@ -134,7 +134,7 @@ > "$(INTDIR)" : > if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c > BSC32=bscmake.exe > BSC32_FLAGS=/nologo /o"$(OUTDIR)\ProbeInstrumenter.bsc" > BSC32_SBRS= \ >Index: src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.cpp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.cpp,v >retrieving revision 1.6 >diff -u -r1.6 ProbeInstrumenter.cpp >--- src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.cpp 24 Mar 2006 21:58:56 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.cpp 6 May 2008 14:23:38 -0000 >@@ -26,11 +26,11 @@ > #pragma warning(disable:4786) > #endif > >+#include "BCIEngProbeInterface.h" > #include "CommonDef.h" > #include <string> > #include <stdlib.h> > #include <stdio.h> >-#include "BCIEngProbeInterface.h" > > USE_NAMESPACE(std); > >Index: src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.dsp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.dsp,v >retrieving revision 1.5 >diff -u -r1.5 ProbeInstrumenter.dsp >--- src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.dsp 24 Mar 2006 21:58:56 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.dsp 6 May 2008 14:23:38 -0000 >@@ -42,7 +42,7 @@ > # PROP Ignore_Export_Lib 0 > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c >-# ADD CPP /nologo /W3 /GX /Zi /O2 /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR"..\Release\\" /YX /FD /c >+# ADD CPP /nologo /W3 /GX /Zi /O2 /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"..\Release\\" /YX /FD /c > # ADD BASE RSC /l 0x409 /d "NDEBUG" > # ADD RSC /l 0x409 /d "NDEBUG" > BSC32=bscmake.exe >@@ -66,7 +66,7 @@ > # PROP Ignore_Export_Lib 0 > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c >-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c >+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR /YX /FD /GZ /c > # ADD BASE RSC /l 0x409 /d "_DEBUG" > # ADD RSC /l 0x409 /d "_DEBUG" > BSC32=bscmake.exe >Index: src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/Makefile.unix >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/Makefile.unix,v >retrieving revision 1.8 >diff -u -r1.8 Makefile.unix >--- src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/Makefile.unix 11 Apr 2006 23:16:31 -0000 1.8 >+++ src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/Makefile.unix 6 May 2008 14:23:38 -0000 >@@ -21,10 +21,13 @@ > include ../../../Common/Makefile.include > include ../../../makefile.include > >-CPPFLAGS += -I.. -I../.. -I../../BCIEngJ -I../../../Common -I../../../JClass >+CPPFLAGS += -I.. -I../.. -I../../BCIEngJ -I../../../Common -I../../../JClass >+CPPFLAGS += -I../../../../../../org.apache.harmony_vmcore_verifier/src/include -I../../../../../../org.apache.harmony_vmcore_verifier/src/vmcore/include -I../../../../../../org.apache.harmony_vmcore_verifier/src/vmcore/src/verifier-3363/x_verifier >+CPPFLAGS += -DSTATIC_BUILD -DLINUX -DPLATFORM_POSIX > CFLAGS += $(PIC_FLAG) > LDIRS = -L.. -L../.. -L../../BCIEngJ -L../../../Common -L../../../JClass >-LIBS = -lBCIEngProbe -lBCIEngJ -lBCIEng -lJClassStat -lCommon >+LDIRS += -L../../../../../../org.apache.harmony_vmcore_verifier/lib/linux/$(BUILD_MODE_DIR)/$(ARCH_DIR) >+LIBS = -lBCIEngProbe -lBCIEngJ -lBCIEng -lJClassStat -lCommon -lverifier > > OBJS = ProbeInstrumenter.o > >Index: src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.mak64 >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.mak64,v >retrieving revision 1.1 >diff -u -r1.1 ProbeInstrumenter.mak64 >--- src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.mak64 19 May 2006 21:06:04 -0000 1.1 >+++ src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.mak64 6 May 2008 14:23:38 -0000 >@@ -75,7 +75,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /ML /W3 /EHsc /Zi /O2 /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR"..\Release\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /ML /W3 /EHsc /Zi /O2 /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"..\Release\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LINK32=link.exe > LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\ProbeInstrumenter.pdb" /out:"../Release/ProbeInstrumenter.exe" /libpath:"..\Release" /machine:IA64 >@@ -125,7 +125,7 @@ > "$(INTDIR)" : > if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /ZI /Od /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /ZI /Od /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LINK32=link.exe > LINK32_FLAGS=kernel32.lib bciengprobe.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\ProbeInstrumenter.pdb" /debug /out:"$(OUTDIR)\ProbeInstrumenter.exe" /libpath:"..\debug" /machine:IA64 >@@ -170,7 +170,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /ML /W3 /EHsc /Zi /O2 /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR"..\Release\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /ML /W3 /EHsc /Zi /O2 /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"..\Release\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LINK32=link.exe > LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\ProbeInstrumenter.pdb" /out:"../Release/ProbeInstrumenter.exe" /libpath:"..\Release" /machine:AMD64 >@@ -220,7 +220,7 @@ > "$(INTDIR)" : > if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /ZI /Od /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /ZI /Od /I "..\..\..\Common" /I "..\..\..\jclass" /I "..\..\..\bcieng" /I "..\..\..\bcieng\bciengj" /I ".." /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeInstrumenter.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LINK32=link.exe > LINK32_FLAGS=kernel32.lib bciengprobe.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\ProbeInstrumenter.pdb" /debug /out:"$(OUTDIR)\ProbeInstrumenter.exe" /libpath:"..\debug" /machine:AMD64 >Index: src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.dep >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.dep,v >retrieving revision 1.5 >diff -u -r1.5 ProbeInstrumenter.dep >--- src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.dep 24 Mar 2006 21:58:56 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEngProbe/ProbeInstrumenter/ProbeInstrumenter.dep 6 May 2008 14:23:38 -0000 >@@ -1,6 +1,12 @@ > # Microsoft Developer Studio Generated Dependency File, included by ProbeInstrumenter.mak > > .\ProbeInstrumenter.cpp : \ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\..\common\commondef.h"\ > "..\..\..\common\javadef.h"\ > "..\..\..\Common\JavaHelpers.h"\ >@@ -10,6 +16,7 @@ > "..\..\..\JClass\JStream.h"\ > "..\..\BCIEng.h"\ > "..\..\BCIEngInterface.h"\ >+ "..\..\BCIEngJ\class_inerface_int.h"\ > "..\..\BCIEngJ\ModuleJ.h"\ > "..\..\InsSet.h"\ > "..\..\Module.h"\ >Index: src-native/BCI/Common/CommonDef.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/Common/CommonDef.h,v >retrieving revision 1.10 >diff -u -r1.10 CommonDef.h >--- src-native/BCI/Common/CommonDef.h 25 Apr 2006 16:16:35 -0000 1.10 >+++ src-native/BCI/Common/CommonDef.h 6 May 2008 14:23:39 -0000 >@@ -22,14 +22,13 @@ > // For this header to work, you need to define one of these ARCH symbols: > // > // WIN32 (means x86) >+// IA32_ARCH (means x86) > // IPF_ARCH (means Itanium Processor Family) > // EM64T_ARCH (means Intel/AMD 64-bit processors) >-// IA32_ARCH (means x86) > // SPARC_ARCH > // HPPA_ARCH > // ALPHA_ARCH > // PPC_ARCH >-// LINUX_PPC_ARCH (LINUX PPC64) > // OS390_ARCH (means zSeries) > // AS400_ARCH (means iSeries) > // >@@ -72,10 +71,14 @@ > // This brings _WINDOWS_ into scope. Use _WINDOWS_ to wrap Windows code. > # include <windows.h> /* for lots o' stuff, but esp. _WINDOWS_ */ > # include <malloc.h> /* for alloca */ >-#elif defined(IPF_ARCH) || (EM64T_ARCH) || (LINUX_PPC_ARCH) >+#elif defined(IPF_ARCH) || (EM64T_ARCH) > # include <stdint.h> /* for int64_t and uint64_t */ > #endif > >+/* On LinuxPPC64 we need this to get int64_t */ >+#if defined(PPC_ARCH) >+# include </usr/include/sys/types.h> >+#endif > /* Only on OS400, we need this to get malloc/free */ > #ifdef OS400 > #include <stdlib.h> >@@ -113,15 +116,17 @@ > typedef signed long long int int64_t; > typedef unsigned long long int uint64_t; > #else >-#if defined(_WINDOWS_) >+# if defined(_WINDOWS_) > typedef __int64 int64_t; > typedef unsigned __int64 uint64_t; >-#else >-# if !defined(IPF_ARCH) && !defined(EM64T_ARCH) && !defined(LINUX_PPC_ARCH) // Already being declared in stdint.h >- typedef long long int64_t; >+#elif defined(PPC_ARCH) > typedef unsigned long long uint64_t; >+# else >+# if !defined(IPF_ARCH) && !defined(EM64T_ARCH) >+ typedef long long int64_t; >+ typedef unsigned long long uint64_t; > # endif >-#endif >+# endif > #endif > > //------------------------------------------------------------------------------ >@@ -197,7 +202,7 @@ > /////// > #if defined(WIN32) || defined(IA32_ARCH) || defined(IPF_ARCH) || defined(EM64T_ARCH) || defined(ALPHA_ARCH) > # define BIG_ENDIAN_HW >-#elif defined(SPARC_ARCH) || defined(HPPA_ARCH) || defined(PPC_ARCH) || defined(AS400_ARCH) || defined(OS390_ARCH) || defined(LINUX_PPC_ARCH) >+#elif defined(SPARC_ARCH) || defined(HPPA_ARCH) || defined(PPC_ARCH) || defined(AS400_ARCH) || defined(OS390_ARCH) > # define LITTLE_ENDIAN_HW > #else > # error "Platform-specific configuration required" >Index: src-native/BCI/Common/Makefile.include >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/Common/Makefile.include,v >retrieving revision 1.10 >diff -u -r1.10 Makefile.include >--- src-native/BCI/Common/Makefile.include 15 Sep 2006 21:18:28 -0000 1.10 >+++ src-native/BCI/Common/Makefile.include 6 May 2008 14:23:39 -0000 >@@ -108,8 +108,10 @@ > ### > ifdef debug > CFLAGS += -g >+ BUILD_MODE_DIR= debug > else > CFLAGS += $(OPT_FLAG) >+ BUILD_MODE_DIR= release > endif > > CPPFLAGS = -D_UNIX_ $(PLATFORM) >Index: src-native/BCI/Common/JavaDef.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/Common/JavaDef.h,v >retrieving revision 1.5 >diff -u -r1.5 JavaDef.h >--- src-native/BCI/Common/JavaDef.h 24 Mar 2006 22:00:25 -0000 1.5 >+++ src-native/BCI/Common/JavaDef.h 6 May 2008 14:23:39 -0000 >@@ -50,6 +50,7 @@ > #define CONSTANT_InterfaceMethodref 11 // Interface method refernce constant > #define CONSTANT_NameAndType 12 // Name and type constant > >+#define CONSTANT_Unknown 0 > // Array types > #define T_BOOLEAN 4 // bool > #define T_CHAR 5 // char >@@ -60,7 +61,21 @@ > #define T_INT 10 // int > #define T_LONG 11 // long > >-#define CONSTANT_Unknown 0 >+// stack map frame types (new in Java 6.0) >+#define SAME_LOCALS_1_STACK_ITEM_EXTENDED 247 >+#define SAME_FRAME_EXTENDED 251 >+#define FULL_FRAME 255 >+ >+// verification types (new in Java 6.0) >+#define ITEM_Top 0 >+#define ITEM_Integer 1 >+#define ITEM_Float 2 >+#define ITEM_Double 3 >+#define ITEM_Long 4 >+#define ITEM_Null 5 >+#define ITEM_UninitializedThis 6 >+#define ITEM_Object 7 >+#define ITEM_Uninitialized 8 > > // ToDo: other Java specific definitions > typedef unsigned char u1; // 1 byte >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.mak >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.mak,v >retrieving revision 1.6 >diff -u -r1.6 BCIEngJ.mak >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.mak 24 Mar 2006 21:57:56 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.mak 6 May 2008 14:23:36 -0000 >@@ -63,6 +63,7 @@ > !ELSE > CLEAN : > !ENDIF >+ -@erase "$(INTDIR)\class_interface.obj" > -@erase "$(INTDIR)\ExtRefJ_Interface.obj" > -@erase "$(INTDIR)\ExtRefJ_StatMethod.obj" > -@erase "$(INTDIR)\JVMInsSet.obj" >@@ -74,7 +75,7 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /GX /Zi /O2 /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEngJ.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /GX /Zi /O2 /I "..\..\Common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "STATIC_BUILD" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > BSC32=bscmake.exe > BSC32_FLAGS=/nologo /o"$(OUTDIR)\BCIEngJ.bsc" > BSC32_SBRS= \ >@@ -82,6 +83,7 @@ > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEngJ.lib" > LIB32_OBJS= \ >+ "$(INTDIR)\class_interface.obj" \ > "$(INTDIR)\ExtRefJ_Interface.obj" \ > "$(INTDIR)\ExtRefJ_StatMethod.obj" \ > "$(INTDIR)\JVMInsSet.obj" \ >@@ -117,6 +119,8 @@ > !ELSE > CLEAN : > !ENDIF >+ -@erase "$(INTDIR)\class_interface.obj" >+ -@erase "$(INTDIR)\class_interface.sbr" > -@erase "$(INTDIR)\ExtRefJ_Interface.obj" > -@erase "$(INTDIR)\ExtRefJ_Interface.sbr" > -@erase "$(INTDIR)\ExtRefJ_StatMethod.obj" >@@ -133,10 +137,11 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Common" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngJ.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /GZ /c > BSC32=bscmake.exe > BSC32_FLAGS=/nologo /o"$(OUTDIR)\BCIEngJ.bsc" > BSC32_SBRS= \ >+ "$(INTDIR)\class_interface.sbr" \ > "$(INTDIR)\ExtRefJ_Interface.sbr" \ > "$(INTDIR)\ExtRefJ_StatMethod.sbr" \ > "$(INTDIR)\JVMInsSet.sbr" \ >@@ -150,6 +155,7 @@ > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEngJ.lib" > LIB32_OBJS= \ >+ "$(INTDIR)\class_interface.obj" \ > "$(INTDIR)\ExtRefJ_Interface.obj" \ > "$(INTDIR)\ExtRefJ_StatMethod.obj" \ > "$(INTDIR)\JVMInsSet.obj" \ >@@ -205,6 +211,22 @@ > > > !IF "$(CFG)" == "BCIEngJ - Win32 Release" || "$(CFG)" == "BCIEngJ - Win32 Debug" >+SOURCE=.\class_interface.cpp >+ >+!IF "$(CFG)" == "BCIEngJ - Win32 Release" >+ >+ >+"$(INTDIR)\class_interface.obj" : $(SOURCE) "$(INTDIR)" >+ >+ >+!ELSEIF "$(CFG)" == "BCIEngJ - Win32 Debug" >+ >+ >+"$(INTDIR)\class_interface.obj" "$(INTDIR)\class_interface.sbr" : $(SOURCE) "$(INTDIR)" >+ >+ >+!ENDIF >+ > SOURCE=.\ExtRefJ_Interface.cpp > > !IF "$(CFG)" == "BCIEngJ - Win32 Release" >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.mak64 >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.mak64,v >retrieving revision 1.1 >diff -u -r1.1 BCIEngJ.mak64 >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.mak64 19 May 2006 21:06:03 -0000 1.1 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.mak64 6 May 2008 14:23:36 -0000 >@@ -76,11 +76,12 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEngJ.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\\" /I "..\..\common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "STATIC_BUILD" /Fp"$(INTDIR)\BCIEngJ.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEngJ.lib" > LIB32_OBJS= \ >+ "$(INTDIR)\class_interface.obj" \ > "$(INTDIR)\ExtRefJ_Interface.obj" \ > "$(INTDIR)\ExtRefJ_StatMethod.obj" \ > "$(INTDIR)\JVMInsSet.obj" \ >@@ -116,6 +117,8 @@ > !ELSE > CLEAN : > !ENDIF >+ -@erase "$(INTDIR)\class_interface.obj" >+ -@erase "$(INTDIR)\class_interface.sbr" > -@erase "$(INTDIR)\ExtRefJ_Interface.obj" > -@erase "$(INTDIR)\ExtRefJ_Interface.sbr" > -@erase "$(INTDIR)\ExtRefJ_StatMethod.obj" >@@ -131,16 +134,17 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\..\Common" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngJ.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /Zi /Od /I "..\..\Common" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngJ.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEngJ.lib" > LIB32_OBJS= \ >+ "$(INTDIR)\class_interface.obj" \ > "$(INTDIR)\ExtRefJ_Interface.obj" \ > "$(INTDIR)\ExtRefJ_StatMethod.obj" \ > "$(INTDIR)\JVMInsSet.obj" \ > "$(INTDIR)\ModuleJ.obj" \ >- "..\Debug\BCIEng.lib" \ >- "..\..\JClass\Debug\JClassStat.lib" >+ "..\Release\BCIEng.lib" \ >+ "..\..\JClass\Release\JClassStat.lib" > > "$(OUTDIR)\BCIEngJ.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) > $(LIB32) @<< >@@ -170,6 +174,7 @@ > !ELSE > CLEAN : > !ENDIF >+ -@erase "$(INTDIR)\class_interface.obj" > -@erase "$(INTDIR)\ExtRefJ_Interface.obj" > -@erase "$(INTDIR)\ExtRefJ_StatMethod.obj" > -@erase "$(INTDIR)\JVMInsSet.obj" >@@ -181,11 +186,12 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\BCIEngJ.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MT /W3 /EHsc /Zi /O2 /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "STATIC_BUILD" /Fp"$(INTDIR)\BCIEngJ.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEngJ.lib" > LIB32_OBJS= \ >+ "$(INTDIR)\class_interface.obj" \ > "$(INTDIR)\ExtRefJ_Interface.obj" \ > "$(INTDIR)\ExtRefJ_StatMethod.obj" \ > "$(INTDIR)\JVMInsSet.obj" \ >@@ -221,6 +227,7 @@ > !ELSE > CLEAN : > !ENDIF >+ -@erase "$(INTDIR)\class_interface.obj" > -@erase "$(INTDIR)\ExtRefJ_Interface.obj" > -@erase "$(INTDIR)\ExtRefJ_Interface.sbr" > -@erase "$(INTDIR)\ExtRefJ_StatMethod.obj" >@@ -236,10 +243,11 @@ > "$(OUTDIR)" : > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\..\Common" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngJ.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MTd /W3 /Gm /EHsc /Zi /Od /I "..\..\Common" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\BCIEngJ.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > LIB32=link.exe -lib > LIB32_FLAGS=/nologo /out:"$(OUTDIR)\BCIEngJ.lib" > LIB32_OBJS= \ >+ "$(INTDIR)\class_interface.obj" \ > "$(INTDIR)\ExtRefJ_Interface.obj" \ > "$(INTDIR)\ExtRefJ_StatMethod.obj" \ > "$(INTDIR)\JVMInsSet.obj" \ >@@ -285,7 +293,43 @@ > << > > >+!IF "$(NO_EXTERNAL_DEPS)" != "1" >+!IF EXISTS("BCIEngJ.dep") >+!INCLUDE "BCIEngJ.dep" >+!ELSE >+!MESSAGE Warning: cannot find "BCIEngJ.dep" >+!ENDIF >+!ENDIF >+ >+ > !IF "$(CFG)" == "BCIEngJ - IA64 Release" || "$(CFG)" == "BCIEngJ - IA64 Debug" || "$(CFG)" == "BCIEngJ - X64 Release" || "$(CFG)" == "BCIEngJ - X64 Debug" >+SOURCE=.\class_interface.cpp >+ >+!IF "$(CFG)" == "BCIEngJ - IA64 Release" >+ >+ >+"$(INTDIR)\class_interface.obj" : $(SOURCE) "$(INTDIR)" >+ >+ >+!ELSEIF "$(CFG)" == "BCIEngJ - IA64 Debug" >+ >+ >+"$(INTDIR)\class_interface.obj" "$(INTDIR)\class_interface.sbr" : $(SOURCE) "$(INTDIR)" >+ >+ >+!ELSEIF "$(CFG)" == "BCIEngJ - X64 Release" >+ >+ >+"$(INTDIR)\class_interface.obj" : $(SOURCE) "$(INTDIR)" >+ >+ >+!ELSEIF "$(CFG)" == "BCIEngJ - X64 Debug" >+ >+ >+"$(INTDIR)\class_interface.obj" "$(INTDIR)\class_interface.sbr" : $(SOURCE) "$(INTDIR)" >+ >+!ENDIF >+ > SOURCE=.\ExtRefJ_Interface.cpp > > !IF "$(CFG)" == "BCIEngJ - IA64 Release" >Index: src-native/BCI/BCIEng/BCIEngJ/ModuleJ.cpp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/ModuleJ.cpp,v >retrieving revision 1.8 >diff -u -r1.8 ModuleJ.cpp >--- src-native/BCI/BCIEng/BCIEngJ/ModuleJ.cpp 10 Apr 2006 03:56:40 -0000 1.8 >+++ src-native/BCI/BCIEng/BCIEngJ/ModuleJ.cpp 6 May 2008 14:23:36 -0000 >@@ -34,8 +34,9 @@ > #include <iostream> > #endif > >-static CInsSetJ InsSet; >+#include <assert.h> > >+static CInsSetJ InsSet; > //============================================================================== > // CModuleJ implementation > //------------------------------------------------------------------------------ >@@ -51,6 +52,10 @@ > m_fDestroyClass = false; > m_fAccessFlags = 0; > m_sourceFileNamesPopulated = false; >+ m_verificationContext = NULL; >+ m_classHandler = NULL; >+ m_methodContexts = NULL; >+ m_use_stack_map_recalculation = false; > } > > //------------------------------------------------------------------------------ >@@ -63,6 +68,18 @@ > { > delete m_pClass; > } >+ if (m_verificationContext != NULL) { >+ free_verification_context(m_verificationContext); >+ m_verificationContext = NULL; >+ } >+ if (m_classHandler != NULL) { >+ class_destroy_handler(m_classHandler); >+ m_classHandler = NULL; >+ } >+ if (m_methodContexts != NULL) { >+ free(m_methodContexts); >+ m_methodContexts = NULL; >+ } > } > > //------------------------------------------------------------------------------ >@@ -83,6 +100,7 @@ > m_fDestroyClass = true; > FileStreamIn.Close(); > Verify(); >+ > } > > //------------------------------------------------------------------------------ >@@ -184,7 +202,7 @@ > } > > //------------------------------------------------------------------------------ >-void >+int > CModuleJ::Parse() > { > CJMethods* pMethods = m_pClass->GetMethods(); >@@ -227,12 +245,41 @@ > } > m_pMethods->push_back(pMtd); > } >+ >+ vf_Result status; >+ int ind; >+ if (GetClassBuilder().GetMajorVersion() >= 50 >+ && IsStackMapCalculationUsed()) { >+ m_classHandler = get_class_handler_from_builder(this); >+ assert(m_classHandler); >+ m_verificationContext = allocate_verification_context(m_classHandler); >+ assert(m_verificationContext); >+ m_methodContexts = (method_handler *)malloc(m_pMethods->size() * sizeof(method_handler)); >+ assert(m_methodContexts); >+ memset(m_methodContexts, 0, m_pMethods->size() * sizeof(method_handler)); >+ //fprintf(stderr, "class : %s is java6 compiled\n", m_strName.c_str()); >+ } > > CMethods::iterator iterm; >- for(iterm = m_pMethods->begin(); iterm < m_pMethods->end(); iterm++) >+ for(iterm = m_pMethods->begin(), ind = 0; iterm < m_pMethods->end(); iterm++, ind++) > { > (*iterm)->Parse(); >+ if (GetClassBuilder().GetMajorVersion() >= 50 >+ && IsStackMapCalculationUsed()) { >+ m_methodContexts[ind] = get_method_handler_for_cmethod(*iterm); >+ assert(m_methodContexts[ind]); >+ status = init_verification_context_for_method(m_methodContexts[ind], m_verificationContext); >+ >+ if (status != VF_OK) { >+ //fprintf(stderr, "class was skiped: %s\n", m_strName.c_str()); >+ return (1); /*skip*/ >+ } >+ //fprintf(stderr, "class was instrumented: %s\n", m_strName.c_str()); >+ ((CMethodJ *)(*iterm))->SetMethodHandler(m_methodContexts[ind]); >+ >+ } > } >+ return (0); > } > > //------------------------------------------------------------------------------ >@@ -385,8 +432,11 @@ > m_pMtdExTable->Emit(); > > //------- >- // Loop over instructions and patch the local variable info table >+ // Loop over instructions and patch the local variable info table, >+ // local variable type table (Java 5.0) and stack map table (Java 6.0) > // >+ >+ > > // Local variable table LVT > CLocalVariableTableAttribute* pLclAttr = m_pCodeAttr->GetLocalVariables(); >@@ -403,6 +453,13 @@ > CLocalVariableTypeTable LclTypeTableSav; > CLocalVariableTypeTable::iterator itrLclType, itrLclTypeSav; // LVTT Iterator > >+ // The smtNull variable is for reference initialization in case the method does not have >+ // a Stack Map Table attribute >+ CStackMapTable smtNull; >+ CStackMapTableAttribute* pSmtAttr = m_pCodeAttr->GetStackMaps(); >+ CStackMapTable& StackMapTable = pSmtAttr?pSmtAttr->GetStackMapTable():smtNull; >+ CStackMapTable::iterator itrStackMapFrame = StackMapTable.begin(); >+ > CInsBlocks::iterator iterBlocks; > IP_t ip = 0; > >@@ -458,6 +515,18 @@ > } > } > } >+ >+ // Scan for a relevant entry in the Stack Map Table and fix it >+ while (itrStackMapFrame != StackMapTable.end() >+ && (*itrStackMapFrame)->GetByteCodeOffset() < ipOrig) >+ { >+ ++itrStackMapFrame; >+ } >+ if (itrStackMapFrame != StackMapTable.end() >+ && (*itrStackMapFrame)->GetByteCodeOffset() == ipOrig) >+ { >+ (*itrStackMapFrame)->SetByteCodeOffset(ip); >+ } > > // Advance ip > ip += (*iterIns)->GetSize(ip); >@@ -503,11 +572,35 @@ > } > } > } >+ // Replace the method body >+ m_pCodeAttr->SetCode(m_pBody->GetCodeSize(), m_pBody->GiveAvayCode()); > >+ // Calculate new stack depth > CalcStackDepth(); > >- // Replace the method body >- m_pCodeAttr->SetCode(m_pBody->GetCodeSize(), m_pBody->GiveAvayCode()); >+ if (((CModuleJ *)GetModule())->GetClassBuilder().GetMajorVersion() >= 50 >+ && ((CModuleJ *)GetModule())->IsStackMapCalculationUsed()) { >+ >+ u1 *tbl; >+ vf_Result status; >+ status = recompute_stackmaptable((uint8 **)&tbl, m_methodHandler, ((CModuleJ *)GetModule())->GetVerificationContext()); >+ if (status != VF_OK) { >+ throw CModuleException(CModuleException::X_REASON_VERIFICATION_FAILED, "stack map recalcualtion failed"); >+ } >+ else { >+ //CStackMapTable smt (tbl); >+ CStackMapTableAttribute* smta = GetCodeAttribute()->GetOrCreateStackMaps(); >+ if (tbl != NULL) { >+ smta->RereadFromBuffer(tbl); //skiping name >+ smta->GetStackMapTable().AdjustOffsetDeltas(); >+ } >+ } >+ } >+ // Final Stack Map Table handling: adjust offset deltas >+ //StackMapTable.AdjustOffsetDeltas(); >+ >+ >+ > > } > >@@ -628,6 +721,7 @@ > } > } > } >+ > CJException jex = CJException(uType, ipStart, ipRealEnd, ipHandler); > extblj.push_back(jex); > } >Index: src-native/BCI/BCIEng/BCIEngJ/Makefile.unix >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/Makefile.unix,v >retrieving revision 1.7 >diff -u -r1.7 Makefile.unix >--- src-native/BCI/BCIEng/BCIEngJ/Makefile.unix 24 Mar 2006 21:57:56 -0000 1.7 >+++ src-native/BCI/BCIEng/BCIEngJ/Makefile.unix 6 May 2008 14:23:36 -0000 >@@ -14,9 +14,12 @@ > include ../../makefile.include > > CPPFLAGS += -I../../Common -I.. -I../../JClass >+CPPFLAGS += -I../../../../../org.apache.harmony_vmcore_verifier/src/include -I../../../../../org.apache.harmony_vmcore_verifier/src/vmcore/include -I../../../../../org.apache.harmony_vmcore_verifier/src/vmcore/src/verifier-3363/x_verifier >+CPPFLAGS += -DSTATIC_BUILD -DLINUX -DPLATFORM_POSIX > CFLAGS += $(PIC_FLAG) > >-OBJS = ExtRefJ_Interface.o \ >+OBJS = class_interface.o \ >+ ExtRefJ_Interface.o \ > ExtRefJ_StatMethod.o \ > JVMInsSet.o \ > ModuleJ.o >Index: src-native/BCI/BCIEng/BCIEngJ/ModuleJ.h >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/ModuleJ.h,v >retrieving revision 1.8 >diff -u -r1.8 ModuleJ.h >--- src-native/BCI/BCIEng/BCIEngJ/ModuleJ.h 10 Apr 2006 03:56:40 -0000 1.8 >+++ src-native/BCI/BCIEng/BCIEngJ/ModuleJ.h 6 May 2008 14:23:36 -0000 >@@ -28,6 +28,7 @@ > #pragma warning(disable:4786) > #endif > >+#include "class_inerface_int.h" > #include "Module.h" > #include "JClassBuilder.h" > >@@ -57,19 +58,22 @@ > virtual void Open(CJClassBuilder* io_pClass, bool i_fDestroyClass = false); > virtual void AddExtRef(CExtRef& i_ExtRef); > virtual void AddStringAttrib(CSTR i_szName, CSTR i_szValue); >- virtual void Parse(); >+ virtual int Parse(); > virtual void Emit(); > > void Emit(CJStream& i_jstream); // Java specific emission > CJClassFile& GetClass(); > CJClassBuilder& GetClassBuilder(); >+ class_handler GetClassHandler() {return m_classHandler;} >+ verification_context GetVerificationContext(){return m_verificationContext;} > > virtual const vector<string>& GetSourceFileNames(); > > // Module modification methods > CCPFieldrefInfo* CreateFieldRef(u2 i_u2AccFlags, CSTR i_szName, CJavaType i_jtype); > CMethodJ* CreateMethod(u2 i_u2AccFlags, CSTR i_szName, CSTR i_szSignature); >- >+ bool IsStackMapCalculationUsed() const {return m_use_stack_map_recalculation;} >+ void UseStackMapCalculation(bool a_use_stack_map_recalculation) {m_use_stack_map_recalculation = a_use_stack_map_recalculation;} > protected: > > private: >@@ -85,6 +89,10 @@ > // Storage in support of GetSourceFileNames: > vector<string> m_sourceFileNames; > bool m_sourceFileNamesPopulated; >+ verification_context m_verificationContext; /*verifier context for support java 6.0 and latter*/ >+ class_handler m_classHandler; /* class descriptor used for verification needs(recalculations) introduced in java 6.0*/ >+ method_handler *m_methodContexts; /*collections of method handlers*/ >+ bool m_use_stack_map_recalculation; > }; > > //============================================================================== >@@ -100,6 +108,8 @@ > m_strSignature = i_szSignature; > m_pCodeAttr = i_pCodeAttr; > m_u2AccessFlags = i_u2AccessFlags; >+ m_methodHandler = NULL; >+ > > // Set the "hasThis" attribute, which is accessible to all CMethod users > SetHasThis(!(m_u2AccessFlags & ACC_STATIC)); >@@ -110,6 +120,8 @@ > CSTR GetSignature() const {return m_strSignature.c_str();} > bool IsAbstract() { return ((m_u2AccessFlags & ACC_ABSTRACT) != 0); }; > u2 GetAccessFlags() const { return m_u2AccessFlags; } >+ void SetMethodHandler(method_handler i_methodHandler) {m_methodHandler = i_methodHandler;} >+ method_handler GetMethodHandler() {return m_methodHandler;} > > virtual void Parse(); > virtual void Emit(); >@@ -121,6 +133,7 @@ > CCodeAttribute* m_pCodeAttr; // Code attribute from CJClassFile > u2 m_u2AccessFlags; // Method access flags > IP_t m_origCodeLength; // Saved code length from Parse to Emit >+ method_handler m_methodHandler; > }; > > >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.dep >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.dep,v >retrieving revision 1.6 >diff -u -r1.6 BCIEngJ.dep >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.dep 24 Mar 2006 21:57:24 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.dep 6 May 2008 14:23:36 -0000 >@@ -12,7 +12,35 @@ > > # Microsoft Developer Studio Generated Dependency File, included by BCIEngJ.mak > >+.\class_interface.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ >+ "..\..\common\commondef.h"\ >+ "..\..\common\javadef.h"\ >+ "..\..\Common\JavaHelpers.h"\ >+ "..\..\JClass\JBaseStream.h"\ >+ "..\..\JClass\JClassBuilder.h"\ >+ "..\..\JClass\JClassFile.h"\ >+ "..\..\JClass\JMemStream.h"\ >+ "..\..\JClass\JStream.h"\ >+ "..\BCIEng.h"\ >+ "..\InsSet.h"\ >+ "..\Module.h"\ >+ ".\class_inerface_int.h"\ >+ ".\ModuleJ.h"\ >+ >+ > .\ExtRefJ_Interface.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\common\commondef.h"\ > "..\..\common\javadef.h"\ > "..\..\Common\JavaHelpers.h"\ >@@ -22,11 +50,18 @@ > "..\..\JClass\JStream.h"\ > "..\InsSet.h"\ > "..\Module.h"\ >+ ".\class_inerface_int.h"\ > ".\ExtRefJ_Interface.h"\ > ".\ModuleJ.h"\ > > > .\ExtRefJ_StatMethod.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\common\commondef.h"\ > "..\..\common\javadef.h"\ > "..\..\Common\JavaHelpers.h"\ >@@ -36,11 +71,18 @@ > "..\..\JClass\JStream.h"\ > "..\InsSet.h"\ > "..\Module.h"\ >+ ".\class_inerface_int.h"\ > ".\ExtRefJ_StatMethod.h"\ > ".\ModuleJ.h"\ > > > .\JVMInsSet.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\common\commondef.h"\ > "..\..\common\javadef.h"\ > "..\..\Common\JavaHelpers.h"\ >@@ -50,12 +92,19 @@ > "..\..\JClass\JStream.h"\ > "..\InsSet.h"\ > "..\Module.h"\ >+ ".\class_inerface_int.h"\ > ".\jvmins.def"\ > ".\JVMInsSet.h"\ > ".\ModuleJ.h"\ > > > .\ModuleJ.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\common\commondef.h"\ > "..\..\common\javadef.h"\ > "..\..\Common\JavaHelpers.h"\ >@@ -66,6 +115,7 @@ > "..\..\JClass\JStream.h"\ > "..\InsSet.h"\ > "..\Module.h"\ >+ ".\class_inerface_int.h"\ > ".\JVMInsSet.h"\ > ".\ModuleJ.h"\ > >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.dsp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.dsp,v >retrieving revision 1.5 >diff -u -r1.5 BCIEngJ.dsp >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.dsp 24 Mar 2006 21:57:56 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJ.dsp 6 May 2008 14:23:36 -0000 >@@ -41,7 +41,7 @@ > # PROP Intermediate_Dir "Release" > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c >-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c >+# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "..\..\Common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "STATIC_BUILD" /YX /FD /c > # ADD BASE RSC /l 0x409 /d "NDEBUG" > # ADD RSC /l 0x409 /d "NDEBUG" > BSC32=bscmake.exe >@@ -64,7 +64,8 @@ > # PROP Intermediate_Dir "Debug" > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c >-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Common" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FR /YX /FD /GZ /c >+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\Common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "..\\" /I "..\..\jclass" /I "..\..\..\sun" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "STATIC_BUILD" /FR /FD /GZ /c >+# SUBTRACT CPP /YX > # ADD BASE RSC /l 0x409 /d "_DEBUG" > # ADD RSC /l 0x409 /d "_DEBUG" > BSC32=bscmake.exe >@@ -85,6 +86,10 @@ > # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > # Begin Source File > >+SOURCE=.\class_interface.cpp >+# End Source File >+# Begin Source File >+ > SOURCE=.\ExtRefJ_Interface.cpp > # End Source File > # Begin Source File >@@ -93,6 +98,10 @@ > # End Source File > # Begin Source File > >+SOURCE=..\InsSet.cpp >+# End Source File >+# Begin Source File >+ > SOURCE=.\JVMInsSet.cpp > # End Source File > # Begin Source File >@@ -105,6 +114,10 @@ > # PROP Default_Filter "h;hpp;hxx;hm;inl" > # Begin Source File > >+SOURCE=.\class_inerface_int.h >+# End Source File >+# Begin Source File >+ > SOURCE=.\ExtRefJ_Interface.h > # End Source File > # Begin Source File >Index: src-native/BCI/JDump/JDump.dep >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JDump/JDump.dep,v >retrieving revision 1.5 >diff -u -r1.5 JDump.dep >--- src-native/BCI/JDump/JDump.dep 24 Mar 2006 22:01:33 -0000 1.5 >+++ src-native/BCI/JDump/JDump.dep 6 May 2008 14:23:40 -0000 >@@ -22,8 +22,8 @@ > "..\BCIEng\InsSet.h"\ > "..\BCIEng\Module.h"\ > "..\Common\Command.h"\ >- "..\common\commondef.h"\ >- "..\JClass\JavaDef.h"\ >+ "..\Common\commondef.h"\ >+ "..\Common\JavaDef.h"\ > "..\JClass\JBaseStream.h"\ > "..\JClass\JClassFile.h"\ > "..\JClass\JFileStream.h"\ >Index: src-native/BCI/JDump/JDump.mak >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JDump/JDump.mak,v >retrieving revision 1.5 >diff -u -r1.5 JDump.mak >--- src-native/BCI/JDump/JDump.mak 24 Mar 2006 22:01:33 -0000 1.5 >+++ src-native/BCI/JDump/JDump.mak 6 May 2008 14:23:40 -0000 >@@ -117,7 +117,7 @@ > << > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib user32.lib JclassStat.lib ..\bcieng\release\bcieng.lib ..\bcieng\bciengj\release\bciengj.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\JDump.pdb" /machine:I386 /out:"$(OUTDIR)\JDump.exe" /libpath:"..\JClass\Release" >+LINK32_FLAGS=kernel32.lib user32.lib JclassStat.lib ..\bcieng\release\bcieng.lib ..\bcieng\bciengj\release\bciengj.lib verifier.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\JDump.pdb" /machine:I386 /out:"$(OUTDIR)\JDump.exe" /libpath:"..\JClass\Release" /libpath:"..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\Command.obj" \ > "$(INTDIR)\JDump.obj" \ >@@ -212,7 +212,7 @@ > << > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib JClassStat.lib ..\bcieng\debug\bcieng.lib ..\bcieng\bciengj\debug\bciengj.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\JDump.pdb" /map:"$(INTDIR)\JDump.map" /debug /machine:I386 /out:"$(OUTDIR)\JDump.exe" /libpath:"..\JClass\debug\\" /fixed:no >+LINK32_FLAGS=kernel32.lib JClassStat.lib ..\bcieng\debug\bcieng.lib ..\bcieng\bciengj\debug\bciengj.lib verifier.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\JDump.pdb" /map:"$(INTDIR)\JDump.map" /debug /machine:I386 /out:"$(OUTDIR)\JDump.exe" /libpath:"..\JClass\debug" /libpath:"..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" /fixed:no > LINK32_OBJS= \ > "$(INTDIR)\Command.obj" \ > "$(INTDIR)\JDump.obj" \ >Index: src-native/BCI/JDump/JDump.dsp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/JDump/JDump.dsp,v >retrieving revision 1.4 >diff -u -r1.4 JDump.dsp >--- src-native/BCI/JDump/JDump.dsp 24 Mar 2006 22:01:33 -0000 1.4 >+++ src-native/BCI/JDump/JDump.dsp 6 May 2008 14:23:40 -0000 >@@ -23,6 +23,8 @@ > > # Begin Project > # PROP AllowPerConfigDependencies 0 >+# PROP Scc_ProjName "" >+# PROP Scc_LocalPath "" > CPP=cl.exe > RSC=rc.exe > >@@ -48,7 +50,7 @@ > # ADD BSC32 /nologo > LINK32=link.exe > # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 >-# ADD LINK32 kernel32.lib user32.lib JclassStat.lib ..\bcieng\release\bcieng.lib ..\bcieng\bciengj\release\bciengj.lib /nologo /subsystem:console /machine:I386 /libpath:"..\JClass\Release" >+# ADD LINK32 kernel32.lib user32.lib JclassStat.lib ..\bcieng\release\bcieng.lib ..\bcieng\bciengj\release\bciengj.lib verifier.lib /nologo /subsystem:console /machine:I386 /libpath:"..\JClass\Release" /libpath:"..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > > !ELSEIF "$(CFG)" == "JDump - Win32 Debug" > >@@ -72,7 +74,7 @@ > # ADD BSC32 /nologo > LINK32=link.exe > # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept >-# ADD LINK32 kernel32.lib JClassStat.lib ..\bcieng\debug\bcieng.lib ..\bcieng\bciengj\debug\bciengj.lib /nologo /subsystem:console /incremental:no /map /debug /machine:I386 /libpath:"..\JClass\debug\\" /fixed:no >+# ADD LINK32 kernel32.lib JClassStat.lib ..\bcieng\debug\bcieng.lib ..\bcieng\bciengj\debug\bciengj.lib verifier.lib /nologo /subsystem:console /incremental:no /map /debug /machine:I386 /libpath:"..\JClass\debug" /libpath:"..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" /fixed:no > # SUBTRACT LINK32 /pdb:none > > !ENDIF >Index: src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.dep >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.dep,v >retrieving revision 1.5 >diff -u -r1.5 ProbeUnitTests.dep >--- src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.dep 24 Mar 2006 21:59:29 -0000 1.5 >+++ src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.dep 6 May 2008 14:23:38 -0000 >@@ -2,13 +2,23 @@ > # Hand-edited by apratt to remove absolute paths and other silliness > > ..\BCIEngProbe\BCIEngProbe.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\common\commondef.h"\ >- "..\..\JClass\JavaDef.h"\ >+ "..\..\common\javadef.h"\ >+ "..\..\Common\JavaHelpers.h"\ > "..\..\JClass\JBaseStream.h"\ >+ "..\..\JClass\JClassBuilder.h"\ > "..\..\JClass\JClassFile.h"\ > "..\..\JClass\JMemStream.h"\ > "..\..\JClass\JStream.h"\ > "..\BCIEng.h"\ >+ "..\bcienginterface.h"\ >+ "..\BCIEngJ\class_inerface_int.h"\ > "..\BCIEngJ\ExtRefJ_StatMethod.h"\ > "..\BCIEngJ\JVMInsSet.h"\ > "..\BCIEngJ\ModuleJ.h"\ >@@ -18,12 +28,21 @@ > > > .\ProbeUnitTests.cpp : \ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ > "..\..\common\commondef.h"\ >- "..\..\JClass\JavaDef.h"\ >+ "..\..\common\javadef.h"\ >+ "..\..\Common\JavaHelpers.h"\ > "..\..\JClass\JBaseStream.h"\ >+ "..\..\JClass\JClassBuilder.h"\ > "..\..\JClass\JClassFile.h"\ > "..\..\JClass\JStream.h"\ > "..\BCIEng.h"\ >+ "..\BCIEngJ\class_inerface_int.h"\ > "..\BCIEngJ\ModuleJ.h"\ > "..\BCIEngProbe\BCIEngProbe.h"\ > "..\InsSet.h"\ >Index: src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.mak >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.mak,v >retrieving revision 1.6 >diff -u -r1.6 ProbeUnitTests.mak >--- src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.mak 24 Mar 2006 21:59:29 -0000 1.6 >+++ src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.mak 6 May 2008 14:23:38 -0000 >@@ -62,7 +62,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\ProbeUnitTests.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\ProbeUnitTests.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -100,7 +100,7 @@ > BSC32_SBRS= \ > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib ..\..\jclass\release\jclassstat.lib ..\release\bcieng.lib ..\bciengj\release\bciengj.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /machine:I386 /out:"$(OUTDIR)\ProbeUnitTests.exe" >+LINK32_FLAGS=verifier.lib kernel32.lib ..\..\jclass\release\jclassstat.lib ..\release\bcieng.lib ..\bciengj\release\bciengj.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /machine:I386 /out:"$(OUTDIR)\ProbeUnitTests.exe" /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\ProbeUnitTests.obj" \ >@@ -141,7 +141,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeUnitTests.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeUnitTests.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -187,7 +187,7 @@ > << > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib ..\..\jclass\debug\jclassstat.lib ..\debug\bcieng.lib ..\bciengj\debug\bciengj.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /debug /machine:I386 /out:"$(OUTDIR)\ProbeUnitTests.exe" /pdbtype:sept >+LINK32_FLAGS=verifier.lib kernel32.lib ..\..\jclass\debug\jclassstat.lib ..\debug\bcieng.lib ..\bciengj\debug\bciengj.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /debug /machine:I386 /out:"$(OUTDIR)\ProbeUnitTests.exe" /pdbtype:sept /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\ProbeUnitTests.obj" \ >@@ -249,7 +249,7 @@ > > !IF "$(CFG)" == "ProbeUnitTests - Win32 Release" > >-CPP_SWITCHES=/nologo /MD /W3 /GX /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_SWITCHES=/nologo /MD /W3 /GX /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c > > "$(INTDIR)\StdAfx.obj" "$(INTDIR)\ProbeUnitTests.pch" : $(SOURCE) "$(INTDIR)" > $(CPP) @<< >@@ -259,7 +259,7 @@ > > !ELSEIF "$(CFG)" == "ProbeUnitTests - Win32 Debug" > >-CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c > > "$(INTDIR)\StdAfx.obj" "$(INTDIR)\StdAfx.sbr" "$(INTDIR)\ProbeUnitTests.pch" : $(SOURCE) "$(INTDIR)" > $(CPP) @<< >Index: src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.mak64 >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.mak64,v >retrieving revision 1.1 >diff -u -r1.1 ProbeUnitTests.mak64 >--- src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.mak64 19 May 2006 21:06:04 -0000 1.1 >+++ src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.mak64 6 May 2008 14:23:39 -0000 >@@ -64,7 +64,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MD /W3 /EHsc /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MD /W3 /EHsc /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -99,7 +99,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib ..\..\jclass\release\jclassstat.lib ..\release\bcieng.lib ..\bciengj\release\bciengj.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /out:"$(OUTDIR)\ProbeUnitTests.exe" /machine:IA64 >+LINK32_FLAGS=verifier.lib kernel32.lib ..\..\jclass\release\jclassstat.lib ..\release\bcieng.lib ..\bciengj\release\bciengj.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /out:"$(OUTDIR)\ProbeUnitTests.exe" /machine:IA64 /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\ProbeUnitTests.obj" \ >@@ -139,7 +139,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -174,7 +174,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib ..\..\jclass\debug\jclassstat.lib ..\debug\bcieng.lib ..\bciengj\debug\bciengj.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /debug /out:"$(OUTDIR)\ProbeUnitTests.exe" /machine:IA64 >+LINK32_FLAGS=verifier.lib kernel32.lib ..\..\jclass\debug\jclassstat.lib ..\debug\bcieng.lib ..\bciengj\debug\bciengj.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /debug /out:"$(OUTDIR)\ProbeUnitTests.exe" /machine:IA64 /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\ProbeUnitTests.obj" \ >@@ -208,7 +208,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MD /W3 /EHsc /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MD /W3 /EHsc /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -243,7 +243,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib ..\..\jclass\release\jclassstat.lib ..\release\bcieng.lib ..\bciengj\release\bciengj.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /out:"$(OUTDIR)\ProbeUnitTests.exe" /machine:AMD64 >+LINK32_FLAGS=verifier.lib kernel32.lib ..\..\jclass\release\jclassstat.lib ..\release\bcieng.lib ..\bciengj\release\bciengj.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /out:"$(OUTDIR)\ProbeUnitTests.exe" /machine:AMD64 /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\ProbeUnitTests.obj" \ >@@ -283,7 +283,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\ProbeUnitTests.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -318,7 +318,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib ..\..\jclass\debug\jclassstat.lib ..\debug\bcieng.lib ..\bciengj\debug\bciengj.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /debug /out:"$(OUTDIR)\ProbeUnitTests.exe" /machine:AMD64 >+LINK32_FLAGS=verifier.lib kernel32.lib ..\..\jclass\debug\jclassstat.lib ..\debug\bcieng.lib ..\bciengj\debug\bciengj.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\ProbeUnitTests.pdb" /debug /out:"$(OUTDIR)\ProbeUnitTests.exe" /machine:AMD64 /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngProbe.obj" \ > "$(INTDIR)\ProbeUnitTests.obj" \ >Index: src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.dsp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.dsp,v >retrieving revision 1.5 >diff -u -r1.5 ProbeUnitTests.dsp >--- src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.dsp 24 Mar 2006 21:59:29 -0000 1.5 >+++ src-native/BCI/BCIEng/ProbeUnitTests/ProbeUnitTests.dsp 6 May 2008 14:23:38 -0000 >@@ -23,6 +23,8 @@ > > # Begin Project > # PROP AllowPerConfigDependencies 0 >+# PROP Scc_ProjName "" >+# PROP Scc_LocalPath "" > CPP=cl.exe > RSC=rc.exe > >@@ -40,7 +42,7 @@ > # PROP Ignore_Export_Lib 0 > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /c >-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c >+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /YX /FD /c > # ADD BASE RSC /l 0x409 /d "NDEBUG" > # ADD RSC /l 0x409 /d "NDEBUG" > BSC32=bscmake.exe >@@ -48,7 +50,8 @@ > # ADD BSC32 /nologo > LINK32=link.exe > # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 >-# ADD LINK32 kernel32.lib ..\..\jclass\release\jclassstat.lib ..\release\bcieng.lib ..\bciengj\release\bciengj.lib /nologo /subsystem:console /machine:I386 >+# ADD LINK32 verifier.lib kernel32.lib ..\..\jclass\release\jclassstat.lib ..\release\bcieng.lib ..\bciengj\release\bciengj.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libcmt" /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" >+# SUBTRACT LINK32 /pdb:none > > !ELSEIF "$(CFG)" == "ProbeUnitTests - Win32 Debug" > >@@ -64,7 +67,7 @@ > # PROP Ignore_Export_Lib 0 > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c >-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c >+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\BCIEngProbe" /I "..\BCIEngJ" /I ".." /I "..\..\JClass" /I "..\..\common" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /FR /YX /FD /GZ /c > # ADD BASE RSC /l 0x409 /d "_DEBUG" > # ADD RSC /l 0x409 /d "_DEBUG" > BSC32=bscmake.exe >@@ -72,7 +75,7 @@ > # ADD BSC32 /nologo > LINK32=link.exe > # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept >-# ADD LINK32 kernel32.lib ..\..\jclass\debug\jclassstat.lib ..\debug\bcieng.lib ..\bciengj\debug\bciengj.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept >+# ADD LINK32 verifier.lib kernel32.lib ..\..\jclass\debug\jclassstat.lib ..\debug\bcieng.lib ..\bciengj\debug\bciengj.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" > > !ENDIF > >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BCIEngJTest.cpp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BCIEngJTest.cpp,v >retrieving revision 1.6 >diff -u -r1.6 BCIEngJTest.cpp >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BCIEngJTest.cpp 24 Mar 2006 21:58:18 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BCIEngJTest.cpp 6 May 2008 14:23:36 -0000 >@@ -144,10 +144,10 @@ > void > CBCIEngJTest::OpenClass(const char* i_szClassName) > { >- CJFileStream InStream(i_szClassName); // File stream >- CJStream JStreamIn(&InStream); // Java input stream >+ CJFileStream InStream(i_szClassName); // File stream >+ CJStream JStreamIn(&InStream); // Java input stream > CModuleJ* pModuleJ = new CModuleJ; >- CJClassFile* pClass = new CJClassFile; // Will be deleted in the module destructor >+ CJClassBuilder* pClass = new CJClassBuilder; // Will be deleted in the module destructor > pClass->Read(JStreamIn); > pModuleJ->Open(pClass, true); > pModuleJ->SetAccessFlags(pClass->GetAccessFlags()); >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.mak64 >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.mak64,v >retrieving revision 1.1 >diff -u -r1.1 BciEngJTest.mak64 >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.mak64 19 May 2006 21:06:02 -0000 1.1 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.mak64 6 May 2008 14:23:36 -0000 >@@ -60,7 +60,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MD /W3 /EHsc /O2 /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\BciEngJTest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MD /W3 /EHsc /O2 /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\BciEngJTest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -95,7 +95,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib JClassStat.lib BCIEng.lib BCIEngJ.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Release" /libpath:"..\..\Release" /libpath:"..\Release" /machine:IA64 >+LINK32_FLAGS=BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib verifier.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Release" /libpath:"..\..\Release" /libpath:"..\Release" /machine:IA64 /libpath:"..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngJTest.obj" > >@@ -126,7 +126,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\BciEngJTest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\BciEngJTest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -161,7 +161,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /debug /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Debug" /libpath:"..\..\Debug" /libpath:"..\Debug" /fixed:no /machine:IA64 >+LINK32_FLAGS=BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib verifier.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /debug /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Debug" /libpath:"..\..\Debug" /libpath:"..\Debug" /fixed:no /machine:IA64 /libpath:"..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngJTest.obj" > >@@ -190,7 +190,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MD /W3 /EHsc /O2 /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\BciEngJTest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MD /W3 /EHsc /O2 /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\BciEngJTest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -225,7 +225,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib JClassStat.lib BCIEng.lib BCIEngJ.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Release" /libpath:"..\..\Release" /libpath:"..\Release" /machine:AMD64 >+LINK32_FLAGS=kernel32.lib JClassStat.lib BCIEng.lib BCIEngJ.lib verifier.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Release" /libpath:"..\..\Release" /libpath:"..\Release" /machine:AMD64 /libpath:"..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngJTest.obj" > >@@ -256,7 +256,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\BciEngJTest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\BciEngJTest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -291,7 +291,7 @@ > RSC=rc.exe > > LINK32=link.exe >-LINK32_FLAGS=BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /debug /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Debug" /libpath:"..\..\Debug" /libpath:"..\Debug" /fixed:no /machine:AMD64 >+LINK32_FLAGS=BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib verifier.lib bufferoverflowU.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /debug /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Debug" /libpath:"..\..\Debug" /libpath:"..\Debug" /fixed:no /machine:AMD64 /libpath:"..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngJTest.obj" > >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.mak >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.mak,v >retrieving revision 1.6 >diff -u -r1.6 BciEngJTest.mak >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.mak 24 Mar 2006 21:58:18 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.mak 6 May 2008 14:23:36 -0000 >@@ -58,7 +58,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\BciEngJTest.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c >+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\\" /I "..\..\\" /I "..\..\..\common" /I "..\..\..\JClass" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\BciEngJTest.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -96,7 +96,7 @@ > BSC32_SBRS= \ > > LINK32=link.exe >-LINK32_FLAGS=kernel32.lib JClassStat.lib BCIEng.lib BCIEngJ.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /machine:I386 /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Release" /libpath:"..\..\Release" /libpath:"..\Release" >+LINK32_FLAGS=BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib verifier.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /machine:I386 /out:"$(OUTDIR)\BciEngJTest.exe" /libpath:"..\..\..\JClass\Release" /libpath:"..\..\Release" /libpath:"..\Release" /libpath:"..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > LINK32_OBJS= \ > "$(INTDIR)\BCIEngJTest.obj" > >@@ -127,7 +127,7 @@ > if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" > > CPP=cl.exe >-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\\" /I "..\..\\" /I "..\..\..\commmon" /I "..\..\..\JClass" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\BciEngJTest.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c >+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\\" /I "..\..\\" /I "..\..\..\common" /I "..\..\..\JClass" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /Fp"$(INTDIR)\BciEngJTest.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c > > .c{$(INTDIR)}.obj:: > $(CPP) @<< >@@ -165,7 +165,7 @@ > BSC32_SBRS= \ > > LINK32=link.exe >-LINK32_FLAGS=BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /debug /machine:I386 /out:"$(OUTDIR)\BciEngJTest.exe" /pdbtype:sept /libpath:"..\..\..\JClass\Debug" /libpath:"..\..\Debug" /libpath:"..\Debug" /fixed:no >+LINK32_FLAGS=BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib verifier.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\BciEngJTest.pdb" /debug /machine:I386 /out:"$(OUTDIR)\BciEngJTest.exe" /pdbtype:sept /libpath:"..\..\..\JClass\Debug" /libpath:"..\..\Debug" /libpath:"..\Debug" /libpath:"..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" /fixed:no > LINK32_OBJS= \ > "$(INTDIR)\BCIEngJTest.obj" > >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.dep >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.dep,v >retrieving revision 1.6 >diff -u -r1.6 BciEngJTest.dep >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.dep 24 Mar 2006 21:58:18 -0000 1.6 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.dep 6 May 2008 14:23:36 -0000 >@@ -13,12 +13,23 @@ > # Microsoft Developer Studio Generated Dependency File, included by BciEngJTest.mak > > .\BCIEngJTest.cpp : \ >- "..\..\..\JClass\JavaDef.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\common.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\hycomp.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include\open\platform_types.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include\verifier.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_class_interface.h"\ >+ "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier\x_verifier.h"\ >+ "..\..\..\common\commondef.h"\ >+ "..\..\..\common\javadef.h"\ >+ "..\..\..\Common\JavaHelpers.h"\ > "..\..\..\JClass\JBaseStream.h"\ >+ "..\..\..\JClass\JClassBuilder.h"\ > "..\..\..\JClass\JClassFile.h"\ > "..\..\..\JClass\JFileStream.h"\ > "..\..\..\JClass\JStream.h"\ > "..\..\InsSet.h"\ > "..\..\Module.h"\ >+ "..\class_inerface_int.h"\ > "..\ModuleJ.h"\ >+ "c:\program files\microsoft visual studio\vc98\include\basetsd.h"\ > >Index: src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.dsp >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.dsp,v >retrieving revision 1.5 >diff -u -r1.5 BciEngJTest.dsp >--- src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.dsp 24 Mar 2006 21:58:18 -0000 1.5 >+++ src-native/BCI/BCIEng/BCIEngJ/BCIEngJTest/BciEngJTest.dsp 6 May 2008 14:23:36 -0000 >@@ -42,7 +42,7 @@ > # PROP Ignore_Export_Lib 0 > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c >-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\\" /I "..\..\\" /I "..\..\..\common" /I "..\..\..\JClass" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c >+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\\" /I "..\..\\" /I "..\..\..\common" /I "..\..\..\JClass" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /YX /FD /c > # ADD BASE RSC /l 0x409 /d "NDEBUG" > # ADD RSC /l 0x409 /d "NDEBUG" > BSC32=bscmake.exe >@@ -50,7 +50,7 @@ > # ADD BSC32 /nologo > LINK32=link.exe > # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 >-# ADD LINK32 kernel32.lib JClassStat.lib BCIEng.lib BCIEngJ.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\JClass\Release" /libpath:"..\..\Release" /libpath:"..\Release" >+# ADD LINK32 BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib verifier.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\JClass\Release" /libpath:"..\..\Release" /libpath:"..\Release" /libpath:"..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\release\IA-32" > > !ELSEIF "$(CFG)" == "BciEngJTest - Win32 Debug" > >@@ -66,7 +66,7 @@ > # PROP Ignore_Export_Lib 0 > # PROP Target_Dir "" > # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c >-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\\" /I "..\..\\" /I "..\..\..\common" /I "..\..\..\JClass" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c >+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\\" /I "..\..\\" /I "..\..\..\common" /I "..\..\..\JClass" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\include" /I "..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\src\vmcore\src\verifier-3363\x_verifier" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "STATIC_BUILD" /YX /FD /GZ /c > # ADD BASE RSC /l 0x409 /d "_DEBUG" > # ADD RSC /l 0x409 /d "_DEBUG" > BSC32=bscmake.exe >@@ -74,7 +74,7 @@ > # ADD BSC32 /nologo > LINK32=link.exe > # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept >-# ADD LINK32 BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\JClass\Debug" /libpath:"..\..\Debug" /libpath:"..\Debug" /fixed:no >+# ADD LINK32 BCIEng.lib BCIEngJ.lib kernel32.lib JClassStat.lib verifier.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\JClass\Debug" /libpath:"..\..\Debug" /libpath:"..\Debug" /libpath:"..\..\..\..\..\..\org.apache.harmony_vmcore_verifier\lib\windows\debug\IA-32" /fixed:no > # SUBTRACT LINK32 /pdb:none > > !ENDIF >Index: src-native/BCI/makefile.include >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/makefile.include,v >retrieving revision 1.6 >diff -u -r1.6 makefile.include >--- src-native/BCI/makefile.include 15 Sep 2006 21:18:32 -0000 1.6 >+++ src-native/BCI/makefile.include 6 May 2008 14:23:36 -0000 >@@ -84,6 +84,10 @@ > ifneq ($(findstring Linux, $(UNAME)),) > ENVIRON = linux > JDK_PLATFORM = linux >+ ifneq ($(findstring ia64,$(MACHINE)),) >+ ARCH=IPF_ARCH >+ BUILD_PLATFORM = linux_ipf >+ endif # MACHINE > ifneq ($(findstring i686,$(MACHINE)),) > # nslookup on Red Hat is whiny, so shut it up > NSLOOKUP = nslookup -silent >@@ -318,7 +322,18 @@ > > > # Place BUILD_PLATFORM specific settings here, for example >- # ifeq ($(BUILD_PLATFORM), linux_ia32) ... endif >+ ifeq ($(BUILD_PLATFORM), linux_ia32) >+ ARCH_DIR = IA-32 >+ endif #linux_ia32 >+ >+ ifeq ($(BUILD_PLATFORM), linux_em64t) >+ ARCH_DIR = EM64T >+ endif >+ >+ ifeq ($(BUILD_PLATFORM), linux_ipf) >+ ARCH_DIR = IPF >+ endif >+ > endif # linux > > ##### >Index: src-native/BCI/makefile.unix >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.hyades.probekit/src-native/BCI/makefile.unix,v >retrieving revision 1.9 >diff -u -r1.9 makefile.unix >--- src-native/BCI/makefile.unix 9 May 2006 15:17:41 -0000 1.9 >+++ src-native/BCI/makefile.unix 6 May 2008 14:23:36 -0000 >@@ -50,6 +50,8 @@ > # To do this we have to extract all the *.o files from the archives > # and pass them to the linker. > # >+LDIRS += -L../../../org.apache.harmony_vmcore_verifier/lib/linux/$(BUILD_MODE_DIR)/$(ARCH_DIR) >+LIBS = -lverifier > > $(OUTDIR)/BCIEngProbe$(SHLIB_EXT) : $(OUTDIR)/probeinstrumenter > rm -rf $(OUTDIR)/otemp >@@ -59,7 +61,7 @@ > cd $(OUTDIR)/otemp ; $(AR) x ../../Common/libCommon.a > cd $(OUTDIR)/otemp ; $(AR) x ../../JClass/libJClassStat.a > cd $(OUTDIR)/otemp ; $(AR) x ../../BCIEng/BCIEngProbe/libBCIEngProbe.a >- $(LINK_CXX_SHLIB) $(CXX_SHLIB_FLAG) -o $@ $(OUTDIR)/otemp/*.o $(SHLIB_CXX_LIBS) $(SHLIB_FINAL_FLAGS) >+ $(LINK_CXX_SHLIB) $(CXX_SHLIB_FLAG) -o $@ $(OUTDIR)/otemp/*.o $(SHLIB_CXX_LIBS) $(SHLIB_FINAL_FLAGS) $(LDIRS) $(LIBS) > rm -rf $(OUTDIR)/otemp > > clean : >Index: src-native/BCI/BCIEng/BCIEngJ/class_interface_x.h >=================================================================== >RCS file: src-native/BCI/BCIEng/BCIEngJ/class_interface_x.h >diff -N src-native/BCI/BCIEng/BCIEngJ/class_interface_x.h >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-native/BCI/BCIEng/BCIEngJ/class_interface_x.h 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,46 @@ >+/********************************************************************** >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * $Id$ >+ * >+ * Contributors: >+ * Intel - Initial API and implementation >+ **********************************************************************/ >+ >+#ifndef _CLASS_INTERFACE_X_H_ >+#define _CLASS_INTERFACE_X_H_ >+ >+typedef unsigned long intptr; >+ >+ >+#ifdef __cplusplus >+//extern "C" { >+#endif >+ >+#if 0 >+#include "class_interface.h" >+#include "x_verifier.h" >+#else >+#define __INSURE__ >+#include "verifier-ext/class_interface.h" >+#include "verifier-ext/x_verifier.h" >+#endif >+ >+// removes given exception handler (handlers with greater indexes shift) >+void method_remove_exc_handler( method_handler method, unsigned short idx ); >+ >+//modifies start_pc, end_pc >+void method_modify_exc_handler_info(method_handler method, >+ unsigned short idx, >+ unsigned short start_pc, >+ unsigned short end_pc, >+ unsigned short handler_pc, >+ unsigned short handler_cp_index ); >+unsigned short class_get_cp_class_entry(class_handler k_class, const char* name); >+#ifdef __cplusplus >+//} >+#endif >+#endif /*!_CLASS_INTERFACE_X_H_*/ >Index: src-native/BCI/BCIEng/BCIEngJ/class_inerface_int.h >=================================================================== >RCS file: src-native/BCI/BCIEng/BCIEngJ/class_inerface_int.h >diff -N src-native/BCI/BCIEng/BCIEngJ/class_inerface_int.h >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-native/BCI/BCIEng/BCIEngJ/class_inerface_int.h 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,42 @@ >+/********************************************************************** >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * $Id$ >+ * >+ * Contributors: >+ * Intel - Initial API and implementation >+ **********************************************************************/ >+ >+#ifndef _CLASS_INTERFACE_INT_H_ >+#define _CLASS_INTERFACE_INT_H_ >+ >+//typedef u1 uint8; >+//typedef u2 uint16; >+//#include "class_interface.h" >+//#include "class_interface_x.h" >+ >+#include "x_class_interface.h" >+#include "x_verifier.h" >+ >+#include "JClassBuilder.h" >+ >+typedef Class_Handle class_handler; >+typedef Method_Handle method_handler; >+typedef void *(*get_vm_pointer_t)(void **); >+ >+class_handler get_class_handler_from_builder(class CModuleJ *); >+method_handler get_method_handler_for_cmethod(class CMethod *); >+ >+//extern "C" { >+//unsigned method_get_bytecode_length( method_handler); >+//} >+ >+extern int initialize_dynamic(get_vm_pointer_t); >+void class_destroy_handler(class_handler); >+ >+int initialize_static(); >+ >+#endif >Index: src-native/BCI/BCIEng/BCIEngJ/class_interface.cpp >=================================================================== >RCS file: src-native/BCI/BCIEng/BCIEngJ/class_interface.cpp >diff -N src-native/BCI/BCIEng/BCIEngJ/class_interface.cpp >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src-native/BCI/BCIEng/BCIEngJ/class_interface.cpp 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,910 @@ >+/********************************************************************** >+ * Copyright (c) 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * $Id$ >+ * >+ * Contributors: >+ * Intel - Initial API and implementation >+ **********************************************************************/ >+#ifdef WIN32 >+#pragma warning(disable:4786) >+#endif >+ >+#include <stdlib.h> >+#include <string.h> >+ >+#include <map> >+ >+#include <assert.h> >+ >+#include "class_inerface_int.h" >+#include "BCIEng.h" >+#include "JClassBuilder.h" >+#include "ModuleJ.h" >+ >+#include "JMemStream.h" >+ >+#include <jni.h> >+ >+typedef unsigned long intptr; >+ >+static JNIEnv *(*m_get_vm_pointer)(void **); >+static jclass m_j_l_class; >+static jclass m_j_l_classloader; >+static jmethodID m_j_l_class_getName; /*()Ljava/lang/String;*/ >+static jmethodID m_j_l_class_isInterface;/* ()Z */ >+static jmethodID m_j_l_class_getClassLoader; /*()Ljava/lang/ClassLoader;*/ >+static jmethodID m_j_l_classloader_findLoadedClass; /*(Ljava/lang/String;)Ljava/lang/Class;*/ >+static jmethodID m_j_l_classloader_getSystemClassLoader; /*()Ljava/lang/ClassLoader;*/ >+static jobject m_system_classloader; >+/** >+ * Define class handler >+ */ >+/*[0xdead0001 - simplefied, 0xdead0002 - instrumented, 0xdead0000 - none]*/ >+#define CLASS_HANDLER_MASK 0xdeadffff >+#define CLASS_HANDLER_SIMPLEFIED 0xdead0001 >+#define CLASS_HANDLER_INSTRUMENTED 0xdead0002 >+#define CLASS_HANDLER_NONE 0xdead0000 >+#define IS_CLASS_INSTRUMENTED(x) (((x)->magic & CLASS_HANDLER_MASK) == CLASS_HANDLER_INSTRUMENTED) >+struct Class{ >+ int magic; >+ struct { >+ class CModuleJ *instrumented_class; >+ void *simplified_class; >+ } X; /*XXX: possible union here will be more applieble */ >+ int loaded; >+ const char *class_name; /*used if loaded = 0*/ >+ struct Class *super_class; >+}; >+ >+typedef std::map<std::string,class_handler> name2ch_t; >+static name2ch_t m_name2ch; >+ >+#define MEHTOD_HANDLER_MASK 0xbabeffff >+#define METHOD_HANDLER_SELF 0xbabe0001 >+#define METHOD_HANDLER_EXT 0xbabe0002 >+#define METHOD_HANDLER_NONE 0xbabe0000 >+struct Method { >+ int magic; >+ struct { >+ class CMethodJ *instrumented_method; >+ void *simplefied_method; >+ } X; /*XXX: possible union here will be more applieble */ >+ class_handler class_owner; >+ const char *method_name; /*used for METHOD_HANDLER_EXT only*/ >+ const char *method_descriptor; /*used for METHOD_HANDLER_EXT only*/ >+}; >+ >+static struct Class *m_j_l_object_ch; >+/** >+ * Define field handler >+ */ >+typedef struct Field_ * field_handler; >+ >+/** >+ * Define method handler >+ */ >+//typedef struct Method_ * method_handler; >+ >+/** >+ * Define class loader handler >+ */ >+typedef struct ClassLoader_ * classloader_handler; >+ >+static int >+create_class_handler(class_handler *pch, int flag, const char *class_name, int loaded, void *dsk) >+{ >+ class_handler ch0 = m_name2ch[class_name]; /*for debug*/ >+ if (m_name2ch[class_name] != NULL >+ && m_name2ch[class_name]->magic == flag) { >+ *pch = m_name2ch[class_name]; >+ return (0); >+ } >+ class_handler ch = (class_handler)malloc(sizeof(struct Class)); >+ memset(ch, 0, sizeof(struct Class)); >+ assert(ch); >+ ch->loaded = loaded; >+ if (loaded == 0) { >+ ch->class_name = class_name; >+ } >+ ch->magic = flag; >+ switch(flag) { >+ case (CLASS_HANDLER_SIMPLEFIED): >+ ch->X.simplified_class = dsk; >+ if (loaded == 0) { >+ ch->class_name = class_name; >+ } >+ ch->loaded = loaded; >+ break; >+ case (CLASS_HANDLER_INSTRUMENTED): >+ ch->X.instrumented_class = (CModuleJ *)dsk; >+ break; >+ default: >+ assert(!"shouldn't be here!!!"); >+ } >+ *pch = ch; >+ m_name2ch[class_name] = ch; >+ return (0); >+} >+ >+extern "C" int >+create_method_handler(method_handler *pmh, class_handler ch, int flag, void *dsk) >+{ >+ method_handler mh = (method_handler)malloc(sizeof(struct Method)); >+ assert(mh); >+ memset(mh, 0, sizeof(struct Method)); >+ switch (flag) { >+ case METHOD_HANDLER_SELF: >+ mh->X.instrumented_method = (class CMethodJ *)dsk; >+ break; >+ case METHOD_HANDLER_EXT: >+ mh->X.simplefied_method = dsk; >+ break; >+ default: >+ assert(!"shouldn't enter here"); >+ } >+ mh->magic = (IS_CLASS_INSTRUMENTED(ch))?METHOD_HANDLER_SELF:flag; >+ mh->class_owner = ch; >+ *pmh = mh; >+ return (0); >+} >+/** >+ * Class interface >+ */ >+ >+extern "C" unsigned short >+class_get_version( class_handler klass ) { >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ return klass->X.instrumented_class->GetClassBuilder().GetMajorVersion(); >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+extern "C" const char * >+class_get_name( class_handler klass ) >+{ >+ JNIEnv *env; >+ jstring class_name; >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ return klass->X.instrumented_class->GetName(); >+ } >+ else { >+ if (klass->loaded == 0) { >+ return(klass->class_name); >+ } >+ env = m_get_vm_pointer((void **)&env); >+ class_name = (jstring)env->CallObjectMethod((jobject)klass->X.simplified_class, m_j_l_class_getName); >+ if (class_name == NULL) >+ return (NULL); >+ char *class_name_simple = (char *)env->GetStringUTFChars(class_name, NULL); >+ char *ch = strchr(class_name_simple, '.'); >+ while (ch != NULL) { >+ *ch = '/'; >+ ch = strchr(ch, '.'); >+ } >+ return(class_name_simple); >+ >+ } >+ return (NULL); >+} >+ >+extern "C" classloader_handler >+class_get_class_loader( class_handler klass ) >+{ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ return (0); >+ } else { >+ assert(!"simplefied"); >+ } >+ return (NULL); >+} >+ >+extern "C" class_handler >+class_get_super_class( class_handler klass ) >+{ >+ >+ const char *class_name; >+ const char *super_class_name = NULL; >+ jobject this_class = NULL; >+ jobject super_class; >+ JNIEnv *env = NULL; >+ env = m_get_vm_pointer((void **)&env); >+ assert(env); >+ int loaded = 1; >+ if (klass->loaded == 0 && strcmp(klass->class_name,"java/lang/Object") == 0) return (NULL); >+ if (klass->super_class != NULL) return (klass->super_class); >+ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ class_name = klass->X.instrumented_class->GetName(); >+ CConstPool* cpool = klass->X.instrumented_class->GetClass().GetConstPool(); >+ CCPUtf8Info* utfinfo = cpool->GetClass(klass->X.instrumented_class->GetClass().GetSuperClass()); >+ super_class_name = (const char *)utfinfo->GetBytes(); >+ assert(super_class_name); >+ super_class = (jclass)env->FindClass(super_class_name); >+ } >+ else { >+ if (klass->loaded == 0) { >+ assert(klass->class_name); >+ this_class = (jclass)env->FindClass(klass->class_name); >+ if (this_class == NULL && env->ExceptionCheck()) { >+ //env->ExceptionDescribe(); >+ env->ExceptionClear(); >+ //XXX: class wasn't found or loaded >+ return (m_j_l_object_ch); >+ //return (NULL); >+ } >+ } >+ this_class = this_class?this_class:(jobject)klass->X.simplified_class; >+ super_class = (jobject)env->GetSuperclass((jclass)this_class); >+ } >+ >+ if (super_class == NULL) { >+ if (env->ExceptionCheck()) { >+ //env->ExceptionDescribe(); >+ env->ExceptionClear(); >+ //XXX: class wasn't found or loaded >+ loaded = 0; >+ //return (NULL); >+ } >+ else { >+ klass->super_class = m_j_l_object_ch; >+ return (m_j_l_object_ch); >+ //return (NULL); /*it happends when klass is java.lang.Object*/ >+ } >+ } >+ else { >+ jstring jclass_name = (jstring)env->CallObjectMethod(super_class, m_j_l_class_getName); >+ if (jclass_name == NULL) { >+ return (m_j_l_object_ch); >+ } >+ char *class_name_simple = (char *)env->GetStringUTFChars(jclass_name, NULL); >+ assert (class_name_simple); >+ char *ch = strchr(class_name_simple, '.'); >+ while (ch != NULL) { >+ *ch = '/'; >+ ch = strchr(ch, '.'); >+ } >+ super_class_name = class_name_simple; >+ } >+ >+ //assert(super_class); >+ class_handler ch; >+ jobject super_class_ref = env->NewGlobalRef(super_class); >+ env->DeleteLocalRef(super_class); >+ int status = create_class_handler(&ch, CLASS_HANDLER_SIMPLEFIED, super_class_name, loaded, super_class_ref); >+ assert(status == 0); >+ return (ch); >+} >+ >+extern "C" unsigned >+class_is_same_class( class_handler klass1, class_handler klass2 ) >+{ >+ assert(!"verifier entered!!"); >+ return 0; >+} >+ >+static char* >+package_name(const char* kname) >+{ >+ char *tokp; >+ char *tok0; >+ tokp = tok0 = (char *)&kname[0]; >+ tok0 = strchr(kname, '/'); >+ while (tok0 != NULL) { >+ tokp = tok0; >+ tok0 = strchr(tok0 + 1, '/'); >+ } >+ return (tokp); >+} >+ >+extern "C" unsigned >+class_is_same_package( class_handler klass1, class_handler klass2 ) >+{ >+ if (klass1 == klass2) { >+ return (1); >+ } >+ else { >+ const char *klass1_name = class_get_name(klass1); >+ const char *klass2_name = class_get_name(klass2); >+ char* package1 = package_name(klass1_name); >+ char* package2 = package_name(klass2_name); >+ int package1_len = (package1 - klass1_name); >+ int package2_len = (package2 - klass2_name); >+ if (package1_len != package2_len) >+ return (0); >+ return(strncmp(klass1_name, klass2_name, package2_len) == 0); >+ assert(!"verifier entered!!"); >+ } >+ return (0); >+} >+ >+extern "C" unsigned >+class_is_interface( class_handler klass ) >+{ >+ JNIEnv *env; >+ env = m_get_vm_pointer((void **)&env); >+ assert(env); >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ return (0); >+ } >+ else { >+ return (unsigned)(env->CallBooleanMethod((jobject)klass->X.simplified_class, m_j_l_class_isInterface)); >+ } >+ >+ return (0); >+} >+ >+extern "C" unsigned >+class_is_array( class_handler klass ) >+{ >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+extern "C" unsigned >+class_is_final_( class_handler klass ) >+{ >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+extern "C" unsigned short >+class_get_superinterface_number( class_handler klass ) >+{ >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+extern "C" class_handler >+class_get_superinterface( class_handler klass, unsigned short index ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+extern "C" class_handler >+class_get_array_element_class( class_handler klass ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+ >+extern "C" class_handler >+class_get_extended_class( class_handler klass, const char *super_name ) >+{ >+ return (NULL); >+} >+ >+extern "C" unsigned short >+class_get_method_number( class_handler klass ) >+{ >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+extern "C" method_handler >+class_get_method( class_handler klass, unsigned short index ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+ >+/** >+ * Constant pool inteface >+ */ >+ >+extern "C" unsigned short >+class_cp_get_size( class_handler klass ) >+{ >+ assert(klass); >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ assert(klass->X.instrumented_class); >+ assert(klass->X.instrumented_class->GetClassBuilder().GetConstPool()); >+ return klass->X.instrumented_class->GetClassBuilder().GetConstPool()->GetSize(); >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+ >+extern "C" unsigned char >+class_cp_get_tag( class_handler klass, unsigned short index ) >+{ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ return (*klass->X.instrumented_class->GetClassBuilder().GetConstPool())[index]->GetTag(); >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+extern "C" unsigned short >+class_cp_get_class_name_index( class_handler klass, unsigned short index ) >+{ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ CCPInfo * ccinfo = (*klass->X.instrumented_class->GetClassBuilder().GetConstPool())[index]; >+ assert(ccinfo->GetTag() == CONSTANT_Class); >+ return ((CCPClassInfo *)ccinfo)->GetClassInd(); >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+extern "C" unsigned short >+class_cp_get_ref_class_index( class_handler klass, unsigned short index ) >+{ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ CCPInfo * ccinfo = (*klass->X.instrumented_class->GetClassBuilder().GetConstPool())[index]; >+ unsigned char tag = ccinfo->GetTag(); >+ switch(tag) { >+ case CONSTANT_Fieldref: >+ return ((CCPFieldrefInfo *)ccinfo)->GetClassInd(); >+ break; >+ case CONSTANT_Methodref: >+ return ((CCPMethodrefInfo *)ccinfo)->GetClassInd(); >+ break; >+ case CONSTANT_InterfaceMethodref: >+ return ((CCPInterfaceMethodrefInfo *)ccinfo)->GetClassInd(); >+ break; >+ default: >+ assert(!"unsupported tag"); >+ } >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+extern "C" unsigned short >+class_cp_get_ref_name_and_type_index( class_handler klass, unsigned short index ) >+{ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ CCPInfo * ccinfo = (*klass->X.instrumented_class->GetClassBuilder().GetConstPool())[index]; >+ unsigned char tag = ccinfo->GetTag(); >+ switch(tag) { >+ case CONSTANT_Fieldref: >+ return ((CCPFieldrefInfo *)ccinfo)->GetNameAndTypeInd(); >+ break; >+ case CONSTANT_Methodref: >+ return ((CCPMethodrefInfo *)ccinfo)->GetNameAndTypeInd(); >+ break; >+ case CONSTANT_InterfaceMethodref: >+ return ((CCPInterfaceMethodrefInfo *)ccinfo)->GetNameAndTypeInd(); >+ break; >+ default: >+ assert(!"unsupported tag"); >+ } >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+extern "C" unsigned short >+class_cp_get_string_index( class_handler klass, unsigned short index ) >+{ >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+extern "C" unsigned short >+class_cp_get_name_index( class_handler klass, unsigned short index ) >+{ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ CCPInfo * ccinfo = (*klass->X.instrumented_class->GetClassBuilder().GetConstPool())[index]; >+ unsigned char tag = ccinfo->GetTag(); >+ assert(tag == CONSTANT_NameAndType); >+ return ((CCPNameAndTypeInfo *)ccinfo)->GetNameInd(); >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+extern "C" unsigned short >+class_cp_get_descriptor_index( class_handler klass, unsigned short index ) >+{ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ CCPInfo * ccinfo = (*klass->X.instrumented_class->GetClassBuilder().GetConstPool())[index]; >+ unsigned char tag = ccinfo->GetTag(); >+ assert(tag == CONSTANT_NameAndType); >+ return ((CCPNameAndTypeInfo *)ccinfo)->GetDescriptorInd(); >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+extern "C" const char * >+class_cp_get_utf8_bytes( class_handler klass, unsigned short index ) >+{ >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ return (const char *)((CCPUtf8Info *)(*klass->X.instrumented_class->GetClassBuilder().GetConstPool())[index])->GetBytes(); >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+extern "C" void >+class_set_verify_data_ptr( class_handler klass, void *data ) >+{ >+ assert(!"verifier entered!!"); >+ return; >+} >+ >+extern "C" void * >+class_get_verify_data_ptr( class_handler klass ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+extern "C" method_handler >+class_resolve_method( class_handler klass, unsigned short index ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+extern "C" field_handler >+class_resolve_nonstatic_field( class_handler klass, unsigned short index ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+/** >+ * Method interface >+ */ >+ >+extern "C" class_handler >+method_get_class( method_handler hmethod ) >+{ >+ assert(hmethod); >+ return hmethod->class_owner; >+} >+ >+extern "C" const char * >+method_get_name( method_handler method ) >+{ >+ if (method->magic == METHOD_HANDLER_SELF) { >+ return (method->X.instrumented_method->GetName()); >+ } >+ else { >+ assert(!"verifier entered!!"); >+ } >+ return (NULL); >+} >+ >+extern "C" const char * >+method_get_descriptor( method_handler method ) >+{ >+ if (method->magic == METHOD_HANDLER_SELF) { >+ return (method->X.instrumented_method->GetSignature()); >+ } >+ else { >+ assert(!"verifier entered!!"); >+ } >+ return (NULL); >+} >+ >+extern "C" unsigned >+method_get_bytecode_length( method_handler method ) >+{ >+ /*insert check about instrumentation*/ >+ if (method->magic == METHOD_HANDLER_SELF) { >+ unsigned size = 0; >+ CInstructions::const_iterator insIterator; >+ if (method->X.instrumented_method->GetCodeAttribute() == NULL) return (0); >+ return (method->X.instrumented_method->GetCodeAttribute()->GetCodeLength()); >+ } >+ else { >+ assert(!"verifier entered!!"); >+ } >+ return (0); >+} >+ >+extern "C" unsigned char * >+method_get_bytecode( method_handler method ) >+{ >+ if (method->magic == METHOD_HANDLER_SELF) { >+ return (method->X.instrumented_method->GetCodeAttribute()->GetCode()); >+ } >+ else { >+ assert(!"verifier entered!!"); >+ } >+ return (NULL); >+} >+ >+extern "C" unsigned >+method_get_max_locals( method_handler method ) >+{ >+ if (method->magic == METHOD_HANDLER_SELF) { >+ /*XXX: add check for instrumented method*/ >+ CMethodJ * jmethod = (CMethodJ *)(method->X.instrumented_method); >+ return (jmethod->GetCodeAttribute()->GetMaxLocals()); >+ } >+ else { >+ assert(!"verifier entered!!"); >+ } >+ return (0); >+ >+} >+ >+extern "C" unsigned >+method_get_max_stack( method_handler method ) >+{ >+ if (method->magic == METHOD_HANDLER_SELF) { >+ CMethodJ * jmethod = (CMethodJ *)(method->X.instrumented_method); >+ return (jmethod->GetCodeAttribute()->GetMaxStack()); >+ } >+ else { >+ assert(!"verifier entered!!"); >+ } >+ return (0); >+} >+ >+extern "C" unsigned >+method_is_static( method_handler method ) >+{ >+ if (method->magic == METHOD_HANDLER_SELF) { >+ return (method->X.instrumented_method->GetAccessFlags() & ACC_STATIC); >+ } >+ else { >+ //assert(!"verifier entered!!"); >+ return (0); /*we're assuming that this function called after class_resolve_method and couldn't return static methods*/ >+ } >+ return (0); >+ >+} >+ >+extern "C" unsigned >+method_is_protected( method_handler method ) >+{ >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+/** >+ * Method exception handler >+ */ >+ >+extern "C" unsigned short >+method_get_exc_handler_number( method_handler method ) >+{ >+ return (method->X.instrumented_method->GetExTable()->size()); >+} >+ >+extern "C" void >+method_get_exc_handler_info( method_handler method, unsigned short index, >+ unsigned short *start_pc, unsigned short *end_pc, >+ unsigned short *handler_pc, unsigned short *catch_type ) >+{ >+ class CExTable& exc = method->X.instrumented_method->GetCodeAttribute()->GetExTable(); >+ *start_pc = exc[index].GetStartPC(); >+ *end_pc = exc[index].GetEndPC(); >+ *handler_pc = exc[index].GetHandlerPC(); >+ *catch_type = exc[index].GetCatchtype(); >+ >+ return; >+} >+ >+extern "C" unsigned short >+method_get_number_exc_method_can_throw( method_handler hmethod ) >+{ >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+extern "C" const char * >+method_get_exc_method_can_throw( method_handler hmethod, unsigned short index ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+ >+extern "C" unsigned char * >+method_get_stackmaptable( method_handler hmethod ) >+{ >+ >+ CStackMapTableAttribute *attr = hmethod->X.instrumented_method->GetCodeAttribute()->GetStackMaps(); >+ if (attr == NULL) >+ return (NULL); >+ u4 length = attr->GetLength(); >+ u1 *stackmap = (u1 *)malloc(length); >+ CJMemStream mem_stream; >+ mem_stream.Open(stackmap, length); >+ CJStream stream(&mem_stream); >+ attr->Write(stream); >+ //return (attr->GetInfo()); >+ return (stackmap); >+} >+ >+extern "C" void >+method_modify_exc_handler_info(method_handler method, >+ unsigned short idx, >+ unsigned short start_pc, >+ unsigned short end_pc, >+ unsigned short handler_pc, >+ unsigned short handler_cp_index ) >+{ >+ >+ class CExTable& exc = method->X.instrumented_method->GetCodeAttribute()->GetExTable(); >+ exc[idx].SetStartPC(start_pc); >+ exc[idx].SetEndPC(end_pc); >+ exc[idx].SetHandlerPC(handler_pc); >+ return; >+} >+ >+extern "C" void >+method_remove_exc_handler( method_handler method, unsigned short idx ) >+{ >+ assert(!"verifier entered!!"); >+ return; >+} >+ >+/** >+ * Class loader interface >+ */ >+ >+extern "C" void >+class_loader_set_verifier_data_ptr( classloader_handler classloader, void *data ) >+{ >+ assert(!"verifier entered!!"); >+ return; >+} >+ >+extern "C" void * >+class_loader_get_verifier_data_ptr( classloader_handler classloader ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+extern "C" void >+class_loader_lock( classloader_handler classloader ) >+{ >+ assert(!"verifier entered!!"); >+ return; >+} >+ >+extern "C" void >+class_loader_unlock( classloader_handler classloader ) >+{ >+ assert(!"verifier entered!!"); >+ return; >+} >+ >+extern "C" class_handler >+class_loader_lookup_class( classloader_handler classloader, const char *name ) >+{ >+ if (m_name2ch[name] != NULL && IS_CLASS_INSTRUMENTED(m_name2ch[name])) >+ return (m_name2ch[name]); >+ else >+ return (NULL); >+} >+ >+extern "C" class_handler >+class_loader_load_class( classloader_handler classloader, const char *name ) >+{ >+ assert(!"verifier entered!!"); >+ return (NULL); >+} >+ >+extern "C" unsigned >+field_is_protected( field_handler field ) >+{ >+ assert(!"verifier entered!!"); >+ return (0); >+} >+ >+class_handler >+get_class_handler_from_builder(class CModuleJ *module) >+{ >+ class_handler ch; >+ >+ m_name2ch.clear(); >+ int status = create_class_handler(&m_j_l_object_ch, CLASS_HANDLER_SIMPLEFIED, "java/lang/Object", 0, NULL); >+ assert(!status); >+ >+ status = create_class_handler(&ch, CLASS_HANDLER_INSTRUMENTED, module->GetName(), 1, module); >+ assert(!status); >+ return (ch); >+} >+ >+method_handler >+get_method_handler_for_cmethod(class CMethod *method) >+{ >+ class_handler ch = NULL; >+ method_handler mh = NULL; >+ int status; >+ status = create_class_handler(&ch, CLASS_HANDLER_INSTRUMENTED, (const char *)method->GetModule()->GetName(), 1, method->GetModule()); >+ assert(!status); >+ status = create_method_handler(&mh, ch, METHOD_HANDLER_SELF, method); >+ assert(!status); >+ return (mh); >+} >+ >+extern "C" unsigned short >+class_cp_get_class_entry(class_handler klass, const char* name) >+{ >+ >+ >+ CCPClassInfo *cinfo; >+ if (IS_CLASS_INSTRUMENTED(klass)) { >+ /*for this class we'll have entry somewhere in some future */ >+ if (strcmp(klass->X.instrumented_class->GetName(), name) == 0) { >+ return (klass->X.instrumented_class->GetClass().GetThisClass()); >+ } >+ assert(name); >+ cinfo = (klass->X.instrumented_class->GetClassBuilder().FindClass(name)); >+ if (cinfo == NULL) { >+ /*should be created new class antry */ >+ cinfo = *klass->X.instrumented_class->GetClassBuilder().CreateClassConstant(name); >+ assert(cinfo); >+ } >+ return(cinfo->GetCpIndex()); >+ } else { >+ assert (!"not implemented yet!"); >+ } >+ return (0); >+} >+ >+int >+initialize_dynamic(get_vm_pointer_t a_get_vm_pointer) >+{ >+ m_get_vm_pointer = (JNIEnv *(*)(void **))a_get_vm_pointer; >+ JNIEnv *env; >+ >+ env = m_get_vm_pointer((void **)&env); >+ assert(env); >+ >+ if (m_j_l_class) return (0); >+ >+ m_j_l_class = (jclass)env->NewGlobalRef(env->FindClass("java/lang/Class")); >+ assert(m_j_l_class); >+ >+ m_j_l_class_getName = env->GetMethodID(m_j_l_class, "getName", "()Ljava/lang/String;"); >+ assert(m_j_l_class_getName); >+ >+ m_j_l_class_getClassLoader = env->GetMethodID(m_j_l_class, "getClassLoader", "()Ljava/lang/ClassLoader;"); >+ assert(m_j_l_class_getClassLoader); >+ >+ m_j_l_class_isInterface = env->GetMethodID(m_j_l_class, "isInterface", "()Z"); >+ assert(m_j_l_class_isInterface); >+ >+ m_j_l_classloader = (jclass)env->NewGlobalRef(env->FindClass("java/lang/ClassLoader")); >+ assert(m_j_l_classloader); >+ >+ m_j_l_classloader_findLoadedClass = env->GetMethodID(m_j_l_classloader, "findLoadedClass", "(Ljava/lang/String;)Ljava/lang/Class;"); >+ assert(m_j_l_classloader_findLoadedClass); >+ >+ return (0); >+} >+ >+void >+class_destroy_handler(class_handler ch) >+{ >+ if (ch == NULL) return; >+ if (!IS_CLASS_INSTRUMENTED(ch) && ch->loaded == 1) { >+ JNIEnv *env; >+ env = m_get_vm_pointer((void **)&env); >+ assert(env); >+ env->DeleteGlobalRef((jobject)ch->X.simplified_class); >+ >+ } >+ free(ch); >+ ch = NULL; >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
jcayne
:
iplog+
Actions:
View
|
Diff
Attachments on
bug 148629
:
88758
|
96544
|
96545
|
96546
|
96547
|
96548
|
96761
|
96986
|
97124
|
97125
|
97938
|
98002
|
98071
|
98143
|
98144
|
98393
|
98824
| 98844 |
98845
|
98935
|
99809
|
103085