Index: modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.cpp =================================================================== --- modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.cpp (revision 507827) +++ modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.cpp (working copy) @@ -266,7 +266,7 @@ return NULL; } - return env->NewString(info.wszWebCharset, (jsize)wcslen(info.wszWebCharset)); + return env->NewString((const jchar *)info.wszWebCharset, (jsize)wcslen(info.wszWebCharset)); } JNIEXPORT jobjectArray JNICALL @@ -371,14 +371,14 @@ jstring WinDataObject::getStringA(JNIEnv * env, const char * cstr) { if (cstr == NULL) { - return env->NewString(L"", 0); + return env->NewString((const jchar *)L"", 0); } jstring jstr = NULL; int len = MultiByteToWideChar(CP_ACP, 0, cstr, -1, NULL, 0); if (len > 0) { wchar_t * wstr = new wchar_t[len]; if (len == MultiByteToWideChar(CP_ACP, 0, cstr, -1, wstr, len)) { - jstr = env->NewString(wstr, (jsize)wcslen(wstr)); + jstr = env->NewString((const jchar *)wstr, (jsize)wcslen(wstr)); } delete [] wstr; } @@ -395,9 +395,9 @@ jstring WinDataObject::getStringW(JNIEnv * env, HGLOBAL hGlobal) { wchar_t * wstr = (wchar_t *)GlobalLock(hGlobal); if (wstr == NULL) { - return env->NewString(L"", 0); + return env->NewString((const jchar *)L"", 0); } - jstring jstr = env->NewString(wstr, (jsize)wcslen(wstr)); + jstring jstr = env->NewString((const jchar *)wstr, (jsize)wcslen(wstr)); GlobalUnlock(hGlobal); return jstr; } @@ -456,7 +456,7 @@ wstr = files; for (jsize i=0; *wstr; i++) { size_t len = wcslen(wstr); - jstring jstr = env->NewString(wstr, (jsize)len); + jstring jstr = env->NewString((const jchar *)wstr, (jsize)len); wstr += len + 1; env->SetObjectArrayElement(result, i, jstr); } @@ -862,7 +862,7 @@ FORMATETC format = { 0, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; jboolean isCopy; const jchar * name = env->GetStringChars(nativeFormat, &isCopy); - format.cfFormat = RegisterClipboardFormatW(name); + format.cfFormat = RegisterClipboardFormatW((LPCWSTR)name); env->ReleaseStringChars(nativeFormat, name); STGMEDIUM stgmed; @@ -921,8 +921,8 @@ return result; } const jchar * formatNameW = env->GetStringChars(nativeFormat, NULL); - if (wcsstr(formatNameW, FORMAT_SERIALIZED) != NULL) { - UINT format = RegisterClipboardFormatW(formatNameW); + if (wcsstr((const wchar_t *)formatNameW, FORMAT_SERIALIZED) != NULL) { + UINT format = RegisterClipboardFormatW((LPCWSTR)formatNameW); if (format != 0) { result = queryFormat(dataObject, format); } @@ -936,7 +936,7 @@ wchar_t formatName[formatNameLength]; if (0 != GetClipboardFormatNameW(format, formatName, formatNameLength) ) { if (wcsstr(formatName, FORMAT_SERIALIZED) != NULL) { - return env->NewString(formatName, (jsize)wcslen(formatName)); + return env->NewString((const jchar *)formatName, (jsize)wcslen(formatName)); } } return NULL; @@ -991,8 +991,8 @@ UINT WinDataObject::getSerializedFormat(JNIEnv * env, jstring formatName) { const jchar * formatNameW = env->GetStringChars(formatName, NULL); UINT result = 0; - if (wcsstr(formatNameW, FORMAT_SERIALIZED) != NULL) { - result = RegisterClipboardFormatW(formatNameW); + if (wcsstr((const wchar_t *)formatNameW, FORMAT_SERIALIZED) != NULL) { + result = RegisterClipboardFormatW((LPCWSTR)formatNameW); } env->ReleaseStringChars(formatName, formatNameW); return result; @@ -1130,7 +1130,7 @@ if (wstr == NULL) { return NULL; } - env->GetStringRegion(text, 0, len, wstr); + env->GetStringRegion(text, 0, len, (jchar *)wstr); wstr[len] = 0; return (HGLOBAL)wstr; } @@ -1140,7 +1140,7 @@ if (wstr == NULL) { return NULL; } - env->GetStringRegion(text, 0, len, wstr); + env->GetStringRegion(text, 0, len, (jchar *)wstr); wstr[len] = 0; int cLen = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL); @@ -1241,7 +1241,7 @@ (jstring)env->GetObjectArrayElement(fileList, i); jsize len = (jstr != NULL) ? env->GetStringLength(jstr) : 0; if (len != 0) { - env->GetStringRegion(jstr, 0, len, wstr + charCount); + env->GetStringRegion(jstr, 0, len, (jchar *)(wstr + charCount)); charCount += len + 1; wstr[charCount - 1] = 0; } Index: modules/awt/src/main/native/winfont/windows/winFont.cpp =================================================================== --- modules/awt/src/main/native/winfont/windows/winFont.cpp (revision 507827) +++ modules/awt/src/main/native/winfont/windows/winFont.cpp (working copy) @@ -377,7 +377,7 @@ initStr); for (;i < famCount;i++){ - env->SetObjectArrayElement(ret,i,env->NewString(families[i], (jsize)_tcslen(families[i]))); // number of chars == length of string -1 + env->SetObjectArrayElement(ret,i,env->NewString((const jchar *)families[i], (jsize)_tcslen(families[i]))); // number of chars == length of string -1 } return ret; @@ -431,7 +431,7 @@ initStr); for (;i < fonts.count; i++){ - env->SetObjectArrayElement(faces,i,env->NewString(fonts.faceNames[i], (jsize)_tcslen(fonts.faceNames[i]))); // number of chars == length of string -1 + env->SetObjectArrayElement(faces,i,env->NewString((const jchar *)fonts.faceNames[i], (jsize)_tcslen(fonts.faceNames[i]))); // number of chars == length of string -1 } @@ -469,7 +469,7 @@ // message to other applications about installed font // SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); - env->ReleaseStringCritical(absPath, path); + env->ReleaseStringCritical(absPath, (const jchar *)path); return fontAdded; } @@ -519,7 +519,7 @@ lf.lfPitchAndFamily = DEFAULT_PITCH; length = env->GetStringLength(jFace); - fontName = env->GetStringCritical(jFace, &iscopy); + fontName = (const TCHAR *)env->GetStringCritical(jFace, &iscopy); lf.lfFaceName[0] = 0; if ( fontName ) { @@ -529,7 +529,7 @@ } } - env->ReleaseStringCritical(jFace, fontName); + env->ReleaseStringCritical(jFace, (const jchar *)fontName); res = CreateFontIndirect(& lf); @@ -652,7 +652,7 @@ _tcscpy(name, (TCHAR *)((char *) outm + (int) outm[0].otmpFamilyName)); - res = env->NewString(name, (int)_tcslen(name)); + res = env->NewString((const jchar *)name, (int)_tcslen(name)); SelectObject(hDC, hOld); DeleteDC(hDC); @@ -687,7 +687,7 @@ memset(& name, 0, sizeof(name)); _tcscpy(name, (TCHAR *)((char *) outm + (int) outm[0].otmpFaceName)); - res = env->NewString(name, (jsize)_tcslen(name)); + res = env->NewString((const jchar *)name, (jsize)_tcslen(name)); SelectObject(hDC, hOld); DeleteDC(hDC); @@ -727,7 +727,7 @@ fontRemoved = RemoveFontResource(path); - env->ReleaseStringCritical(absPath, path); + env->ReleaseStringCritical(absPath, (const jchar *)path); return fontRemoved; } @@ -842,7 +842,7 @@ break; fontName = (const TCHAR *) szValueName; - pdest = _tcsstr( fontName, TrueType ); + pdest = (TCHAR *)_tcsstr( fontName, TrueType ); if (pdest !=NULL ){ if (counter == (size - 1)) { size = size << 1; @@ -868,7 +868,7 @@ initStr); for (i = 0;i < counter;i++){ - env->SetObjectArrayElement(ret,i,env->NewString(fontNames[i], fontSizes[i])); + env->SetObjectArrayElement(ret,i,env->NewString((const jchar *)fontNames[i], fontSizes[i])); free(fontNames[i]); } @@ -1185,7 +1185,7 @@ free(arr); SelectObject(hDC, hOld); DeleteDC(hDC); - env->ReleaseStringCritical(str, chars); + env->ReleaseStringCritical(str, (const jchar *)chars); return intArray; } @@ -1405,7 +1405,7 @@ env->SetShortArrayRegion(LCIDs, 0, size, lcidTable.lcids); for (i = 0; i < size; i++){ - env->SetObjectArrayElement(shortStrings, i, env->NewString((TCHAR *)lcidTable.names[i], (jsize)_tcslen(lcidTable.names[i]))); + env->SetObjectArrayElement(shortStrings, i, env->NewString((const jchar *)(TCHAR *)lcidTable.names[i], (jsize)_tcslen(lcidTable.names[i]))); } return size; @@ -1464,7 +1464,7 @@ PointF *origin = new PointF(xOffset, yOffset); - text = env->GetStringCritical( jText, &iscopy); + text = (const TCHAR *)env->GetStringCritical( jText, &iscopy); result = graphics->DrawString(text, length, @@ -1472,7 +1472,7 @@ *origin, brush); - env->ReleaseStringCritical(jText, text); + env->ReleaseStringCritical(jText, (const jchar *)text); delete origin; delete gdipFont; Index: modules/luni/src/main/native/luni/windows/OSMemoryWin32.c =================================================================== --- modules/luni/src/main/native/luni/windows/OSMemoryWin32.c (revision 507827) +++ modules/luni/src/main/native/luni/windows/OSMemoryWin32.c (working copy) @@ -24,6 +24,11 @@ #include "OSMemory.h" #include "IMemorySystem.h" + +#ifdef _WIN64 + #define __ptr64 __int64 * +#endif + JNIEXPORT jboolean JNICALL Java_org_apache_harmony_luni_platform_OSMemory_isLittleEndianImpl (JNIEnv * env, jclass clazz) { @@ -45,7 +50,7 @@ (JNIEnv * env, jobject thiz, jlong address) { #if defined(_WIN64) - return *(POINTER_64) address; + return *((POINTER_64) address); #else return (jlong) * (long *) address; #endif @@ -56,7 +61,7 @@ (JNIEnv * env, jobject thiz, jlong address, jlong value) { #if defined(_WIN64) - *(POINTER_64) address = value; + *((POINTER_64) address) = value; #else *(long *) address = (long) value; #endif Index: modules/portlib/src/main/native/include/shared/hyport.h =================================================================== --- modules/portlib/src/main/native/include/shared/hyport.h (revision 507827) +++ modules/portlib/src/main/native/include/shared/hyport.h (working copy) @@ -1022,6 +1022,7 @@ #define HYPORT_ARCH_S390X "s390x" #define HYPORT_ARCH_PARISC "PA-RISC" #define HYPORT_ARCH_X86_64 "amd64" +#define HYPORT_ARCH_HAMMER "hammer" #define HYPORT_TTY_IN 0 #define HYPORT_TTY_OUT 1 #define HYPORT_TTY_ERR 2 Index: modules/portlib/src/main/native/port/windows/hysignal.c =================================================================== --- modules/portlib/src/main/native/port/windows/hysignal.c (revision 507827) +++ modules/portlib/src/main/native/port/windows/hysignal.c (working copy) @@ -479,8 +479,30 @@ } #undef CDEV_CURRENT_FUNCTION +#define CDEV_CURRENT_FUNCTION infoForGPR -#define CDEV_CURRENT_FUNCTION infoForGPR +#ifdef _WIN64 + #define _EDI_ Rdi + #define _ESI_ Rsi + #define _EAX_ Rax + #define _EBX_ Rbx + #define _ECX_ Rcx + #define _EDX_ Rdx + #define _EIP_ Rip + #define _ESP_ Rsp + #define _EBP_ Rbp +#else + #define _EDI_ Edi + #define _ESI_ Esi + #define _EAX_ Eax + #define _EBX_ Ebx + #define _ECX_ Ecx + #define _EDX_ Edx + #define _EIP_ Eip + #define _ESP_ Esp + #define _EBP_ Ebp +#endif + static U_32 infoForGPR (struct HyPortLibrary *portLibrary, struct HyWin32SignalInfo *info, I_32 index, const char **name, void **value) @@ -494,37 +516,37 @@ case HYPORT_SIG_GPR_X86_EDI: case 0: *name = "EDI"; - *value = &info->ContextRecord->Edi; + *value = &info->ContextRecord->_EDI_; return HYPORT_SIG_VALUE_ADDRESS; case HYPORT_SIG_GPR_X86_ESI: case 1: *name = "ESI"; - *value = &info->ContextRecord->Esi; + *value = &info->ContextRecord->_ESI_; return HYPORT_SIG_VALUE_ADDRESS; case HYPORT_SIG_GPR_X86_EAX: case 2: *name = "EAX"; - *value = &info->ContextRecord->Eax; + *value = &info->ContextRecord->_EAX_; return HYPORT_SIG_VALUE_ADDRESS; case HYPORT_SIG_GPR_X86_EBX: case 3: *name = "EBX"; - *value = &info->ContextRecord->Ebx; + *value = &info->ContextRecord->_EBX_; return HYPORT_SIG_VALUE_ADDRESS; case HYPORT_SIG_GPR_X86_ECX: case 4: *name = "ECX"; - *value = &info->ContextRecord->Ecx; + *value = &info->ContextRecord->_ECX_; return HYPORT_SIG_VALUE_ADDRESS; case HYPORT_SIG_GPR_X86_EDX: case 5: *name = "EDX"; - *value = &info->ContextRecord->Edx; + *value = &info->ContextRecord->_EDX_; return HYPORT_SIG_VALUE_ADDRESS; default: @@ -552,19 +574,19 @@ case HYPORT_SIG_CONTROL_PC: case 0: *name = "EIP"; - *value = &info->ContextRecord->Eip; + *value = &info->ContextRecord->_EIP_; return HYPORT_SIG_VALUE_ADDRESS; case HYPORT_SIG_CONTROL_SP: case 1: *name = "ESP"; - *value = &info->ContextRecord->Esp; + *value = &info->ContextRecord->_ESP_; return HYPORT_SIG_VALUE_ADDRESS; case HYPORT_SIG_CONTROL_BP: case 2: *name = "EBP"; - *value = &info->ContextRecord->Ebp; + *value = &info->ContextRecord->_EBP_; return HYPORT_SIG_VALUE_ADDRESS; default: