diff --git a/src/pkg-psyc.c b/src/pkg-psyc.c index e5fbac2..95a61ad 100644 --- a/src/pkg-psyc.c +++ b/src/pkg-psyc.c @@ -200,6 +200,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; @@ -211,7 +213,9 @@ f_psyc_parse (svalue_t *sp) { psycParseListState listState; int ret, retl; size_t size, i; - 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); @@ -370,7 +374,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; @@ -443,6 +447,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..6b2787b 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 02:30:43 CEST 2011" # Okay, LDMUD is using 3.x.x so to avoid conflicts let's just use 4.x.x version_major=4