index "new_maximum" and upwards are thrown away. existing fields are
kept. */
- void reset(int new_maximum = 0);
+ void resize(int new_maximum = 0);
//!< like adjust but doesn't keep existing contents.
+ void reset() { this->resize(0); }
+ //!< cleans out all of the contents.
+
basis::outcome put(int field, const contents *data);
//!< Enters an object into the field at index "field" in the amorph.
/*!< If "data" is NIL, then the field is cleared. The amorph considers the
// not to be used: amorphs should not be copied because it is intended that
// they support storing heavyweight objects that either have no copy
// constructors or have high-cost copy constructors.
- amorph(const amorph &to_copy) {} //!< not to be used.
+ amorph(const amorph &to_copy) {_fields_used = 0;} //!< not to be used.
amorph &operator = (const amorph &to_copy) { return *this; }
//!< not to be used.
};
}
template <class contents>
-void amorph<contents>::reset(int new_maximum)
+void amorph<contents>::resize(int new_maximum)
{
FUNCDEF("reset");
CHECK_FIELDS;
CHECK_FIELDS;
bounds_return(field, 0, elements() - 1, basis::common::OUT_OF_RANGE);
contents *to_whack = acquire(field);
- WHACK(to_whack);
+ delete to_whack;
if (data) {
basis::array<contents *>::access()[field] = (contents *)data;
_fields_used++;