--- deliantra/server/include/cfperl.h 2006/09/04 11:07:59 1.22 +++ deliantra/server/include/cfperl.h 2006/09/10 14:54:02 1.25 @@ -101,10 +101,22 @@ attachable_clear (); } + ~attachable_base () + { + clear (); + } + attachable_base (const attachable_base &src) : self (0), cb (0), attach (src.attach) { } + + attachable_base &operator = (const attachable_base &src) + { + clear (); + attach = src.attach; + return *this; + } }; // objects attachable from perl (or any other extension) should include or @@ -220,7 +232,7 @@ add ('\n'); } - void put (keyword kbeg, keyword kend, const char *v) + void put (keyword kbeg, keyword kend, const shstr &v) { add (keyword_str [kbeg], keyword_len [kbeg]); add ('\n'); @@ -248,7 +260,10 @@ template void put (keyword k, T *v) { - put (k, v ? (const char *)v->name : 0); + if (v) + put (k, v->name); + else + put (k, (const char *)0); } bool save (const char *filename);