- fixed problems preventing us from compiling with gcc 4.0
* JavaScriptCore.pbproj/project.pbxproj: Removed -Wmissing-prototypes from
WARNING_CPLUSPLUSFLAGS since it's now a C-only warning.
* bindings/jni/jni_jsobject.cpp:
(JSObject::getSlot): Changed some %d to %ld where the parameters where long ints.
(JSObject::setSlot): Ditto.
* bindings/jni/jni_utility.cpp:
(KJS::Bindings::getJavaVM): Ditto.
(KJS::Bindings::getJNIEnv): Ditto.
* bindings/objc/objc_utility.mm: Fixed include of <JavascriptCore/internal.h> that needed the
letter "S" capitalized.
* kjs/bool_object.cpp: (BooleanProtoFuncImp::call): Rearranged how this function returns to
avoid incorrect gcc 4.0 warning.
* kjs/collector.cpp: (KJS::Collector::markStackObjectsConservatively): Changed code to check
the alignment of the passed-in pointers to only require pointer-level alignment, not 8-byte alignment.
Prevents a crash on garbage collect when compiled with gcc 4.0.
* kjs/nodes.cpp:
(WhileNode::execute): Added a redundant return after an infinite loop to work around incorrect gcc 4.0 warning.
(ForNode::execute): Ditto.
(SwitchNode::execute):Rearranged how this function returns to avoid incorrect gcc 4.0 warning.
(LabelNode::execute): Ditto.
* kjs/string_object.cpp: (replace): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9078
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2005-04-28 Darin Adler <darin@apple.com>
+
+ Reviewed by Dave Harrison.
+
+ - fixed problems preventing us from compiling with gcc 4.0
+
+ * JavaScriptCore.pbproj/project.pbxproj: Removed -Wmissing-prototypes from
+ WARNING_CPLUSPLUSFLAGS since it's now a C-only warning.
+
+ * bindings/jni/jni_jsobject.cpp:
+ (JSObject::getSlot): Changed some %d to %ld where the parameters where long ints.
+ (JSObject::setSlot): Ditto.
+ * bindings/jni/jni_utility.cpp:
+ (KJS::Bindings::getJavaVM): Ditto.
+ (KJS::Bindings::getJNIEnv): Ditto.
+ * bindings/objc/objc_utility.mm: Fixed include of <JavascriptCore/internal.h> that needed the
+ letter "S" capitalized.
+ * kjs/bool_object.cpp: (BooleanProtoFuncImp::call): Rearranged how this function returns to
+ avoid incorrect gcc 4.0 warning.
+ * kjs/collector.cpp: (KJS::Collector::markStackObjectsConservatively): Changed code to check
+ the alignment of the passed-in pointers to only require pointer-level alignment, not 8-byte alignment.
+ Prevents a crash on garbage collect when compiled with gcc 4.0.
+ * kjs/nodes.cpp:
+ (WhileNode::execute): Added a redundant return after an infinite loop to work around incorrect gcc 4.0 warning.
+ (ForNode::execute): Ditto.
+ (SwitchNode::execute):Rearranged how this function returns to avoid incorrect gcc 4.0 warning.
+ (LabelNode::execute): Ditto.
+ * kjs/string_object.cpp: (replace): Ditto.
+
2005-04-26 Richard Williamson <rjw@apple.com>
Fixed <rdar://problem/4098713> Scripting API is incompatible with Mozilla
SECTORDER_FLAGS = "-sectorder __TEXT __text /AppleInternal/OrderFiles/JavaScriptCore.order";
STYLE_LDFLAGS = "-umbrella WebKit -allowable_client JavaScriptGlue";
USE_GCC3_PFE_SUPPORT = YES;
- WARNING_CFLAGS = "-Werror -Wall -W -Wcast-align -Wchar-subscripts -Wformat-security -Wmissing-format-attribute -Wmissing-prototypes -Wpointer-arith -Wwrite-strings -Wno-format-y2k -Wno-unused-parameter -Wno-long-double";
+ WARNING_CFLAGS = "$(WARNING_COMMONFLAGS) -Wmissing-prototypes";
+ WARNING_COMMONFLAGS = "-Werror -Wall -W -Wcast-align -Wchar-subscripts -Wformat-security -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings -Wno-format-y2k -Wno-unused-parameter -Wno-long-double";
+ WARNING_CPLUSPLUSFLAGS = "$(WARNING_COMMONFLAGS)";
WRAPPER_EXTENSION = framework;
};
dependencies = (
jobject JSObject::getSlot(jint index) const
{
- JS_LOG ("index = %d\n", index);
+ JS_LOG ("index = %ld\n", index);
ExecState *exec = _root->interpreter()->globalExec();
Interpreter::lock();
void JSObject::setSlot(jint index, jobject value) const
{
- JS_LOG ("index = %d, value = %p\n", index, value);
+ JS_LOG ("index = %ld, value = %p\n", index, value);
ExecState *exec = _root->interpreter()->globalExec();
Interpreter::lock();
jvm = jvmArray[0];
}
else
- fprintf(stderr, "%s: JNI_GetCreatedJavaVMs failed, returned %d\n", __PRETTY_FUNCTION__, jniError);
+ fprintf(stderr, "%s: JNI_GetCreatedJavaVMs failed, returned %ld\n", __PRETTY_FUNCTION__, jniError);
return jvm;
}
if ( jniError == JNI_OK )
return env;
else
- fprintf(stderr, "%s: AttachCurrentThread failed, returned %d\n", __PRETTY_FUNCTION__, jniError);
+ fprintf(stderr, "%s: AttachCurrentThread failed, returned %ld\n", __PRETTY_FUNCTION__, jniError);
return NULL;
}
*/
#include <Foundation/Foundation.h>
-#include <JavascriptCore/internal.h>
+#include <JavaScriptCore/internal.h>
#include <objc_instance.h>
#include <objc_utility.h>
if (id == ToString)
return String(v.toString(exec));
- else
- return Boolean(v.toBoolean(exec)); /* TODO: optimize for bool case */
+ return Boolean(v.toBoolean(exec)); /* TODO: optimize for bool case */
}
// ------------------------------ BooleanObjectImp -----------------------------
}
}
+#define IS_POINTER_ALIGNED(p) (((int)(p) & (sizeof(char *) - 1)) == 0)
-// cells are 8-byte aligned
-#define IS_POINTER_ALIGNED(p) (((int)(p) & 7) == 0)
+// cells are 8-byte aligned
+#define IS_CELL_ALIGNED(p) (((int)(p) & 7) == 0)
void Collector::markStackObjectsConservatively(void *start, void *end)
{
while (p != e) {
char *x = *p++;
- if (IS_POINTER_ALIGNED(x) && x) {
+ if (IS_CELL_ALIGNED(x) && x) {
bool good = false;
for (int block = 0; block < heap.usedBlocks; block++) {
size_t offset = x - (char *)heap.blocks[block];
if (c.complType() != Normal)
return c;
}
+
+ return Completion(); // work around gcc 4.0 bug
}
void WhileNode::processVarDecls(ExecState *exec)
KJS_CHECKEXCEPTION
}
}
+
+ return Completion(); // work around gcc 4.0 bug
}
void ForNode::processVarDecls(ExecState *exec)
if ((res.complType() == Break) && ls.contains(res.target()))
return Completion(Normal, res.value());
- else
- return res;
+ return res;
}
void SwitchNode::processVarDecls(ExecState *exec)
if ((e.complType() == Break) && (e.target() == label))
return Completion(Normal, e.value());
- else
- return e;
+ return e;
}
void LabelNode::processVarDecls(ExecState *exec)
delete [] replacements;
return String(result);
- } else { // First arg is a string
- UString patternString = pattern.toString(exec);
- int matchPos = source.find(patternString);
- int matchLen = patternString.size();
- // Do the replacement
- if (matchPos == -1)
- return String(source);
- else {
- return String(source.substr(0, matchPos) + replacement.toString(exec) + source.substr(matchPos + matchLen));
- }
}
+
+ // First arg is a string
+ UString patternString = pattern.toString(exec);
+ int matchPos = source.find(patternString);
+ int matchLen = patternString.size();
+ // Do the replacement
+ if (matchPos == -1)
+ return String(source);
+ return String(source.substr(0, matchPos) + replacement.toString(exec) + source.substr(matchPos + matchLen));
}
// ECMA 15.5.4.2 - 15.5.4.20