diff --git a/Timeline/Loggable.C b/Timeline/Loggable.C index fa102f5..2a7c8b0 100644 --- a/Timeline/Loggable.C +++ b/Timeline/Loggable.C @@ -336,8 +336,7 @@ Loggable::do_this ( const char *s, bool reverse ) { /* create */ - Loggable *l = _class_map[ std::string( classname ) ]( e ); - l->update_id( id ); + Loggable *l = _class_map[ std::string( classname ) ]( e, id ); l->log_create(); } diff --git a/Timeline/Loggable.H b/Timeline/Loggable.H index 6da28d8..11cfbe4 100644 --- a/Timeline/Loggable.H +++ b/Timeline/Loggable.H @@ -38,7 +38,7 @@ typedef void (snapshot_func)( void * ); class Log_Entry; class Loggable; -typedef Loggable *(create_func)(Log_Entry &); +typedef Loggable *(create_func)(Log_Entry &, int id); #define LOG_REGISTER_CREATE( class ) \ Loggable::register_create( #class, & class ::create ); @@ -48,9 +48,10 @@ typedef Loggable *(create_func)(Log_Entry &); #define LOG_CREATE_FUNC( class ) \ static Loggable * \ - create ( Log_Entry &e ) \ + create ( Log_Entry &e, int id ) \ { \ class *r = new class; \ + r->update_id( id ); \ r->set( e ); \ return (Loggable *)r; \ } \