Cleanups based on review feedback.
Review by: scottb
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@575 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/jni/linux/JsRootedValue.h b/jni/linux/JsRootedValue.h
index 663200e..7aaf9bb 100644
--- a/jni/linux/JsRootedValue.h
+++ b/jni/linux/JsRootedValue.h
@@ -195,7 +195,8 @@
*/
double getDouble() const {
jsdouble return_value=0.0;
- void(JS_ValueToNumber(context_, value_, &return_value));
+ // ignore return value -- if it failes, value will remain 0.0
+ JS_ValueToNumber(context_, value_, &return_value);
return double(return_value);
}
/*
diff --git a/jni/linux/LowLevelMoz.cpp b/jni/linux/LowLevelMoz.cpp
index 424218b..676e4ca 100644
--- a/jni/linux/LowLevelMoz.cpp
+++ b/jni/linux/LowLevelMoz.cpp
@@ -340,7 +340,7 @@
*/
extern "C" JNIEXPORT jboolean JNICALL
Java_com_google_gwt_dev_shell_moz_LowLevelMoz__1invoke
- (JNIEnv* env, jclass, int scriptObjInt, jstring methodName, jint jsThisInt,
+ (JNIEnv* env, jclass, jint scriptObjInt, jstring methodName, jint jsThisInt,
jintArray jsArgsInt, jint jsRetValInt)
{
Tracer tracer("LowLevelMoz._invoke");
diff --git a/jni/linux/Makefile b/jni/linux/Makefile
index cfde4f6..8c42ae3 100644
--- a/jni/linux/Makefile
+++ b/jni/linux/Makefile
@@ -15,21 +15,23 @@
##
# Target settings
##
-MOZ_SRC=/usr/local/google/home/jat/src/mozilla
-JAVA_HOME=/usr/lib/j2sdk1.5-sun
-GWT_TOOLS=../../../gwt-tools
+#JAVA_HOME
+#JAVA_HOME=/usr/lib/j2sdk1.5-sun
+
+# set GWT_TOOLS only if it is not already defined
+GWT_TOOLS ?= ../../../tools
GWT_ROOT = ../../
OBJDIR := $(GWT_ROOT)build/out/jni/linux/
OUTDIR := $(GWT_ROOT)build/jni/linux/
-STAGING := $(GWT_ROOT)build/staging/gwt-linux-0.0.0/
OUT := $(OUTDIR)libgwt-ll.so
##
# The location to get .class files from for javah
##
CLASSDIR := $(GWT_ROOT)build/out/dev/linux/bin
-# use this if you want to use eclipse to build the class files during
+
+# use this instead if you want to use eclipse to build the class files during
# development
#CLASSDIR := $(GWT_ROOT)eclipse/dev/linux/bin
@@ -40,7 +42,7 @@
AR := ar
STRIP := strip
LD := $(CXX)
-JAVAH := javah
+JAVAH := $(JAVA_HOME)/bin/javah
##
# List of source, object, and dependency paths plus the path to them
@@ -85,9 +87,8 @@
# default rule
##
all: $(OUT)
- @[ -d $(STAGING) ] || mkdir -p $(STAGING)
- cp $(OUT) $(STAGING)
+# install into prebuilt directory
install: $(OUT)
cp $(OUT) prebuilt/
@@ -109,8 +110,8 @@
# Dependency rules for generated headers
# TODO(jat): autogenerate these and others
##
-$(OBJDIR)LowLevelMoz.o: $(OBJDIR)LowLevelMoz.h
-$(OBJDIR)JsValueMoz.o: $(OBJDIR)JsValueMoz.h
+$(OBJDIR)LowLevelMoz.o: $(OBJDIR)LowLevelMoz.h $(JAVA_HOME)/include/jni.h
+$(OBJDIR)JsValueMoz.o: $(OBJDIR)JsValueMoz.h $(JAVA_HOME)/include/jni.h
##
# Compilation rule for cpp files
@@ -119,6 +120,7 @@
@[ -d $(OBJDIR) ] || mkdir -p $(OBJDIR)
$(CXX) -c $(CFLAGS) $(INCS) -o $@ $<
+# generate preprocessed output files upon request for debugging
%.i : $(SRCDIR)%.cpp
$(CXX) -E $(CFLAGS) $(INCS) -o $@ $<
@@ -128,10 +130,10 @@
##
# Actual output file
##
-$(OUT): $(OBJS)
+$(OUT): $(OBJS) $(GWT_TOOLS)/sdk/mozilla-1.7.12/lib/libxpcomglue_s.a
@[ -d $(OUTDIR) ] || mkdir -p $(OUTDIR)
$(LD) -shared $(LDFLAGS) $(LIBPATH) -o $@ $^ $(LIBS)
-# $(STRIP) --strip-unneeded $@
+ $(STRIP) --strip-unneeded $@
##
# Clean rule
diff --git a/jni/mac/gwt-webkit.cpp b/jni/mac/gwt-webkit.cpp
index 86b61d4..08d854b 100644
--- a/jni/mac/gwt-webkit.cpp
+++ b/jni/mac/gwt-webkit.cpp
@@ -255,9 +255,11 @@
JNIEXPORT jboolean JNICALL Java_com_google_gwt_dev_shell_mac_LowLevelSaf__1convertDouble
(JNIEnv *env, jclass, jdouble jval, jintArray rval) {
TRACE("ENTER LowLevelSaf__1convertDouble");
+#ifdef ENABLE_TRACING
char buf[256];
snprintf(buf, sizeof(buf), " val=%lf", jval);
TRACE(buf);
+#endif
JSValue *jsval = jsNumber(jval);
if (!jsval)
@@ -283,9 +285,11 @@
JStringWrap jstr(env, jval);
if (!jstr.jstr())
return JNI_FALSE;
+#ifdef ENABLE_TRACING
char buf[256];
snprintf(buf, sizeof(buf), " val=%s", jstr.str());
TRACE(buf);
+#endif
JSValue *jsval = jsString(UString((const UChar*)jstr.jstr(), jstr.length()));
/*
@@ -298,8 +302,10 @@
if (!jsval)
return JNI_FALSE;
+#ifdef ENABLE_TRACING
snprintf(buf, sizeof(buf), " return={%08x} ", unsigned(jsval));
PrintJSValue(jsval, buf);
+#endif
env->SetIntArrayRegion(rval,0,1,(const jint*)&jsval);
if (env->ExceptionCheck())
@@ -323,9 +329,11 @@
JStringWrap jcode(env, code);
if (!jcode.jstr())
return JNI_FALSE;
+#ifdef ENABLE_TRACING
char buf[1024];
snprintf(buf, sizeof(buf), " code=%s", jcode.str());
TRACE(buf);
+#endif
Interpreter* interp = ((ExecState*)execState)->dynamicInterpreter();
if (!interp)
@@ -354,10 +362,12 @@
JStringWrap jfile(env, file);
if (!jcode.jstr())
return JNI_FALSE;
-
+
+#ifdef ENABLE_TRACING
char buf[1024];
snprintf(buf, sizeof(buf), " code=%s, file=%s, line=%d", jcode.str(), jfile.str(), line);
TRACE(buf);
+#endif
Interpreter* interp = ((ExecState*)execState)->dynamicInterpreter();
if (!interp)
@@ -463,11 +473,13 @@
if (!jsexecState || !jsScriptObject || !method || !rval)
return JNI_FALSE;
JStringWrap jmethod(env, method);
+#ifdef ENABLE_TRACING
char buf[256];
snprintf(buf, sizeof(buf), "sciptObject=%08x, method=%s, argc=%d",
jsScriptObject, jmethod.str(), argc);
TRACE(buf);
PrintJSValue((JSValue*)jsthis, " jsthis=");
+#endif
ExecState* execState = (ExecState*)jsexecState;
JSObject* scriptObj = (JSObject*)jsScriptObject;
@@ -498,9 +510,11 @@
env->GetIntArrayRegion(argv, i, 1, &argi);
if (env->ExceptionCheck())
return JNI_FALSE;
+#ifdef ENABLE_TRACING
snprintf(buf, sizeof(buf), " arg[%d]={%08x} ", i, argi);
TRACE(buf);
PrintJSValue((JSValue*)argi, buf);
+#endif
if (argi) {
args.append((JSValue*)argi);
} else {
@@ -510,7 +524,9 @@
JSValue* result = func->call(execState, thisObj, args);
gcProtectNullTolerant(result);
+#ifdef ENABLE_TRACING
PrintJSValue(result, " return=");
+#endif
env->SetIntArrayRegion(rval, 0, 1, (jint*)&result);
if (env->ExceptionCheck())
return JNI_FALSE;
@@ -685,9 +701,11 @@
* out in favor of better memory mgmt scheme.
*/
gcProtectNullTolerant(wrapper);
+#ifdef ENABLE_TRACING
char buf[256];
snprintf(buf, sizeof(buf), " return={%08x} ", unsigned(wrapper));
PrintJSValue((JSValue*)wrapper, buf);
+#endif
env->SetIntArrayRegion(rval, 0, 1, (jint*)&wrapper);
if (env->ExceptionCheck())
@@ -722,9 +740,11 @@
* out in favor of better memory mgmt scheme.
*/
gcProtectNullTolerant(wrapper);
+#ifdef ENABLE_TRACING
char buf[256];
snprintf(buf, sizeof(buf), " return={%08x} ", unsigned(wrapper));
PrintJSValue((JSValue*)wrapper, buf);
+#endif
env->SetIntArrayRegion(rval, 0, 1, (jint*)&wrapper);
if (env->ExceptionCheck())
return JNI_FALSE;
diff --git a/jni/mac/gwt-webkit.h b/jni/mac/gwt-webkit.h
index 1cf9cb8..d235e06 100644
--- a/jni/mac/gwt-webkit.h
+++ b/jni/mac/gwt-webkit.h
@@ -31,6 +31,10 @@
//#define FILETRACE
//#define JAVATRACE
+#if define(FILETRACE) || defined(JAVATRACE)
+#define ENABLE_TRACING
+#endif
+
#if defined(FILETRACE) && defined(JAVATRACE)
#define TRACE(s) filetrace(s),javatrace(s)
#elif defined(FILETRACE)