Merge pull request #85180 from AThousandShips/self_list_fix
[Core] Prevent copying of `SelfList` and `SelfList::List`
This commit is contained in:
commit
81f618d63a
2 changed files with 6 additions and 16 deletions
|
@ -159,6 +159,9 @@ public:
|
||||||
_FORCE_INLINE_ SelfList<T> *first() { return _first; }
|
_FORCE_INLINE_ SelfList<T> *first() { return _first; }
|
||||||
_FORCE_INLINE_ const SelfList<T> *first() const { return _first; }
|
_FORCE_INLINE_ const SelfList<T> *first() const { return _first; }
|
||||||
|
|
||||||
|
// Forbid copying, which has broken behavior.
|
||||||
|
void operator=(const List &) = delete;
|
||||||
|
|
||||||
_FORCE_INLINE_ List() {}
|
_FORCE_INLINE_ List() {}
|
||||||
_FORCE_INLINE_ ~List() {
|
_FORCE_INLINE_ ~List() {
|
||||||
// A self list must be empty on destruction.
|
// A self list must be empty on destruction.
|
||||||
|
@ -185,6 +188,9 @@ public:
|
||||||
_FORCE_INLINE_ const SelfList<T> *prev() const { return _prev; }
|
_FORCE_INLINE_ const SelfList<T> *prev() const { return _prev; }
|
||||||
_FORCE_INLINE_ T *self() const { return _self; }
|
_FORCE_INLINE_ T *self() const { return _self; }
|
||||||
|
|
||||||
|
// Forbid copying, which has broken behavior.
|
||||||
|
void operator=(const SelfList<T> &) = delete;
|
||||||
|
|
||||||
_FORCE_INLINE_ SelfList(T *p_self) {
|
_FORCE_INLINE_ SelfList(T *p_self) {
|
||||||
_self = p_self;
|
_self = p_self;
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,14 +173,6 @@ public:
|
||||||
|
|
||||||
SelfList<DebugQuadrant> dirty_quadrant_list_element;
|
SelfList<DebugQuadrant> dirty_quadrant_list_element;
|
||||||
|
|
||||||
// For those, copy everything but SelfList elements.
|
|
||||||
DebugQuadrant(const DebugQuadrant &p_other) :
|
|
||||||
dirty_quadrant_list_element(this) {
|
|
||||||
quadrant_coords = p_other.quadrant_coords;
|
|
||||||
cells = p_other.cells;
|
|
||||||
canvas_item = p_other.canvas_item;
|
|
||||||
}
|
|
||||||
|
|
||||||
DebugQuadrant() :
|
DebugQuadrant() :
|
||||||
dirty_quadrant_list_element(this) {
|
dirty_quadrant_list_element(this) {
|
||||||
}
|
}
|
||||||
|
@ -213,14 +205,6 @@ public:
|
||||||
|
|
||||||
SelfList<RenderingQuadrant> dirty_quadrant_list_element;
|
SelfList<RenderingQuadrant> dirty_quadrant_list_element;
|
||||||
|
|
||||||
// For those, copy everything but SelfList elements.
|
|
||||||
RenderingQuadrant(const RenderingQuadrant &p_other) :
|
|
||||||
dirty_quadrant_list_element(this) {
|
|
||||||
quadrant_coords = p_other.quadrant_coords;
|
|
||||||
cells = p_other.cells;
|
|
||||||
canvas_items = p_other.canvas_items;
|
|
||||||
}
|
|
||||||
|
|
||||||
RenderingQuadrant() :
|
RenderingQuadrant() :
|
||||||
dirty_quadrant_list_element(this) {
|
dirty_quadrant_list_element(this) {
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue