diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/base.h | 15 | ||||
| -rw-r--r-- | include/serialize.h | 5 |
2 files changed, 11 insertions, 9 deletions
diff --git a/include/base.h b/include/base.h index fdd8f3f5c..727918af3 100644 --- a/include/base.h +++ b/include/base.h @@ -121,10 +121,17 @@ class Reference : public ReferenceBase return NULL; } - inline bool operator<(const Reference<T> &other) const - { - return this < &other; - } + /** Note that we can't have an operator< that returns this->ref < other.ref + * because this function is used to sort objects in containers (such as set + * or map), and if the references themselves can change if the object they + * refer to is invalidated or changed, then this screws with the order that + * the objects would be in the container without properly adjusting the + * container, resulting in weird stuff. + * + * As such, we don't allow storing references in containers that require + * operator<, because they would not be able to compare what the references + * actually referred to. + */ inline bool operator==(const Reference<T> &other) { diff --git a/include/serialize.h b/include/serialize.h index b136412e4..b74257f73 100644 --- a/include/serialize.h +++ b/include/serialize.h @@ -83,11 +83,6 @@ class CoreExport Serializable : public virtual Base /* Unique ID (per type, not globally) for this object */ unsigned int id; - /* Destroys this object. This is effectively the same thing as - * delete, however it properly cleans up after this object. - */ - void Destroy(); - /** Marks the object as potentially being updated "soon". */ void QueueUpdate(); |
