Closed Bug 1163397 Opened 6 years ago Closed 6 years ago

mozilla::PaintedLayerData can't be stored safely in an nsTArray because of the mLog member

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla41
Tracking Status
firefox41 --- fixed

People

(Reporter: ehsan.akhgari, Assigned: ehsan.akhgari)

References

Details

Attachments

(1 file)

This is caught by the analysis I wrote for bug 1159433:

 0:57.83 /Users/ehsan/moz/src/layout/base/FrameLayerBuilder.cpp:694:3: error: Cannot instantiate 'nsTArray' with non-memmovable template argument 'mozilla::PaintedLayerData'
 0:57.83   nsTArray<PaintedLayerData> mPaintedLayerDataStack;
 0:57.83   ^
 0:57.83 ../../dist/include/nsTArray.h:1831:1: note: 'nsTArray' declared here
 0:57.83 class MOZ_NEEDS_MEMMOVABLE_TYPE nsTArray : public nsTArray_Impl<E, nsTArrayInfallibleAllocator>
 0:57.83 ^
 0:57.83 /Users/ehsan/moz/src/layout/base/FrameLayerBuilder.cpp:310:3: note: 'nsTArray' Cannot accept classes that are marked as non-memmovable as template argument because of this declaration
 0:57.83   nsAutoCString mLog;
 0:57.83   ^

nsAutoCString cannot safely be memmoved, and nsTArray does require its template argument to be memmovable because it memmoves the data stored in it when it reallocates its internal buffer.
Assignee: nobody → ehsan
Status: NEW → ASSIGNED
https://hg.mozilla.org/mozilla-central/rev/c6a3db6682e0
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
You need to log in before you can comment on or make changes to this bug.