Closed Bug 254036 Opened 20 years ago Closed 18 years ago

implement nsDOMEvent::DuplicatePrivateData()

Categories

(Core :: DOM: Events, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: timeless, Unassigned)

References

Details

Bug 123756 (wfm) suggested this problem, and i suspect that this could explain 
some problems i've had.

anyway many callsites do this:
    // We're leaving the DOM event loop so if we created a DOM event,
    // release here.
    if (*aDOMEvent && !externalDOMEvent) {
      nsrefcnt rc;
      NS_RELEASE2(*aDOMEvent, rc);
      if (0 != rc) {
        // Okay, so someone in the DOM loop (a listener, JS object)
        // still has a ref to the DOM Event but the internal data
        // hasn't been malloc'd.  Force a copy of the data here so the
        // DOM Event is still valid.
        nsCOMPtr<nsIPrivateDOMEvent> privateEvent =
          do_QueryInterface(*aDOMEvent);
        if (privateEvent) {
          privateEvent->DuplicatePrivateData();
        }
      }
      aDOMEvent = nsnull;
    }

seemingly expecting duplicateprivatedata to do something.

however, all it does is:
  //XXX Write me!

  //XXX And when you do, make sure to copy over the event target here, too!
  return NS_OK;

<bryner> if you hold onto a dom event from your event listener
<bryner> and then try to access it later, currently bad things happen

anyway, someone needs to implement this. it'd be nice if bryner did it :), but 
i suspect i'll get to since i'm heavily invested in dom events.
Flags: blocking-aviary1.1?
Flags: blocking-aviary1.1? → blocking-aviary1.1-
nsDOMEvent::DuplicatePrivateData() was implemented in bug 234455
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.