Closed Bug 1198980 Opened 9 years ago Closed 9 years ago

JS::ubi::Node::identifier and JS::ubi::StackFrame::identifier should be uint64_t instead of uintptr_t

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla43
Tracking Status
firefox43 --- fixed

People

(Reporter: fitzgen, Assigned: fitzgen)

References

Details

Attachments

(1 file, 1 obsolete file)

Otherwise bad things start happening when we are inspecting an offline heap snapshot that was created on a 64bit machine from a 32bit machine.
This also fixes bug 1194985.
Attachment #8653163 - Flags: review?(sphink) → review+
Ok, I think I figured out why there are gtest failures. I think we need to also make JS::ubi::Node::size return uint64_t. Right now it returns (platform dependent) size_t and so it suffers the same problems that identifier and uintptr_t suffered: if we serialize a heap snapshot on a platform with a 64bit size_t and then deserialize on a platform with a 32bit size_t we don't have enough bits to represent the original size. I don't think we would ever have a single ubi::Node whose size is greater than 2**32, but whatever. FWIW, we always store the size as a uint64 inside the core dump protobuf files. I'll have a new patch up in a bit (unfortunately, trees are closed so no try push yet).
Looks like we finally got those gtests passing on 32 bit platforms :)
Keywords: checkin-needed
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: