memcached 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ v1.1.2. Fix memory leak in memcached_mget().
2
+
1
3
  v1.1.1. Speed up multiget. Don't cast types on unmarshalled set.
2
4
 
3
5
  v1.1. TTL interface requires Fixnums.
@@ -41,19 +41,8 @@
41
41
  $1[i] = StringValuePtr(RARRAY_PTR($input)[i]);
42
42
  }
43
43
  }
44
- %typemap(in) (char **keys, size_t *key_length, unsigned int number_of_keys) {
45
- int i;
46
- Check_Type($input, T_ARRAY);
47
- $3 = (unsigned int) RARRAY_LEN($input);
48
- $2 = (size_t *) malloc(($3+1)*sizeof(size_t));
49
- $1 = (char **) malloc(($3+1)*sizeof(char *));
50
- for(i = 0; i < $3; i ++) {
51
- Check_Type(RARRAY_PTR($input)[i], T_STRING);
52
- $2[i] = RSTRING_LEN(RARRAY_PTR($input)[i]);
53
- $1[i] = StringValuePtr(RARRAY_PTR($input)[i]);
54
- }
55
- }
56
- %typemap(freearg) (char **keys, size_t *key_length, size_t number_of_keys) {
44
+
45
+ %typemap(freearg) (const char **keys, size_t *key_length, size_t number_of_keys) {
57
46
  free($1);
58
47
  free($2);
59
48
  }
@@ -8849,8 +8849,16 @@ _wrap_memcached_mget(int argc, VALUE *argv, VALUE self) {
8849
8849
  }
8850
8850
  result = (memcached_return)memcached_mget(arg1,(char const **)arg2,arg3,arg4);
8851
8851
  vresult = SWIG_From_int((int)(result));
8852
+ {
8853
+ free(arg2);
8854
+ free(arg3);
8855
+ }
8852
8856
  return vresult;
8853
8857
  fail:
8858
+ {
8859
+ free(arg2);
8860
+ free(arg3);
8861
+ }
8854
8862
  return Qnil;
8855
8863
  }
8856
8864
 
@@ -8896,8 +8904,16 @@ _wrap_memcached_mget_len(int argc, VALUE *argv, VALUE self) {
8896
8904
  arg5 = (uint32_t)(val5);
8897
8905
  result = (memcached_return)memcached_mget_len(arg1,(char const **)arg2,arg3,arg4,arg5);
8898
8906
  vresult = SWIG_From_int((int)(result));
8907
+ {
8908
+ free(arg2);
8909
+ free(arg3);
8910
+ }
8899
8911
  return vresult;
8900
8912
  fail:
8913
+ {
8914
+ free(arg2);
8915
+ free(arg3);
8916
+ }
8901
8917
  return Qnil;
8902
8918
  }
8903
8919
 
@@ -9031,9 +9047,17 @@ _wrap_memcached_mget_by_key(int argc, VALUE *argv, VALUE self) {
9031
9047
  result = (memcached_return)memcached_mget_by_key(arg1,(char const *)arg2,arg3,(char const **)arg4,arg5,arg6,arg7);
9032
9048
  vresult = SWIG_From_int((int)(result));
9033
9049
  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
9050
+ {
9051
+ free(arg4);
9052
+ free(arg5);
9053
+ }
9034
9054
  return vresult;
9035
9055
  fail:
9036
9056
  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
9057
+ {
9058
+ free(arg4);
9059
+ free(arg5);
9060
+ }
9037
9061
  return Qnil;
9038
9062
  }
9039
9063
 
@@ -2,12 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{memcached}
5
- s.version = "1.1.1"
5
+ s.version = "1.1.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Evan Weaver"]
9
9
  s.cert_chain = ["/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-public_cert.pem"]
10
- s.date = %q{2011-02-23}
10
+ s.date = %q{2011-02-24}
11
11
  s.description = %q{An interface to the libmemcached C client.}
12
12
  s.email = %q{}
13
13
  s.extensions = ["ext/extconf.rb"]
@@ -17,13 +17,12 @@ Gem::Specification.new do |s|
17
17
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Memcached", "--main", "README"]
18
18
  s.require_paths = ["lib", "ext"]
19
19
  s.rubyforge_project = %q{fauna}
20
- s.rubygems_version = %q{1.3.7}
20
+ s.rubygems_version = %q{1.5.0}
21
21
  s.signing_key = %q{/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-private_key.pem}
22
22
  s.summary = %q{An interface to the libmemcached C client.}
23
23
  s.test_files = ["test/test_helper.rb", "test/unit/binding_test.rb", "test/unit/memcached_experimental_test.rb", "test/unit/memcached_test.rb", "test/unit/rails_test.rb"]
24
24
 
25
25
  if s.respond_to? :specification_version then
26
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
27
26
  s.specification_version = 3
28
27
 
29
28
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -103,7 +103,7 @@ class Worker
103
103
  end
104
104
  when "multiget"
105
105
  @i.times do
106
- @cache.get([@key1, @key2])
106
+ @cache.get([@key1, @key2, @key3])
107
107
  end
108
108
  when "clone"
109
109
  @i.times do
@@ -1,3 +1,3 @@
1
1
  require "#{File.dirname(__FILE__)}/../setup"
2
2
 
3
- exec("valgrind --tool=memcheck --leak-check=full --show-reachable=no --num-callers=15 --track-fds=yes --workaround-gcc296-bugs=yes --max-stackframe=7304328 --dsymutil=yes --track-origins=yes ruby -r#{File.dirname(__FILE__)}/exercise.rb -e \"Worker.new('mixed', 10000, 'true').work\"")
3
+ exec("valgrind --tool=memcheck --error-limit=no --leak-check=full --show-reachable=no --num-callers=15 --track-fds=yes --workaround-gcc296-bugs=yes --max-stackframe=7304328 --dsymutil=yes --track-origins=yes ruby -r#{File.dirname(__FILE__)}/exercise.rb -e \"Worker.new(ENV['TEST'] || 'mixed', 500, 'true').work\"")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memcached
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 1
10
- version: 1.1.1
9
+ - 2
10
+ version: 1.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Evan Weaver
@@ -36,7 +36,7 @@ cert_chain:
36
36
  yZ0=
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2011-02-23 00:00:00 -08:00
39
+ date: 2011-02-24 00:00:00 -08:00
40
40
  default_executable:
41
41
  dependencies: []
42
42
 
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  requirements: []
137
137
 
138
138
  rubyforge_project: fauna
139
- rubygems_version: 1.3.7
139
+ rubygems_version: 1.5.0
140
140
  signing_key:
141
141
  specification_version: 3
142
142
  summary: An interface to the libmemcached C client.
metadata.gz.sig CHANGED
Binary file