diff --git a/src/pkg-psyc.c b/src/pkg-psyc.c index 2a267fe..28964ac 100644 --- a/src/pkg-psyc.c +++ b/src/pkg-psyc.c @@ -226,6 +226,8 @@ f_psyc_render(svalue_t *sp) { /*-------------------------------------------------------------------------*/ // void psyc_parse(int* | string); +static string_t *psyc_dispatch_callback = NULL; + svalue_t * f_psyc_parse (svalue_t *sp) { char *buffer = NULL; @@ -238,7 +240,9 @@ f_psyc_parse (svalue_t *sp) { int ret, retl, type = -1; size_t size, i; time_t t; - string_t *callback = mstring_new_string("psyc_dispatch"); + + if (!psyc_dispatch_callback) + psyc_dispatch_callback = new_tabled("psyc_dispatch"); assert_shadow_sent(current_object); psyc_state_t *state = O_GET_PSYC_STATE(current_object); @@ -455,7 +459,7 @@ f_psyc_parse (svalue_t *sp) { case PSYC_PARSE_COMPLETE: put_array(inter_sp, v); - sapply(callback, current_object, 1); + sapply(psyc_dispatch_callback, current_object, 1); state->packet = NULL; break; @@ -492,6 +496,7 @@ f_psyc_parse (svalue_t *sp) { if (buffer) pfree(buffer); + free_svalue(sp); // f_remove_interactive does it the same way... return --sp; } /* f_psyc_parse */ diff --git a/src/version.sh b/src/version.sh index 3c85af4..2adcccc 100644 --- a/src/version.sh +++ b/src/version.sh @@ -17,7 +17,7 @@ version_longtype="stable" # A timestamp, to be used by bumpversion and other scripts. # It can be used, for example, to 'touch' this file on every build, thus # forcing revision control systems to add it on every checkin automatically. -version_stamp="Thu May 19 21:24:11 CEST 2011" +version_stamp="Fri May 20 10:38:24 CEST 2011" # Okay, LDMUD is using 3.x.x so to avoid conflicts let's just use 4.x.x version_major=4