openbsd-ports/www/firefox35/patches/patch-js_src_jsscript_cpp
landry 0e2574af7a Fix SIGBUS on sparc64 : https://bugzilla.mozilla.org/show_bug.cgi?id=514645
hints from martin@netbsd, many thanks!
ok naddy@
2010-03-25 16:34:09 +00:00

37 lines
1.3 KiB
Plaintext

$OpenBSD: patch-js_src_jsscript_cpp,v 1.1 2010/03/25 16:34:09 landry Exp $
Fix alignment issues on sparc64
https://bugzilla.mozilla.org/show_bug.cgi?id=514645
http://hg.mozilla.org/mozilla-central/rev/4c38883a0438
--- js/src/jsscript.cpp.orig Thu Mar 25 09:11:45 2010
+++ js/src/jsscript.cpp Thu Mar 25 09:13:11 2010
@@ -1430,14 +1430,6 @@ js_NewScript(JSContext *cx, uint32 length, uint32 nsrc
cursor += vectorSize;
}
- if (nupvars != 0) {
- JS_SCRIPT_UPVARS(script)->length = nupvars;
- JS_SCRIPT_UPVARS(script)->vector = (uint32 *)cursor;
- vectorSize = nupvars * sizeof(JS_SCRIPT_UPVARS(script)->vector[0]);
- memset(cursor, 0, vectorSize);
- cursor += vectorSize;
- }
-
if (nregexps != 0) {
JS_SCRIPT_REGEXPS(script)->length = nregexps;
JS_SCRIPT_REGEXPS(script)->vector = (JSObject **)cursor;
@@ -1453,6 +1445,14 @@ js_NewScript(JSContext *cx, uint32 length, uint32 nsrc
#ifdef DEBUG
memset(cursor, 0, vectorSize);
#endif
+ cursor += vectorSize;
+ }
+
+ if (nupvars != 0) {
+ JS_SCRIPT_UPVARS(script)->length = nupvars;
+ JS_SCRIPT_UPVARS(script)->vector = (uint32 *)cursor;
+ vectorSize = nupvars * sizeof(JS_SCRIPT_UPVARS(script)->vector[0]);
+ memset(cursor, 0, vectorSize);
cursor += vectorSize;
}