src/windows/native/sun/tools/attach/WindowsVirtualMachine.c

Print this page
rev 7875 : [mq]: attach.diff

*** 89,99 **** /* * Code copied to target process */ #pragma check_stack (off) ! static DWORD WINAPI thread_func(DataBlock *pData) { HINSTANCE h; EnqueueOperationFunc addr; h = pData->_GetModuleHandle(pData->jvmLib); --- 89,99 ---- /* * Code copied to target process */ #pragma check_stack (off) ! DWORD WINAPI jvm_attach_thread_func(DataBlock *pData) { HINSTANCE h; EnqueueOperationFunc addr; h = pData->_GetModuleHandle(pData->jvmLib);
*** 115,126 **** } else { return (*addr)(pData->cmd, pData->arg[0], pData->arg[1], pData->arg[2], pData->pipename); } } ! /* This function marks the end of thread_func. */ ! static void thread_end (void) { } #pragma check_stack /* --- 115,126 ---- } else { return (*addr)(pData->cmd, pData->arg[0], pData->arg[1], pData->arg[2], pData->pipename); } } ! /* This function marks the end of jvm_attach_thread_func. */ ! void jvm_attach_thread_func_end (void) { } #pragma check_stack /*
*** 150,163 **** * We should replace this with a real stub generator at some point */ DWORD len; jbyteArray array; ! len = (DWORD)((LPBYTE) thread_end - (LPBYTE) thread_func); array= (*env)->NewByteArray(env, (jsize)len); if (array != NULL) { ! (*env)->SetByteArrayRegion(env, array, 0, (jint)len, (jbyte*)&thread_func); } return array; } /* --- 150,163 ---- * We should replace this with a real stub generator at some point */ DWORD len; jbyteArray array; ! len = (DWORD)((LPBYTE) jvm_attach_thread_func_end - (LPBYTE) jvm_attach_thread_func); array= (*env)->NewByteArray(env, (jsize)len); if (array != NULL) { ! (*env)->SetByteArrayRegion(env, array, 0, (jint)len, (jbyte*)&jvm_attach_thread_func); } return array; } /*