X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached.cc;h=bd23f1f1ab8a95671855b124a1d932b907c8b4a5;hb=e4feb8020e04b12017c5827be98d96f5330c60e8;hp=3504b23a77b40db16232521b93bc90c34f6963d1;hpb=cc47230b8dfe0bcd31d4f45ca84d2dd35ae360f0;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached.cc b/libmemcached/memcached.cc index 3504b23a..bd23f1f1 100644 --- a/libmemcached/memcached.cc +++ b/libmemcached/memcached.cc @@ -45,6 +45,7 @@ static inline bool _memcached_init(memcached_st *self) self->state.is_purging= false; self->state.is_processing_input= false; self->state.is_time_for_rebuild= false; + self->state.is_parsing= false; self->flags.auto_eject_hosts= false; self->flags.binary_protocol= false; @@ -77,7 +78,7 @@ static inline bool _memcached_init(memcached_st *self) self->ketama.continuum_count= 0; self->ketama.continuum_points_counter= 0; self->ketama.next_distribution_rebuild= 0; - self->ketama.weighted= false; + self->ketama.weighted_= false; self->number_of_hosts= 0; self->servers= NULL; @@ -143,6 +144,7 @@ static void __memcached_free(memcached_st *ptr, bool release_st) } libmemcached_free(ptr, ptr->ketama.continuum); + ptr->ketama.continuum= NULL; memcached_array_free(ptr->_namespace); ptr->_namespace= NULL; @@ -277,12 +279,13 @@ void memcached_servers_reset(memcached_st *self) { if (self) { + libmemcached_free(self, self->ketama.continuum); + self->ketama.continuum= NULL; + memcached_instance_list_free(memcached_instance_list(self), self->number_of_hosts); + memcached_instance_set(self, NULL, 0); - memcached_instance_set(self, NULL); - self->number_of_hosts= 0; - memcached_instance_free((org::libmemcached::Instance*)self->last_disconnected_server); - self->last_disconnected_server= NULL; + memcached_reset_last_disconnected_server(self); } }