Always resolve virtual calls to known callees

RESOLVED FIXED in Firefox 47

Status

()

Core
JavaScript: GC
RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: sfink, Assigned: sfink)

Tracking

(Blocks: 1 bug)

unspecified
mozilla47
Points:
---

Firefox Tracking Flags

(firefox47 fixed)

Details

Attachments

(1 attachment)

(Assignee)

Description

2 years ago
Currently, most of nsISupports subclasses' virtual methods are assumed to be overridable, either via script or binary extensions. The way this is implemented is to check for the overridable cases and avoid resolving the methods to all possible virtual definitions.

This is fine for the GC hazard analysis, but makes the callgraph less useful for other purposes (including just exploratory investigation) since it doesn't include any of these edges.
(Assignee)

Comment 1

2 years ago
Created attachment 8724167 [details] [diff] [review]
Always resolve virtual calls to known callees

Instead, resolve all virtual calls and emit edges for them into the callgraph, but just emit the "unknown field call" marker in the nsISupports cases. (Also suppress the "fully-resolved virtual" token in this case, not that anything is looking at that right now.)

mccr8: congrats, I get to inflict reviews upon you now. :-)
Attachment #8724167 - Flags: review?(continuation)
(Assignee)

Updated

2 years ago
Blocks: 1172676
Attachment #8724167 - Flags: review?(continuation) → review+

Comment 3

2 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/fccf01d7567d
Status: ASSIGNED → RESOLVED
Last Resolved: 2 years ago
status-firefox47: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
You need to log in before you can comment on or make changes to this bug.