summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2006-04-09 23:35:51 +0000
committerAndrei Zmievski <andrei@php.net>2006-04-09 23:35:51 +0000
commit06ef71fe3db45fb1cf1c556c537c98924828a4a8 (patch)
tree03e51036274ea038952e6682340c85dbab0c5e99 /ext/soap/php_encoding.c
parent1e33c4cc85396bb5aefb0956e19a652aa5cbf757 (diff)
downloadphp-git-06ef71fe3db45fb1cf1c556c537c98924828a4a8.tar.gz
Speed up SoapClient/SoapServer constructors by caching WSDL structures
in memory. All WSDL files will be cached, unless turned off via an option to the constructor.
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 1d527aab53..683e35ef59 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -3300,3 +3300,17 @@ void delete_encoder(void *encode)
}
efree(t);
}
+
+void delete_encoder_persistent(void *encode)
+{
+ encodePtr t = *((encodePtr*)encode);
+ if (t->details.ns) {
+ free(t->details.ns);
+ }
+ if (t->details.type_str) {
+ free(t->details.type_str);
+ }
+ /* we should never have mapping in persistent encoder */
+ assert(t->details.map == NULL);
+ free(t);
+}