correct bitflags for objects allocated by size in nsPresArena

RESOLVED FIXED in mozilla16

Status

()

Core
Layout: Misc Code
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: froydnj, Assigned: froydnj)

Tracking

unspecified
mozilla16
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

5 years ago
Created attachment 629476 [details] [diff] [review]
patch

nsPresArena.h says:

  enum ObjectID {
    nsLineBox_id = nsQueryFrame::NON_FRAME_MARKER,

    // The PresArena implementation uses this bit to distinguish objects
    // allocated by size from objects allocated by type ID (that is, frames
    // using AllocateByFrameID and other objects using AllocateByObjectID).
    // It should not collide with any Object ID (above) or frame ID (in
    // nsQueryFrame.h).  It is not 0x80000000 to avoid the question of
    // whether enumeration constants are signed.
    NON_OBJECT_MARKER = 0x40000000
  };

but the actual implementation of AllocateBySize wrongly uses nsQueryFrame::NON_FRAME_MARKER instead of NON_OBJECT_MARKER.  (nsPresArena.cpp doesn't even use NON_OBJECT_MARKER currently.)  If we were to add more ObjectIDs for better arena allocation statistics, we'd eventually run into problems, though it would take a while.  Let's fix this.
Attachment #629476 - Flags: review?(roc)
Attachment #629476 - Flags: review?(roc) → review+
(Assignee)

Comment 1

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/4cb9c03a3804
Assignee: nobody → nfroyd
Status: NEW → ASSIGNED

Comment 2

5 years ago
https://hg.mozilla.org/mozilla-central/rev/4cb9c03a3804
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla16
You need to log in before you can comment on or make changes to this bug.