model_server/subsystem/src/Entity.cxx
//------------------------------------------
// Entity::add_operator_delete: another crock to write around missing model
// information.  Every destructor that is (or might be because of virtual
// overriding) should be listed as calling that class's operator delete()
// (if any) so that the operator deletes are not listed as dormant.  This
// should be called immediately after doing a "get_overrides", because it
// assumes the input array is filled (only) with virtual overrides of this
// symbol.
//------------------------------------------
:add_operator_delete: another crock to write around missing model
information.  Every destructor that is (or might be because of virtual
overriding) should be listed as calling that class's operator delete()
(if any) so that the operator deletes are not listed as dormant.  This
should be called immediately after doing a "get_overrides", because it
assumes the input array is filled (only) with virtual overrides of this
symbol.
: add_operator_delete : another crock to write around missing model information . Every destructor that is ( or might be because of virtual overriding ) should be listed as calling that class ' s operator delete () ( if any ) so that the operator deletes are not listed as dormant . This should be called immediately after doing a " get_overrides " because it assumes the input array is filled ( only ) with virtual overrides of this symbol .
void Entity::add_operator_delete(symbolArr& overrides) {
   Initialize(Entity::add_operator_delete);
   if (strstr(my_sym.get_name(), "::~")) {	
      symbolArr op_dels;
      if (overrides.size() == 0) {
	 overrides.insert_last(my_sym);	
      }
      symbolPtr override;
      ForEachS(override, overrides) {
	 symbolPtr the_class = override.get_parent_of(projects_to_search);
	 if (the_class.xrisnotnull()) {
	    symbolArr members;
	    the_class->get_link(is_using, members);
	    symbolPtr member;
	    ForEachS(member, members) {
	       if (strstr(member.get_name(), "operator delete")) {
		  op_dels.insert_last(member);
		  break;	
	       }
	    }
	 }
      }
      overrides.insert_last(op_dels);
   }
}
void Entity :: add_operator_delete ( symbolArr & overrides ) { Initialize ( Entity :: add_operator_delete ) ; if ( strstr ( my_sym . get_name ( ) , " " ) ) { symbolArr op_dels ; if ( overrides . size ( ) == 0 ) { overrides . insert_last ( my_sym ) ; } symbolPtr override ; ForEachS ( override , overrides ) { symbolPtr the_class = override . get_parent_of ( projects_to_search ) ; if ( the_class . xrisnotnull ( ) ) { symbolArr members ; the_class -> get_link ( is_using , members ) ; symbolPtr member ; ForEachS ( member , members ) { if ( strstr ( member . get_name ( ) , " " ) ) { op_dels . insert_last ( member ) ; break ; } } } } overrides . insert_last ( op_dels ) ; } }
Entity::add_operator_delete: another crock to write around missing model
information.
Entity :: add_operator_delete : another crock to write around missing model information .
// I'm a destructor // at least work on myself // only one per class