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;
}
/*