Package: qtwebkit / 2.3.4.dfsg-3

Metadata

Package Version Patches format
qtwebkit 2.3.4.dfsg-3 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
jsobject_ensure_indexingtype_should_handle_InterceptsGetOwn.patch | (download)

Source/JavaScriptCore/ChangeLog | 38 38 + 0 - 0 !
Source/JavaScriptCore/dfg/DFGOperations.cpp | 28 20 + 8 - 0 !
Source/JavaScriptCore/dfg/DFGOperations.h | 9 5 + 4 - 0 !
Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp | 9 0 + 9 - 0 !
Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h | 10 10 + 0 - 0 !
Source/JavaScriptCore/runtime/JSObject.cpp | 8 8 + 0 - 0 !
Source/JavaScriptCore/runtime/Structure.cpp | 6 6 + 0 - 0 !
7 files changed, 87 insertions(+), 21 deletions(-)

 [patch] jsobject::ensure<indexingtype> should gracefully handle interceptsgetown..., and should never be called when the 'this' is not an object
 https://bugs.webkit.org/show_bug.cgi?id=105468

Reviewed by Mark Hahnenberg, Oliver Hunt, and Gavin Barraclough.
Modified by Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org> to remove
stuff in LayoutTests/* as it's not available in this version.

Source/JavaScriptCore:

Changed JSObject::ensure<IndexingType> methods to gracefully handle
InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero. Most of them handle it by returning
null as a result of indexingShouldBeSparse() returning true, while ensureArrayStorage handles it
by entering dictionary indexing mode, which forces the object to behave correctly even if there
is proxying or weird prototype stuff going on.

Changed DFGOperations entrypoints to reject non-objects, so that JSObject doesn't have to deal
with pretending to be JSString. In particular, this would go wrong in the ArrayStorage case
since we'd try to resize a butterfly on a JSString, but JSString has something other than
m_butterfly at that offset.

Finally, removed all InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero from JIT code
since those are now redundant.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::arrayify):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* runtime/JSObject.cpp:
(JSC::JSObject::enterDictionaryIndexingMode):
(JSC::JSObject::ensureInt32Slow):
(JSC::JSObject::ensureDoubleSlow):
(JSC::JSObject::ensureContiguousSlow):
(JSC::JSObject::ensureArrayStorageSlow):
(JSC):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
* runtime/JSObject.h:
(JSObject):

LayoutTests:

* fast/js/dfg-ensure-array-storage-on-string-expected.txt: Added.
* fast/js/dfg-ensure-array-storage-on-string.html: Added.
* fast/js/dfg-ensure-contiguous-on-string-expected.txt: Added.
* fast/js/dfg-ensure-contiguous-on-string.html: Added.
* fast/js/jsc-test-list
* fast/js/script-tests/dfg-ensure-array-storage-on-string.js: Added.
(foo):
* fast/js/script-tests/dfg-ensure-contiguous-on-string.js: Added.
(foo):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138201 268f45cc-cd09-0410-ab3c-d52691b4dbfc

fix_linking_issue_on_some_platforms_when_building_against_gstreamer_1.0.patch | (download)

Source/WebCore/platform/graphics/gstreamer/PlatformVideoWindowPrivate.h | 3 3 + 0 - 0 !
Source/WebKit/qt/WebCoreSupport/FullScreenVideoQt.cpp | 2 1 + 1 - 0 !
2 files changed, 4 insertions(+), 1 deletion(-)

---
do_not_use_jit_on_big_endian_machines.patch | (download)

Source/WTF/wtf/Platform.h | 8 8 + 0 - 0 !
1 file changed, 8 insertions(+)

 [patch] do not use jit on big endian architectures

All the JIT implementations targets the little-endian versions of ARM,
MIPS and SH4 respectively. So in case anyone builds on those platforms
we should not enable JIT.

Task-number: QTBUG-41896
fix_cloop_on_big_endian_machines.patch | (download)

Source/JavaScriptCore/llint/LowLevelInterpreter.asm | 25 15 + 10 - 0 !
Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm | 2 1 + 1 - 0 !
2 files changed, 16 insertions(+), 11 deletions(-)

 [patch] fix cloop on big-endian machines

Callee and ScopeChain are JSObject pointers and saved in the 64bit
structure for JS registers. On a 32bit big-endian machine the actual
pointer is offset by the PayloadOffset of 4 bytes, but on little-endian
and 64bit architectures there is no offset.

This patch fixes four places the payloadOffset was not correctly added
on 32bit big-endian, and six places it was added on 64big big-endian
when it shouldn't.

Task-number: QTBUG-41896
02_add_nostrip_for_debug_packages.diff | (download)

Tools/qmake/mkspecs/features/default_post.prf | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 set config += nostrip to avoid stripping and
             let dh_strip do it to generate debug packages.
03_hide_std_symbols.diff | (download)

Tools/qmake/mkspecs/features/default_post.prf | 2 2 + 0 - 0 !
Tools/qmake/mkspecs/features/symbols.filter | 5 5 + 0 - 0 !
2 files changed, 7 insertions(+)

 do not make the std:: symbols in webkit public.
             based on Mike Hommey work in the webkit package.
04_enable_debug_information.diff | (download)

Tools/qmake/mkspecs/features/production_build.prf | 2 0 + 2 - 0 !
1 file changed, 2 deletions(-)

 on qt >= 4.5, debug info are disabled for qtwebkit.
             enable debug information in JavaScriptCore
05_sparc_unaligned_access.diff | (download)

Source/WTF/wtf/ListHashSet.h | 9 3 + 6 - 0 !
1 file changed, 3 insertions(+), 6 deletions(-)

 fix some alignment problems on sparc.
no_gc_sections.diff | (download)

Source/WebCore/WebCore.pri | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 do not pass -wl,--gc-sections on powerpc, s390, arm*, mips*, ix86 when building
             libQtWebKit.so; works around a binutils bug that results in a
             segfault on powerpc, internal link error on s390 and OOM on armel/mipsel.
defines_qt_webkit.diff | (download)

Tools/qmake/qt_webkit.pri | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 defines qt_webkit to display correctly documentation in qt creator help plugin.
glibc_hurd_mkspecs.diff | (download)

Tools/qmake/mkspecs/features/unix/default_post.prf | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 use the glibc and hurd mkspecs when necessary.
hurd.diff | (download)

Source/WTF/wtf/FastMalloc.cpp | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 fix (workaround) build on gnu/hurd
 Apparently PTHREAD_MUTEX_NORMAL and PTHREAD_MUTEX_DEFAULT cannot be used
 in preprocessor expressions, so temporarly use directly the code which would
 be used on GNU/Hurd.
webkit_qt_hide_symbols.diff | (download)

Source/QtWebKit.pro | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 make hide_symbols to cover all qtwebkit portions
ignore unused local typedefs_error.diff | (download)

Tools/qmake/mkspecs/features/unix/default_post.prf | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
hide_wtf_symbols.diff | (download)

Tools/qmake/mkspecs/features/symbols.filter | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 do not make the wtf symbols in webkit public.
hide_jsc_symbols.diff | (download)

Tools/qmake/mkspecs/features/symbols.filter | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 do not make the jsc symbols in webkit public.
fix_nonlinux_glibc_linkage.diff | (download)

Source/WebKit2/WebKit2.pri | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 ensures we link with rt on all the platforms where we 
have glibc. Not yet upstreamed. Requires a upstreamming of the gnukfreebsd patch

reduce_memory_usage.patch | (download)

Tools/qmake/mkspecs/features/unix/default_post.prf | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

 force ld to not cache symbols tables.
 This patch, wich should be considered Debian-only (in other words, it should
 not be pushed upstream), forces ld to not cache the symbol tables of input
 files in memory to avoid memory exhaustion during the linking phase.
 .
 This might make linking slower but reducing the overall memory consumption.