Revision: 9525
Author: [email protected]
Date: Wed Jan 12 09:43:25 2011
Log: fix for NPVariant numbers. (new webkit v8 bindings give us doubles for
ints)
Issue: http://code.google.com/p/google-web-toolkit/issues/detail?id=5778
Breaking WebKit change: http://trac.webkit.org/changeset/72974
Review at http://gwt-code-reviews.appspot.com/1277801
http://code.google.com/p/google-web-toolkit/source/detail?r=9525
Modified:
/trunk/plugins/npapi/NPVariantWrapper.h
/trunk/plugins/npapi/main.cpp
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Darwin-gcc3/gwtDev.plugin/Contents/MacOS/libGwtDevPlugin.dylib
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Linux_x86-gcc3/libGwtDevPlugin.so
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Linux_x86_64-gcc3/libGwtDevPlugin.so
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/WINNT_x86-msvc/npGwtDevPlugin.dll
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/manifest.json
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin.crx
=======================================
--- /trunk/plugins/npapi/NPVariantWrapper.h Tue Nov 23 05:51:12 2010
+++ /trunk/plugins/npapi/NPVariantWrapper.h Wed Jan 12 09:43:25 2011
@@ -81,8 +81,20 @@
return isInt(variant);
}
+ // Return true if the variant is holding a regular integer or an
integral double.
static int isInt(const NPVariant& variant) {
- return NPVARIANT_IS_INT32(variant);
+ if (NPVARIANT_IS_INT32(variant)) {
+ return 1;
+ } else if (NPVARIANT_IS_DOUBLE(variant)) {
+ // As of http://trac.webkit.org/changeset/72974 we get doubles for
all
+ // numerical variants out of V8.
+ double d = NPVARIANT_TO_DOUBLE(variant);
+ int i = static_cast<int>(d);
+ // Verify that d is an integral value in range.
+ return (d == static_cast<double>(i));
+ } else {
+ return 0;
+ }
}
int getAsInt() const {
@@ -90,10 +102,16 @@
}
static int getAsInt(const NPVariant& variant) {
- if (NPVARIANT_IS_INT32(variant)) {
- return NPVARIANT_TO_INT32(variant);
- }
- Debug::log(Debug::Error) << "getAsInt: variant not int" <<
Debug::flush;
+ if (isInt(variant)) {
+ if (NPVARIANT_IS_INT32(variant)) {
+ return NPVARIANT_TO_INT32(variant);
+ } else if (NPVARIANT_IS_DOUBLE(variant)) {
+ return static_cast<int>(NPVARIANT_TO_DOUBLE(variant));
+ }
+ }
+
+ Debug::log(Debug::Error) << "getAsInt: variant " <<
+ NPVariantProxy::toString(variant) << "not int" << Debug::flush;
return 0;
}
=======================================
--- /trunk/plugins/npapi/main.cpp Tue Nov 23 05:51:12 2010
+++ /trunk/plugins/npapi/main.cpp Wed Jan 12 09:43:25 2011
@@ -238,7 +238,7 @@
}
int16 NPP_HandleEvent(NPP instance, void* event) {
- Debug::log(Debug::Spam) << "NPP_HandleEvent(instance=" << instance
<< ")" << Debug::flush;
+ //Debug::log(Debug::Spam) << "NPP_HandleEvent(instance=" << instance
<< ")" << Debug::flush;
return 0 ;
}
=======================================
---
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Darwin-gcc3/gwtDev.plugin/Contents/MacOS/libGwtDevPlugin.dylib
Tue Nov 23 05:51:12 2010
+++
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Darwin-gcc3/gwtDev.plugin/Contents/MacOS/libGwtDevPlugin.dylib
Wed Jan 12 09:43:25 2011
Binary file, no diff available.
=======================================
---
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Linux_x86-gcc3/libGwtDevPlugin.so
Tue Nov 23 05:51:12 2010
+++
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Linux_x86-gcc3/libGwtDevPlugin.so
Wed Jan 12 09:43:25 2011
File is too large to display a diff.
=======================================
---
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Linux_x86_64-gcc3/libGwtDevPlugin.so
Tue Nov 23 05:51:12 2010
+++
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/Linux_x86_64-gcc3/libGwtDevPlugin.so
Wed Jan 12 09:43:25 2011
File is too large to display a diff.
=======================================
---
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/WINNT_x86-msvc/npGwtDevPlugin.dll
Tue Nov 23 05:51:12 2010
+++
/trunk/plugins/npapi/prebuilt/gwt-dev-plugin/WINNT_x86-msvc/npGwtDevPlugin.dll
Wed Jan 12 09:43:25 2011
Binary file, no diff available.
=======================================
--- /trunk/plugins/npapi/prebuilt/gwt-dev-plugin/manifest.json Tue Nov 23
05:51:12 2010
+++ /trunk/plugins/npapi/prebuilt/gwt-dev-plugin/manifest.json Wed Jan 12
09:43:25 2011
@@ -1,6 +1,6 @@
{
"name": "GWT Developer Plugin",
- "version": "1.0.9274",
+ "version": "1.0.9521",
"description": "A plugin to enable debugging with GWT's Development
Mode",
"update_url": "https://dl-ssl.google.com/gwt/plugins/chrome/updates.xml",
"icons": {
=======================================
--- /trunk/plugins/npapi/prebuilt/gwt-dev-plugin.crx Tue Nov 23 05:51:12
2010
+++ /trunk/plugins/npapi/prebuilt/gwt-dev-plugin.crx Wed Jan 12 09:43:25
2011
Binary file, no diff available.
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors