Closed Bug 474888 Opened 16 years ago Closed 16 years ago

TM: Incorrect use of the global object's identity

Categories

(Core :: JavaScript Engine, defect, P2)

x86
macOS
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: gal, Assigned: gal)

Details

(Keywords: fixed1.9.1, Whiteboard: fixed-in-tracemonkey)

Attachments

(1 file)

      No description provided.
Flags: blocking1.9.1?
Priority: -- → P2
Attached patch patchSplinter Review
Assignee: general → gal
Attachment #358314 - Flags: review?(brendan)
Attachment #358314 - Flags: review?(brendan) → review+
Trees are only executed if the shape of the global object has not changed since recording time. We do not actually guarantee that the global object's identity is unchanged. We only guarantee the shape still matches. In the actual trace code we used the global object's identity to decide whether it aliases an object being used for direct property access. This might be wrong if we get a different global object with the same shape. Instead, this patch passes in the current global object's identity via InterpState. No measurable perf overhead. The patch also fixes an incorrect use of cx->globalObject in the oracle hashing and excludes the global object's identity from the hash (for the argument made above, we only care about the shape).
TM: http://hg.mozilla.org/tracemonkey/rev/29beb0928cfa
Whiteboard: fixed-in-tracemonkey
http://hg.mozilla.org/mozilla-central/rev/29beb0928cfa
Status: NEW → RESOLVED
Closed: 16 years ago
Flags: blocking1.9.1? → blocking1.9.1+
Resolution: --- → FIXED
Flags: in-testsuite-
Flags: in-litmus-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: