More virtual base fixups.

This commit is contained in:
2025-08-23 08:55:48 -04:00
parent 0bc863faf1
commit 13f931d82e
13 changed files with 31 additions and 31 deletions

View File

@ -709,7 +709,7 @@ dnl -----------
dnl
if eval "test x$GCC = xyes"; then
CXXFLAGS="$CXXFLAGS -Wall -W -Wno-unused-parameter -pedantic -D_POSIX_C_SOURCE=200112L -std=c++23"
CXXFLAGS="$CXXFLAGS -Wall -W -Wno-unused-parameter -pedantic -D_POSIX_C_SOURCE=200112L -std=c++23 -Werror=overloaded-virtual"
fi
dnl ----------------------------------

View File

@ -220,9 +220,9 @@ EmptyIterator::EmptyIterator (EmptyIterator &it): Iterator (it)
{
}
object::Object *EmptyIterator::clone ()
object::Object *EmptyIterator::clone () const
{
return new EmptyIterator (*this);
return new EmptyIterator (const_cast< EmptyIterator & >( *this ));
}
int EmptyIterator::compareTo (object::Comparable *other)
@ -595,7 +595,7 @@ DeepIterator::~DeepIterator ()
//printf ("Deleting DeepIterator %p ...\n", this);
}
object::Object *DeepIterator::clone ()
object::Object *DeepIterator::clone () const
{
DeepIterator *it = new DeepIterator ();
@ -762,7 +762,7 @@ CharIterator::~CharIterator ()
delete it;
}
object::Object *CharIterator::clone()
object::Object *CharIterator::clone() const
{
CharIterator *cloned = new CharIterator ();
cloned->it = it->cloneDeepIterator ();

View File

@ -34,8 +34,9 @@ public:
void intoStringBuffer(lout::misc::StringBuffer *sb) const override;
inline Widget *getWidget () { return widget; }
inline const Widget *getWidget () const { return widget; }
inline Content *getContent () { return &content; }
inline Content::Type getMask () { return mask; }
inline Content::Type getMask () const { return mask; }
virtual void unref ();
@ -101,7 +102,7 @@ private:
public:
EmptyIterator (Widget *widget, Content::Type mask, bool atEnd);
lout::object::Object *clone();
lout::object::Object *clone() const override;
int compareTo(lout::object::Comparable *other);
bool next ();
bool prev ();
@ -183,7 +184,7 @@ public:
DeepIterator(Iterator *it);
~DeepIterator();
lout::object::Object *clone ();
lout::object::Object *clone () const override;
DeepIterator *createVariant(Iterator *it);
inline Iterator *getTopIterator () { return stack.getTop(); }
@ -244,7 +245,7 @@ public:
CharIterator (Widget *widget, bool followReferences);
~CharIterator ();
lout::object::Object *clone();
lout::object::Object *clone() const override;
int compareTo(lout::object::Comparable *other);
bool next ();

View File

@ -97,7 +97,7 @@ protected:
virtual void getContentInFlow (int index, core::Content *content) = 0;
void setValues (int sectionIndex, int index);
inline void cloneValues (OOFAwareWidgetIterator *other)
inline void cloneValues (OOFAwareWidgetIterator *other) const
{ other->setValues (sectionIndex, index); }
inline bool inFlow () { return sectionIndex == 0; }
@ -110,7 +110,7 @@ protected:
OOFAwareWidgetIterator (OOFAwareWidget *widget, core::Content::Type mask,
bool atEnd, int numContentsInFlow);
void intoStringBuffer(lout::misc::StringBuffer *sb);
void intoStringBuffer(lout::misc::StringBuffer *sb) const override;
int compareTo(lout::object::Comparable *other);
bool next ();

View File

@ -106,7 +106,7 @@ void OOFAwareWidget::OOFAwareWidgetIterator::getPart (int sectionIndex,
}
}
void OOFAwareWidget::OOFAwareWidgetIterator::intoStringBuffer (StringBuffer *sb)
void OOFAwareWidget::OOFAwareWidgetIterator::intoStringBuffer (StringBuffer *sb) const
{
Iterator::intoStringBuffer (sb);
sb->append (", sectionIndex = ");

View File

@ -354,7 +354,7 @@ private:
public:
TableIterator (Table *table, core::Content::Type mask, bool atEnd);
lout::object::Object *clone();
lout::object::Object *clone() const override;
void highlight (int start, int end, core::HighlightLayer layer);
void unhighlight (int direction, core::HighlightLayer layer);

View File

@ -32,7 +32,7 @@ Table::TableIterator::TableIterator (Table *table,
{
}
object::Object *Table::TableIterator::clone()
object::Object *Table::TableIterator::clone() const
{
TableIterator *tIt =
new TableIterator ((Table*)getWidget(), getMask(), false);

View File

@ -522,7 +522,7 @@ protected:
static TextblockIterator *createWordIndexIterator
(Textblock *textblock, core::Content::Type mask, int wordIndex);
lout::object::Object *clone();
lout::object::Object *clone() const override;
void highlight (int start, int end, core::HighlightLayer layer);
void unhighlight (int direction, core::HighlightLayer layer);

View File

@ -48,7 +48,7 @@ Textblock::TextblockIterator
return tbIt;
}
object::Object *Textblock::TextblockIterator::clone()
object::Object *Textblock::TextblockIterator::clone() const
{
TextblockIterator *tbIt =
new TextblockIterator ((Textblock*)getWidget(), getMask(), false);

View File

@ -674,7 +674,7 @@ void HashTable::clearNode(HashSet::Node *node)
}
}
void HashTable::intoStringBuffer(misc::StringBuffer *sb)
void HashTable::intoStringBuffer(misc::StringBuffer *sb) const
{
sb->append("{ ");

View File

@ -344,7 +344,7 @@ public:
HashTable(bool ownerOfKeys, bool ownerOfValues, int tableSize = 251);
~HashTable();
void intoStringBuffer(misc::StringBuffer *sb);
void intoStringBuffer(misc::StringBuffer *sb) const override;
void put (object::Object *key, object::Object *value);
object::Object *get (object::Object *key) const;
@ -456,11 +456,11 @@ public:
int hashValue() { return this->base->hashValue (); }
void intoStringBuffer(misc::StringBuffer *sb)
void intoStringBuffer(misc::StringBuffer *sb) const override
{ this->base->intoStringBuffer(sb); }
inline Iterator<T> iterator() {
Iterator<T> it; it.base = this->base->iterator(); return it; }
inline int size() { return this->base->size (); }
inline int size() const { return this->base->size (); }
};

View File

@ -67,7 +67,7 @@ int Object::hashValue()
/**
* \brief Return an exact copy of the object.
*/
Object *Object::clone()
Object *Object::clone() const
{
misc::assertNotReached ();
return NULL;
@ -177,7 +177,7 @@ int Pointer::hashValue()
#endif
}
void Pointer::intoStringBuffer(misc::StringBuffer *sb)
void Pointer::intoStringBuffer(misc::StringBuffer *sb) const
{
char buf[64];
snprintf(buf, sizeof(buf), "%p", value);
@ -198,7 +198,7 @@ int Integer::hashValue()
return (int)value;
}
void Integer::intoStringBuffer(misc::StringBuffer *sb)
void Integer::intoStringBuffer(misc::StringBuffer *sb) const
{
char buf[64];
sprintf(buf, "%d", value);
@ -226,7 +226,7 @@ int Boolean::hashValue()
return value ? 1 : 0;
}
void Boolean::intoStringBuffer(misc::StringBuffer *sb)
void Boolean::intoStringBuffer(misc::StringBuffer *sb) const
{
sb->append(value ? "true" : "false");
}
@ -281,7 +281,7 @@ int ConstString::hashValue(const char *str)
return 0;
}
void ConstString::intoStringBuffer(misc::StringBuffer *sb)
void ConstString::intoStringBuffer(misc::StringBuffer *sb) const
{
sb->append(str);
}

View File

@ -28,9 +28,8 @@ class Object
public:
virtual ~Object();
virtual bool equals(const Object *other) const;
virtual bool equals(Object *other) final { return equals( &std::as_const( *other ) ); }
virtual int hashValue();
virtual Object *clone();
virtual Object *clone() const;
virtual void intoStringBuffer(misc::StringBuffer *sb) const;
std::string toString() const;
virtual size_t sizeOf();
@ -108,7 +107,7 @@ public:
Pointer(void *value) { this->value = value; }
bool equals(const Object *other) const override;
int hashValue();
void intoStringBuffer(misc::StringBuffer *sb);
void intoStringBuffer(misc::StringBuffer *sb) const override;
inline void *getValue() { return value; }
};
@ -134,7 +133,7 @@ public:
Integer(int value) { this->value = value; }
bool equals(const Object *other) const override;
int hashValue();
void intoStringBuffer(misc::StringBuffer *sb);
void intoStringBuffer(misc::StringBuffer *sb) const override;
int compareTo(Comparable *other);
inline int getValue() { return value; }
};
@ -151,7 +150,7 @@ public:
Boolean(bool value) { this->value = value; }
bool equals(const Object *other) const override;
int hashValue();
void intoStringBuffer(misc::StringBuffer *sb);
void intoStringBuffer(misc::StringBuffer *sb) const override;
int compareTo(Comparable *other);
inline bool getValue() { return value; }
};
@ -172,7 +171,7 @@ public:
bool equals(const Object *other) const override;
int hashValue();
int compareTo(Comparable *other);
void intoStringBuffer(misc::StringBuffer *sb);
void intoStringBuffer(misc::StringBuffer *sb) const override;
inline const char *chars() { return str; }