diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2011-02-25 12:23:07 (GMT) |
---|---|---|
committer | Kent Hansen <kent.hansen@nokia.com> | 2011-02-25 14:01:24 (GMT) |
commit | d4166fa6ce24b55b483f29e8ef447c0f63f0a30f (patch) | |
tree | 458294ecb92eee9eb4556d0f773776f0cb6ca48b /src/plugins/imageformats | |
parent | d14bc92ccdf263cfd05dc8d1bec21aa95edd20a4 (diff) | |
download | Qt-d4166fa6ce24b55b483f29e8ef447c0f63f0a30f.zip Qt-d4166fa6ce24b55b483f29e8ef447c0f63f0a30f.tar.gz Qt-d4166fa6ce24b55b483f29e8ef447c0f63f0a30f.tar.bz2 |
Don't crash when marking arguments object of native context
JSC assumes that the callee is always valid, since JSC::Arguments
is used for JS frames, which must have a callee.
But we use JSC::Arguments for arguments object of
pushContext()-created contexts, and then there is no callee.
But the callee member can't be null, so now we put a fake callee
there and make sure it doesn't bleed up to the public API.
Alternative solution: Add "if (d->callee)" to
JSC::Arguments::markChildren(), then no other changes would be
needed. But we don't want to patch JSC any more.
Non-solution: Subclass JSC::Arguments and reimplement
markChildren() to temporarily set a dummy callee during marking.
Can't be done, as JSC::Arguments::d is private (again, we don't
want to patch JSC).
Task-number: QTBUG-17788
Reviewed-by: Olivier Goffart
Diffstat (limited to 'src/plugins/imageformats')
0 files changed, 0 insertions, 0 deletions