-
Bug
-
Resolution: Fixed
-
P3
-
9
-
x86
-
windows_8
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8154490 | 8u102 | Murali Billa | P3 | Resolved | Fixed |
FULL PRODUCT VERSION :
FX9
ADDITIONAL OS VERSION INFORMATION :
Win8.1
A DESCRIPTION OF THE PROBLEM :
In web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp, in the method:
static jmethodID initMethod(JNIEnv* env, jclass cls, char* name, const char* signature)
With VS2013+update5, Microsoft C++ compiler raises error "C2664: cannot convert 'const char *' to 'char *' " when "/Zc:strictStrings" is set.
This bug is similar to bug https://bugs.openjdk.java.net/browse/JDK-8090061.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Build FX with VS2013+up5 and enable webkit build with COMPILE_WEBKIT=true.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
..\..\..\..\src\main\native\Source\WebCore\platform\java\api\BackForwardListJava.cpp(46) : error C2664: 'jmethodID initMethod(JNIEnv *,jclass,char *,const char
*)' : cannot convert argument 3 from 'const char [7]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)
..\..\..\..\src\main\native\Source\WebCore\platform\java\api\BackForwardListJava
.cpp(87) : error C2664: 'jmethodID initMethod(JNIEnv *,jclass,char *,const char*)' : cannot convert argument 3 from 'const char [18]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)
..\..\..\..\src\main\native\Source\WebCore\platform\java\api\BackForwardListJava.cpp(98) : error C2664: 'jmethodID initMethod(JNIEnv *,jclass,char *,const char
*)' : cannot convert argument 3 from 'const char [20]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)
..\..\..\..\src\main\native\Source\WebCore\platform\java\api\BackForwardListJava
.cpp(311) : error C2664: 'jmethodID initMethod(JNIEnv *,jclass,char *,const char *)' : cannot convert argument 3 from 'const char [14]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0
\VC\BIN\amd64\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '(' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
:web:compileNativeWin FAILED
--
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
The following patch fixes this problem.(Tested on win, linux and MacOSx)
diff --git a/modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp b/modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp
--- a/modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp
+++ b/modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp
@@ -34,7 +34,7 @@
return static_cast<HistoryItem*>(jlong_to_ptr(jitem));
}
-static jmethodID initMethod(JNIEnv* env, jclass cls, char* name, const char* signature)
+static jmethodID initMethod(JNIEnv* env, jclass cls, const char* name, const char* signature)
{
jmethodID mid = env->GetMethodID(cls, name, signature);
ASSERT(mid);
FX9
ADDITIONAL OS VERSION INFORMATION :
Win8.1
A DESCRIPTION OF THE PROBLEM :
In web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp, in the method:
static jmethodID initMethod(JNIEnv* env, jclass cls, char* name, const char* signature)
With VS2013+update5, Microsoft C++ compiler raises error "C2664: cannot convert 'const char *' to 'char *' " when "/Zc:strictStrings" is set.
This bug is similar to bug https://bugs.openjdk.java.net/browse/JDK-8090061.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Build FX with VS2013+up5 and enable webkit build with COMPILE_WEBKIT=true.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
..\..\..\..\src\main\native\Source\WebCore\platform\java\api\BackForwardListJava.cpp(46) : error C2664: 'jmethodID initMethod(JNIEnv *,jclass,char *,const char
*)' : cannot convert argument 3 from 'const char [7]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)
..\..\..\..\src\main\native\Source\WebCore\platform\java\api\BackForwardListJava
.cpp(87) : error C2664: 'jmethodID initMethod(JNIEnv *,jclass,char *,const char*)' : cannot convert argument 3 from 'const char [18]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)
..\..\..\..\src\main\native\Source\WebCore\platform\java\api\BackForwardListJava.cpp(98) : error C2664: 'jmethodID initMethod(JNIEnv *,jclass,char *,const char
*)' : cannot convert argument 3 from 'const char [20]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)
..\..\..\..\src\main\native\Source\WebCore\platform\java\api\BackForwardListJava
.cpp(311) : error C2664: 'jmethodID initMethod(JNIEnv *,jclass,char *,const char *)' : cannot convert argument 3 from 'const char [14]' to 'char *'
Conversion from string literal loses const qualifier (see /Zc:strictStrings)
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0
\VC\BIN\amd64\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '(' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
:web:compileNativeWin FAILED
--
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
The following patch fixes this problem.(Tested on win, linux and MacOSx)
diff --git a/modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp b/modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp
--- a/modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp
+++ b/modules/web/src/main/native/Source/WebCore/platform/java/api/BackForwardListJava.cpp
@@ -34,7 +34,7 @@
return static_cast<HistoryItem*>(jlong_to_ptr(jitem));
}
-static jmethodID initMethod(JNIEnv* env, jclass cls, char* name, const char* signature)
+static jmethodID initMethod(JNIEnv* env, jclass cls, const char* name, const char* signature)
{
jmethodID mid = env->GetMethodID(cls, name, signature);
ASSERT(mid);
- backported by
-
JDK-8154490 Webkit: Conversion from string literal loses const qualifier
-
- Resolved
-