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)