<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -15,6 +15,7 @@
 
 // Register libmemcached's struct free function to prevent memory leaks
 %freefunc memcached_st &quot;memcached_free&quot;;
+%freefunc memcached_server_st &quot;memcached_server_free&quot;;
 
 //// Input maps
 </diff>
      <filename>ext/rlibmemcached.i</filename>
    </modified>
    <modified>
      <diff>@@ -11595,11 +11595,6 @@ fail:
 }
 
 
-SWIGINTERN void
-free_memcached_server_st(struct memcached_server_st *arg1) {
-    free((char *) arg1);
-}
-
 SWIGINTERN VALUE
 _wrap_memcached_server_cursor(int argc, VALUE *argv, VALUE self) {
   memcached_st *arg1 = (memcached_st *) 0 ;
@@ -13040,7 +13035,7 @@ SWIGEXPORT void Init_rlibmemcached(void) {
   rb_define_method(cMemcachedServerSt.klass, &quot;hostname=&quot;, _wrap_MemcachedServerSt_hostname_set, -1);
   rb_define_method(cMemcachedServerSt.klass, &quot;hostname&quot;, _wrap_MemcachedServerSt_hostname_get, -1);
   cMemcachedServerSt.mark = 0;
-  cMemcachedServerSt.destroy = (void (*)(void *)) free_memcached_server_st;
+  cMemcachedServerSt.destroy = (void (*)(void *)) memcached_server_free;
   cMemcachedServerSt.trackObjects = 0;
   rb_define_module_function(mRlibmemcached, &quot;memcached_server_cursor&quot;, _wrap_memcached_server_cursor, -1);
   rb_define_module_function(mRlibmemcached, &quot;memcached_server_by_key&quot;, _wrap_memcached_server_by_key, -1);</diff>
      <filename>ext/rlibmemcached_wrap.c</filename>
    </modified>
    <modified>
      <diff>@@ -112,6 +112,10 @@ class Worker
         @i.times do
           @cache.servers
         end
+      when &quot;server_by_key&quot;
+        @i.times do
+          @cache.server_by_key(@key1)
+        end
       else
         raise &quot;No such method&quot;
     end
@@ -122,10 +126,12 @@ class Worker
       sleep 0.1
     end
 
-    sts, clients = 0, 0
+    sts, server_sts, clients = 0, 0, 0
     ObjectSpace.each_object(Memcached) { clients += 1 }
     ObjectSpace.each_object(Rlibmemcached::MemcachedSt) { sts += 1 }  
+    ObjectSpace.each_object(Rlibmemcached::MemcachedServerSt) { server_sts += 1 }  
     puts &quot;*** Structs: #{sts} ***&quot;
+    puts &quot;*** Server structs: #{server_sts} ***&quot;
     puts &quot;*** Clients: #{clients} ***&quot;
   end  
 end</diff>
      <filename>test/profile/valgrind.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1523ed860a4a620675f63c64a56654f21b728142</id>
    </parent>
  </parents>
  <author>
    <name>Evan Weaver</name>
    <email>eweaver@twitter.com</email>
  </author>
  <url>http://github.com/chriseppstein/memcached/commit/d17197212c972e93a209dc4d86bfa743c70e3b8f</url>
  <id>d17197212c972e93a209dc4d86bfa743c70e3b8f</id>
  <committed-date>2009-09-02T21:54:19-07:00</committed-date>
  <authored-date>2009-09-02T21:54:19-07:00</authored-date>
  <message>Free MemcachedServerSt.</message>
  <tree>e1b6a06b2afe9548c5481578167d53af7bbc3ac2</tree>
  <committer>
    <name>Evan Weaver</name>
    <email>eweaver@twitter.com</email>
  </committer>
</commit>
