mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-16 05:15:22 +00:00
Merge
This commit is contained in:
commit
5b4b78d657
@ -28,6 +28,7 @@
|
||||
|
||||
#include "jni.h"
|
||||
#include "jvm.h"
|
||||
#include "jdk_util_md.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
26
jdk/src/solaris/native/common/jdk_util_md.h
Normal file
26
jdk/src/solaris/native/common/jdk_util_md.h
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
// Currently, there are no unix specific functions defined.
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -1212,22 +1212,11 @@ jclass FindBootStrapClass(JNIEnv *env, const char *classname)
|
||||
return findBootClass(env, classname);
|
||||
}
|
||||
|
||||
typedef BOOL (WINAPI *pfn_SetDllDirectory)(LPCTSTR);
|
||||
|
||||
void
|
||||
InitLauncher(boolean javaw)
|
||||
{
|
||||
INITCOMMONCONTROLSEX icx;
|
||||
|
||||
// Launcher links with kernel32
|
||||
HMODULE hKernel32 = GetModuleHandle(TEXT("kernel32.dll"));
|
||||
pfn_SetDllDirectory fn = (pfn_SetDllDirectory) GetProcAddress(hKernel32,
|
||||
"SetDllDirectory");
|
||||
if (fn != NULL) {
|
||||
// Exclude CWD from Dll search path
|
||||
fn("");
|
||||
}
|
||||
|
||||
/*
|
||||
* Required for javaw mode MessageBox output as well as for
|
||||
* HotSpot -XX:+ShowMessageBoxOnError in java mode, an empty
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -38,3 +38,25 @@ int JDK_InitJvmHandle() {
|
||||
void* JDK_FindJvmEntry(const char* name) {
|
||||
return (void*) GetProcAddress(jvm_handle, name);
|
||||
}
|
||||
|
||||
JNIEXPORT HMODULE JDK_LoadSystemLibrary(const char* name) {
|
||||
HMODULE handle = NULL;
|
||||
char path[MAX_PATH];
|
||||
int ret;
|
||||
|
||||
if (GetSystemDirectory(path, sizeof(path)) != 0) {
|
||||
strcat(path, "\\");
|
||||
strcat(path, name);
|
||||
handle = LoadLibrary(path);
|
||||
}
|
||||
|
||||
if (handle == NULL) {
|
||||
if (GetWindowsDirectory(path, sizeof(path)) != 0) {
|
||||
strcat(path, "\\");
|
||||
strcat(path, name);
|
||||
handle = LoadLibrary(path);
|
||||
}
|
||||
}
|
||||
return handle;
|
||||
}
|
||||
|
||||
|
||||
42
jdk/src/windows/native/common/jdk_util_md.h
Normal file
42
jdk/src/windows/native/common/jdk_util_md.h
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef JDK_UTIL_MD_H
|
||||
#define JDK_UTIL_MD_H
|
||||
|
||||
#include "jni.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
JNIEXPORT HMODULE JDK_LoadSystemLibrary(const char* name);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* JDK_UTIL_MD_H */
|
||||
@ -117,7 +117,7 @@ HRESULT D3DPipelineManager::InitD3D(void)
|
||||
{
|
||||
typedef IDirect3D9 * WINAPI FnDirect3DCreate9(UINT SDKVersion);
|
||||
|
||||
hLibD3D9 = ::LoadLibrary(TEXT("d3d9.dll"));
|
||||
hLibD3D9 = JDK_LoadSystemLibrary("d3d9.dll");
|
||||
if (hLibD3D9 == NULL) {
|
||||
J2dRlsTraceLn(J2D_TRACE_ERROR, "InitD3D: no d3d9.dll");
|
||||
return E_FAIL;
|
||||
|
||||
@ -60,7 +60,7 @@ typedef const char *(GLAPIENTRY *wglGetExtensionsStringARBType)(HDC hdc);
|
||||
#define OGL_LIB_IS_UNINITIALIZED() \
|
||||
(OGL_LIB_HANDLE == 0)
|
||||
#define OGL_OPEN_LIB() \
|
||||
OGL_LIB_HANDLE = LoadLibrary(L"opengl32.dll")
|
||||
OGL_LIB_HANDLE = JDK_LoadSystemLibrary("opengl32.dll")
|
||||
#define OGL_CLOSE_LIB() \
|
||||
FreeLibrary(OGL_LIB_HANDLE)
|
||||
#define OGL_GET_PROC_ADDRESS(f) \
|
||||
|
||||
@ -25,6 +25,7 @@
|
||||
|
||||
|
||||
#include "DllUtil.h"
|
||||
#include <jdk_util.h>
|
||||
|
||||
// Disable warning about using this in the initializer list.
|
||||
#pragma warning( disable : 4355)
|
||||
@ -40,7 +41,7 @@ DllUtil::~DllUtil()
|
||||
HMODULE DllUtil::GetModule()
|
||||
{
|
||||
if (!module) {
|
||||
module = ::LoadLibrary(name);
|
||||
module = JDK_LoadSystemLibrary(name);
|
||||
}
|
||||
return module;
|
||||
}
|
||||
@ -60,7 +61,7 @@ DwmAPI & DwmAPI::GetInstance()
|
||||
}
|
||||
|
||||
DwmAPI::DwmAPI() :
|
||||
DllUtil(_T("DWMAPI.DLL")),
|
||||
DllUtil("DWMAPI.DLL"),
|
||||
DwmIsCompositionEnabledFunction((DllUtil*)this, "DwmIsCompositionEnabled"),
|
||||
DwmGetWindowAttributeFunction((DllUtil*)this, "DwmGetWindowAttribute")
|
||||
{
|
||||
|
||||
@ -43,7 +43,7 @@ class DllUtil {
|
||||
FARPROC GetProcAddress(LPCSTR name);
|
||||
|
||||
protected:
|
||||
DllUtil(const TCHAR * name) : name(name), module(NULL) {}
|
||||
DllUtil(const char * name) : name(name), module(NULL) {}
|
||||
virtual ~DllUtil();
|
||||
|
||||
HMODULE GetModule();
|
||||
@ -68,7 +68,7 @@ class DllUtil {
|
||||
};
|
||||
|
||||
private:
|
||||
const TCHAR * const name;
|
||||
const char * const name;
|
||||
HMODULE module;
|
||||
};
|
||||
|
||||
|
||||
@ -120,15 +120,15 @@ static BOOL initShellProcs()
|
||||
return TRUE;
|
||||
}
|
||||
// Load libraries
|
||||
libShell32 = LoadLibrary(TEXT("shell32.dll"));
|
||||
libShell32 = JDK_LoadSystemLibrary("shell32.dll");
|
||||
if (libShell32 == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
libUser32 = LoadLibrary(TEXT("user32.dll"));
|
||||
libUser32 = JDK_LoadSystemLibrary("user32.dll");
|
||||
if (libUser32 == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
libComCtl32 = LoadLibrary(TEXT("comctl32.dll"));
|
||||
libComCtl32 = JDK_LoadSystemLibrary("comctl32.dll");
|
||||
if (libComCtl32 == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
@ -1021,7 +1021,8 @@ JNIEXPORT jlong JNICALL Java_sun_awt_shell_Win32ShellFolder2_getIconResource
|
||||
(JNIEnv* env, jclass cls, jstring libName, jint iconID,
|
||||
jint cxDesired, jint cyDesired, jboolean useVGAColors)
|
||||
{
|
||||
HINSTANCE libHandle = LoadLibrary(JNU_GetStringPlatformChars(env, libName, NULL));
|
||||
const char *pLibName = env->GetStringUTFChars(libName, NULL);
|
||||
HINSTANCE libHandle = (HINSTANCE)JDK_LoadSystemLibrary(pLibName);
|
||||
if (libHandle != NULL) {
|
||||
UINT fuLoad = (useVGAColors && !IS_WINXP) ? LR_VGACOLOR : 0;
|
||||
return ptr_to_jlong(LoadImage(libHandle, MAKEINTRESOURCE(iconID),
|
||||
|
||||
@ -150,7 +150,7 @@ static PFNGETTHEMETRANSITIONDURATION GetThemeTransitionDuration = NULL;
|
||||
|
||||
BOOL InitThemes() {
|
||||
static HMODULE hModThemes = NULL;
|
||||
hModThemes = LoadLibrary(TEXT("UXTHEME.DLL"));
|
||||
hModThemes = JDK_LoadSystemLibrary("UXTHEME.DLL");
|
||||
DTRACE_PRINTLN1("InitThemes hModThemes = %x\n", hModThemes);
|
||||
if(hModThemes) {
|
||||
DTRACE_PRINTLN("Loaded UxTheme.dll\n");
|
||||
|
||||
@ -43,12 +43,13 @@ extern "C"
|
||||
mlibSysFnS_t tempSysFns;
|
||||
mlib_status ret = MLIB_SUCCESS;
|
||||
|
||||
/* Try to load library. Routine should find the library successfully
|
||||
* because this library is already loaded to the process space by
|
||||
* the System.loadLibrary() call. Here we just need to get handle to
|
||||
* initialize the pointers to required mlib routines.
|
||||
/* Try to receive handle for the library. Routine should find
|
||||
* the library successfully because this library is already
|
||||
* loaded to the process space by the System.loadLibrary() call.
|
||||
* Here we just need to get handle to initialize the pointers to
|
||||
* required mlib routines.
|
||||
*/
|
||||
hDLL = ::LoadLibrary(TEXT("mlib_image.dll"));
|
||||
hDLL = ::GetModuleHandle(TEXT("mlib_image.dll"));
|
||||
|
||||
if (hDLL == NULL) {
|
||||
return MLIB_FAILURE;
|
||||
@ -94,9 +95,6 @@ extern "C"
|
||||
i++;
|
||||
}
|
||||
|
||||
if (ret != MLIB_SUCCESS) {
|
||||
::FreeLibrary(hDLL);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ void AwtTextArea::Dispose()
|
||||
LPCTSTR AwtTextArea::GetClassName() {
|
||||
static BOOL richedLibraryLoaded = FALSE;
|
||||
if (!richedLibraryLoaded) {
|
||||
::LoadLibrary(TEXT("RICHED20.DLL"));
|
||||
JDK_LoadSystemLibrary("RICHED20.DLL");
|
||||
richedLibraryLoaded = TRUE;
|
||||
}
|
||||
return RICHEDIT_CLASS;
|
||||
|
||||
@ -185,7 +185,7 @@ void AwtTrayIcon::InitNID(UINT uID)
|
||||
int shellVersion = 5; // WIN_2000
|
||||
// MSDN: DllGetVersion should not be implicitly called, but rather
|
||||
// loaded using GetProcAddress
|
||||
HMODULE hShell = LoadLibrary(TEXT("Shell32.dll"));
|
||||
HMODULE hShell = JDK_LoadSystemLibrary("Shell32.dll");
|
||||
if (hShell != NULL) {
|
||||
DLLGETVERSIONPROC proc = (DLLGETVERSIONPROC)GetProcAddress(hShell, "DllGetVersion");
|
||||
if (proc != NULL) {
|
||||
|
||||
@ -63,7 +63,7 @@ SetProcessDPIAwareProperty()
|
||||
|
||||
bAlreadySet = TRUE;
|
||||
|
||||
HMODULE hLibUser32Dll = ::LoadLibrary(TEXT("user32.dll"));
|
||||
HMODULE hLibUser32Dll = JDK_LoadSystemLibrary("user32.dll");
|
||||
|
||||
if (hLibUser32Dll != NULL) {
|
||||
SetProcessDPIAwareFunc *lpSetProcessDPIAware =
|
||||
|
||||
@ -47,6 +47,7 @@ extern "C" {
|
||||
// standard Java headers
|
||||
#include <jni.h>
|
||||
#include <jni_util.h>
|
||||
#include <jdk_util.h>
|
||||
|
||||
} // extern "C"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user