Closed Bug 594422 Opened 15 years ago Closed 15 years ago

ByteArray addSubscriber broken

Categories

(Tamarin Graveyard :: Virtual Machine, defect, P2)

x86
macOS
defect

Tracking

(Not tracked)

RESOLVED FIXED
flash10.2.x-Spicy

People

(Reporter: treilly, Assigned: treilly)

References

Details

Attachments

(1 file)

Write barrier missing in weakSubscriber write, this code should be re-written to use smart pointer write barriers as well.
Is this in the avmshell or Flash ByteArray? (or both?)
both (WE bug: 2714615)
Assignee: nobody → treilly
Flags: flashplayer-qrb+
Priority: -- → P2
Target Milestone: --- → flash10.2.x-Spicy
Status: NEW → ASSIGNED
Attachment #477592 - Flags: review?(lhansen)
Blocks: 597577
Attachment #477592 - Flags: review?(lhansen) → review+
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
We should update this bug with the CL of the fix to Flash's parallel ByteArray implementation. (See also https://bugzilla.mozilla.org/show_bug.cgi?id=564248, which also has ByteArray update notes)
Note, this happens to work OK in Tamarin, but making m_subscriberRoot a DWB won't work in the Flash/AIR version of this file: their ByteArray is used on the stack (as well as being embedded in a GC object), where DWB is verboten. Q: instead of a linked list, how about we use a List<> of GCWeakRef? It's going to be a pretty small list no matter what, and List<> is already savvy about working in both stack and gc-member contexts...
(In reply to comment #6) > Note, this happens to work OK in Tamarin, but making m_subscriberRoot a DWB > won't work in the Flash/AIR version of this file: their ByteArray is used on > the stack (as well as being embedded in a GC object), where DWB is verboten. For exact tracing, objects are going to be required to be heap-allocated, and there will be asserts that check this. GCObjects (etc) that are members or stack-allocated can no longer be that.
(In reply to comment #6) > Note, this happens to work OK in Tamarin, but making m_subscriberRoot a DWB > won't work in the Flash/AIR version of this file: their ByteArray is used on > the stack (as well as being embedded in a GC object), where DWB is verboten. I'll have a go at fixing it.
(In reply to comment #7) > For exact tracing, objects are going to be required to be heap-allocated, and > there will be asserts that check this. GCObjects (etc) that are members or > stack-allocated can no longer be that. ByteArray is not a GCObject, it's just a plain C++ object that contains a pointer-to-GCObject. See existing List<> class for a similar precedent.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: