Some const correctness in the Java pseudo core.

This commit is contained in:
2025-08-21 17:17:43 -04:00
parent 455169074a
commit b934b115ed
11 changed files with 35 additions and 23 deletions

View File

@ -67,7 +67,8 @@ OOFFloatsMgr::Float::Float (OOFFloatsMgr *oofm, Widget *widget,
} }
} }
void OOFFloatsMgr::Float::intoStringBuffer(StringBuffer *sb) void
OOFFloatsMgr::Float::intoStringBuffer(StringBuffer *sb) const
{ {
sb->append ("{ widget = "); sb->append ("{ widget = ");
sb->appendPointer (getWidget ()); sb->appendPointer (getWidget ());
@ -1380,6 +1381,15 @@ Widget *OOFFloatsMgr::getWidget (int i)
return rightFloats->get(i - leftFloats->size())->getWidget (); return rightFloats->get(i - leftFloats->size())->getWidget ();
} }
const Widget *
OOFFloatsMgr::getWidget (int i) const
{
if (i < leftFloats->size())
return leftFloats->get(i)->getWidget ();
else
return rightFloats->get(i - leftFloats->size())->getWidget ();
}
} // namespace oof } // namespace oof
} // namespace dw } // namespace dw

View File

@ -39,6 +39,7 @@ private:
WidgetInfo (OOFFloatsMgr *oofm, core::Widget *widget); WidgetInfo (OOFFloatsMgr *oofm, core::Widget *widget);
inline core::Widget *getWidget () { return widget; } inline core::Widget *getWidget () { return widget; }
inline const core::Widget *getWidget () const { return widget; }
}; };
class Float: public WidgetInfo class Float: public WidgetInfo
@ -78,7 +79,7 @@ private:
Float (OOFFloatsMgr *oofm, core::Widget *widget, Float (OOFFloatsMgr *oofm, core::Widget *widget,
OOFAwareWidget *generatingBlock, int externalIndex); OOFAwareWidget *generatingBlock, int externalIndex);
void intoStringBuffer(lout::misc::StringBuffer *sb); void intoStringBuffer(lout::misc::StringBuffer *sb) const override;
bool covers (int y, int h); bool covers (int y, int h);
}; };
@ -281,6 +282,7 @@ public:
int getNumWidgets (); int getNumWidgets ();
core::Widget *getWidget (int i); core::Widget *getWidget (int i);
const core::Widget *getWidget (int i) const;
}; };
} // namespace oof } // namespace oof

View File

@ -85,11 +85,12 @@ Iterator::~Iterator()
// Collection // Collection
// ---------------- // ----------------
void Collection::intoStringBuffer(misc::StringBuffer *sb) void
Collection::intoStringBuffer( misc::StringBuffer *sb ) const
{ {
sb->append("{ "); sb->append("{ ");
bool first = true; bool first = true;
for (Iterator it = iterator(); it.hasNext(); ) { for (Iterator it = const_cast< Collection * >( this )->iterator(); it.hasNext(); ) {
if (!first) if (!first)
sb->append(", "); sb->append(", ");
it.getNext()->intoStringBuffer(sb); it.getNext()->intoStringBuffer(sb);

View File

@ -135,7 +135,7 @@ public:
class Collection: public Collection0 class Collection: public Collection0
{ {
public: public:
void intoStringBuffer(misc::StringBuffer *sb); void intoStringBuffer(misc::StringBuffer *sb) const override;
inline Iterator iterator() { Iterator it(createIterator()); return it; } inline Iterator iterator() { Iterator it(createIterator()); return it; }
virtual int size() = 0; virtual int size() = 0;
}; };

View File

@ -26,7 +26,8 @@ namespace identity {
std::map< std::type_index, std::string > IdentifiableObject::classNames; std::map< std::type_index, std::string > IdentifiableObject::classNames;
void IdentifiableObject::intoStringBuffer(misc::StringBuffer *sb) void
IdentifiableObject::intoStringBuffer(misc::StringBuffer *sb) const
{ {
sb->append("<instance "); sb->append("<instance ");
sb->appendPointer(this); sb->appendPointer(this);

View File

@ -37,13 +37,13 @@ protected:
void registerName (const char *className, std::type_index index); void registerName (const char *className, std::type_index index);
public: public:
void intoStringBuffer(misc::StringBuffer *sb) override; void intoStringBuffer(misc::StringBuffer *sb) const override;
/** /**
* \brief Return the name, under which the class of this object was * \brief Return the name, under which the class of this object was
* registered. * registered.
*/ */
const char *getClassName() { return classNames.at( typeid( *this ) ).c_str(); } const char *getClassName() const { return classNames.at( typeid( *this ) ).c_str(); }
}; };
} // namespace identity } // namespace identity

View File

@ -581,7 +581,7 @@ public:
inline void append(const char *str) { appendNoCopy(dStrdup(str)); } inline void append(const char *str) { appendNoCopy(dStrdup(str)); }
inline void appendInt(int n) inline void appendInt(int n)
{ char buf[32]; sprintf (buf, "%d", n); append (buf); } { char buf[32]; sprintf (buf, "%d", n); append (buf); }
inline void appendPointer(void *p) inline void appendPointer(const void *p)
{ char buf[32]; sprintf (buf, "%p", p); append (buf); } { char buf[32]; sprintf (buf, "%p", p); append (buf); }
inline void appendBool(bool b) { append (b ? "true" : "false"); } inline void appendBool(bool b) { append (b ? "true" : "false"); }
void appendNoCopy(char *str); void appendNoCopy(char *str);

View File

@ -75,17 +75,13 @@ Object *Object::clone()
/** /**
* \brief Use object::Object::intoStringBuffer to return a textual * \brief Use object::Object::intoStringBuffer to return a textual
* representation of the object. * representation of the object.
*
* The caller does not have to free the memory, object::Object is responsible
* for this.
*/ */
const char *Object::toString() std::string
Object::toString() const
{ {
/** \todo garbage! */
misc::StringBuffer sb; misc::StringBuffer sb;
intoStringBuffer(&sb); intoStringBuffer(&sb);
char *s = dStrdup(sb.getChars()); return sb.getChars();
return s;
} }
/** /**
@ -93,7 +89,8 @@ const char *Object::toString()
* *
* This is used by object::Object::toString. * This is used by object::Object::toString.
*/ */
void Object::intoStringBuffer(misc::StringBuffer *sb) void
Object::intoStringBuffer(misc::StringBuffer *sb) const
{ {
sb->append("<not further specified object "); sb->append("<not further specified object ");
sb->appendPointer(this); sb->appendPointer(this);

View File

@ -28,8 +28,8 @@ public:
virtual bool equals(Object *other); virtual bool equals(Object *other);
virtual int hashValue(); virtual int hashValue();
virtual Object *clone(); virtual Object *clone();
virtual void intoStringBuffer(misc::StringBuffer *sb); virtual void intoStringBuffer(misc::StringBuffer *sb) const;
const char *toString(); std::string toString() const;
virtual size_t sizeOf(); virtual size_t sizeOf();
}; };

View File

@ -41,7 +41,8 @@ Emitter::~Emitter ()
} }
} }
void Emitter::intoStringBuffer(misc::StringBuffer *sb) void
Emitter::intoStringBuffer(misc::StringBuffer *sb) const
{ {
sb->append ("<emitter: "); sb->append ("<emitter: ");
container::intoStringBuffer( receivers, sb ); container::intoStringBuffer( receivers, sb );
@ -117,7 +118,7 @@ Receiver::~Receiver()
} }
} }
void Receiver::intoStringBuffer(misc::StringBuffer *sb) void Receiver::intoStringBuffer(misc::StringBuffer *sb) const
{ {
// emitters are not listed, to prevent recursion // emitters are not listed, to prevent recursion
sb->append ("<receiver>"); sb->append ("<receiver>");

View File

@ -241,7 +241,7 @@ public:
Emitter(); Emitter();
~Emitter(); ~Emitter();
void intoStringBuffer(misc::StringBuffer *sb); void intoStringBuffer(misc::StringBuffer *sb) const override;
}; };
/** /**
@ -266,7 +266,7 @@ public:
Receiver(); Receiver();
~Receiver(); ~Receiver();
void intoStringBuffer(misc::StringBuffer *sb); void intoStringBuffer(misc::StringBuffer *sb) const override;
}; };
/** /**