bdb1 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Changes CHANGED
@@ -39,13 +39,26 @@
39
39
  * BDB1::Common::[]
40
40
  * corrected set_fetch_value
41
41
  * new return value for []= (1.8.0)
42
- * adapted for 1.8.0
42
+ * adapted to 1.8.0
43
43
 
44
44
  --- 0.1.9
45
45
 
46
- * adapted for 1.8 (minor modifications)
46
+ * adapted to 1.8 (minor modifications)
47
47
 
48
48
  --- 0.2.2
49
49
 
50
50
  * corrected dbst->info (Thanks Matthew Luckie <mjl@luckie.org.nz>)
51
51
  * added documentation for ri (make ri-site)
52
+
53
+ --- 0.2.3
54
+
55
+ * adapted to ruby 1.9.0.
56
+
57
+ --- 0.2.4
58
+
59
+ * converted rd to rdoc.
60
+ * gemified.
61
+
62
+ --- 0.2.5
63
+
64
+ * adapted to ruby 1.9.3.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.4
1
+ 0.2.5
@@ -4,15 +4,15 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "bdb1"
8
- s.version = "0.2.4"
7
+ s.name = %q{bdb1}
8
+ s.version = "0.2.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Guy Decoux", "Akinori MUSHA"]
12
- s.date = "2011-12-22"
13
- s.description = "This is a Ruby interface to Berkeley DB 1.85 and 1.86."
14
- s.email = "knu@idaemons.org"
15
- s.extensions = ["ext/bdb1/extconf.rb"]
11
+ s.authors = [%q{Guy Decoux}, %q{Akinori MUSHA}]
12
+ s.date = %q{2012-01-02}
13
+ s.description = %q{This is a Ruby interface to Berkeley DB 1.85 and 1.86.}
14
+ s.email = %q{knu@idaemons.org}
15
+ s.extensions = [%q{ext/bdb1/extconf.rb}]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE.txt",
18
18
  "README.md"
@@ -45,11 +45,11 @@ Gem::Specification.new do |s|
45
45
  "test/test_recnum.rb",
46
46
  "test/tmp/.keep_me"
47
47
  ]
48
- s.homepage = "http://github.com/knu/ruby-bdb1"
49
- s.licenses = ["Ruby's"]
50
- s.require_paths = ["lib"]
51
- s.rubygems_version = "1.8.11"
52
- s.summary = "A Ruby interface to Berkeley DB 1.85 and 1.86"
48
+ s.homepage = %q{http://github.com/knu/ruby-bdb1}
49
+ s.licenses = [%q{Ruby's}]
50
+ s.require_paths = [%q{lib}]
51
+ s.rubygems_version = %q{1.8.5}
52
+ s.summary = %q{A Ruby interface to Berkeley DB 1.85 and 1.86}
53
53
 
54
54
  if s.respond_to? :specification_version then
55
55
  s.specification_version = 3
@@ -13,7 +13,7 @@ static ID id_bt_compare, id_bt_prefix, id_h_hash, bdb1_id_call;
13
13
  static VALUE bdb1_errstr;
14
14
  static int bdb1_errcall = 0;
15
15
 
16
- static char *
16
+ static const char *
17
17
  db_strerror(int err)
18
18
  {
19
19
  if (err == 0)
@@ -26,8 +26,7 @@ db_strerror(int err)
26
26
  }
27
27
 
28
28
  int
29
- bdb1_test_error(comm)
30
- int comm;
29
+ bdb1_test_error(int comm)
31
30
  {
32
31
  VALUE error;
33
32
 
@@ -39,7 +38,7 @@ bdb1_test_error(comm)
39
38
  error = bdb1_eFatal;
40
39
  if (bdb1_errcall) {
41
40
  bdb1_errcall = 0;
42
- rb_raise(error, "%s -- %s", StringValuePtr(bdb1_errstr), db_strerror(comm));
41
+ rb_raise(error, "%s -- %s", StringValueCStr(bdb1_errstr), db_strerror(comm));
43
42
  }
44
43
  else
45
44
  rb_raise(error, "%s", db_strerror(errno));
@@ -48,14 +47,9 @@ bdb1_test_error(comm)
48
47
  }
49
48
 
50
49
  static VALUE
51
- test_dump(obj, key, a, type_kv)
52
- VALUE obj;
53
- DBT *key;
54
- VALUE a;
55
- int type_kv;
50
+ test_dump(VALUE obj, DBT *key, VALUE a, int type_kv)
56
51
  {
57
52
  bdb1_DB *dbst;
58
- int is_nil = 0;
59
53
  VALUE tmp = a;
60
54
 
61
55
  Data_Get_Struct(obj, bdb1_DB, dbst);
@@ -67,7 +61,7 @@ test_dump(obj, key, a, type_kv)
67
61
  tmp = rb_funcall(dbst->filter[type_kv], bdb1_id_call, 1, a);
68
62
  }
69
63
  }
70
- if (dbst->marshal) {
64
+ if (dbst->marshal != Qundef) {
71
65
  if (rb_obj_is_kind_of(a, bdb1_cDelegate)) {
72
66
  tmp = bdb1_deleg_to_orig(tmp);
73
67
  }
@@ -78,22 +72,23 @@ test_dump(obj, key, a, type_kv)
78
72
  }
79
73
  else {
80
74
  tmp = rb_obj_as_string(tmp);
81
- if (a == Qnil)
82
- is_nil = 1;
75
+ if (NIL_P(a)) {
76
+ key->data = StringValueCStr(tmp);
77
+ key->size = RSTRING_LEN(tmp) + 1;
78
+ return tmp;
79
+ }
83
80
  }
84
81
  key->data = StringValuePtr(tmp);
85
- key->size = RSTRING_LEN(tmp) + is_nil;
82
+ key->size = RSTRING_LEN(tmp);
86
83
  return tmp;
87
84
  }
88
85
 
89
86
  static VALUE
90
- test_ret(obj, tmp, a, type_kv)
91
- VALUE obj, tmp, a;
92
- int type_kv;
87
+ test_ret(VALUE obj, VALUE tmp, VALUE a, int type_kv)
93
88
  {
94
89
  bdb1_DB *dbst;
95
90
  Data_Get_Struct(obj, bdb1_DB, dbst);
96
- if (dbst->marshal || a == Qnil) {
91
+ if (dbst->marshal != Qundef || NIL_P(a)) {
97
92
  return a;
98
93
  }
99
94
  if (dbst->filter[type_kv]) {
@@ -103,11 +98,7 @@ test_ret(obj, tmp, a, type_kv)
103
98
  }
104
99
 
105
100
  static VALUE
106
- test_recno(obj, key, recno, a)
107
- VALUE obj;
108
- DBT *key;
109
- db_recno_t *recno;
110
- VALUE a;
101
+ test_recno(VALUE obj, DBT *key, db_recno_t *recno, VALUE a)
111
102
  {
112
103
  bdb1_DB *dbst;
113
104
  Data_Get_Struct(obj, bdb1_DB, dbst);
@@ -121,17 +112,14 @@ test_recno(obj, key, recno, a)
121
112
  }
122
113
 
123
114
  VALUE
124
- bdb1_test_load(obj, a, type_kv)
125
- VALUE obj;
126
- DBT *a;
127
- int type_kv;
115
+ bdb1_test_load(VALUE obj, const DBT *a, int type_kv)
128
116
  {
129
117
  VALUE res;
130
118
  int i;
131
119
  bdb1_DB *dbst;
132
120
 
133
121
  Data_Get_Struct(obj, bdb1_DB, dbst);
134
- if (dbst->marshal) {
122
+ if (dbst->marshal != Qundef) {
135
123
  res = rb_str_new(a->data, a->size);
136
124
  if (dbst->filter[2 + type_kv]) {
137
125
  if (FIXNUM_P(dbst->filter[2 + type_kv])) {
@@ -168,9 +156,7 @@ bdb1_test_load(obj, a, type_kv)
168
156
  }
169
157
 
170
158
  static VALUE
171
- test_load_dyna(obj, key, val)
172
- VALUE obj;
173
- DBT *key, *val;
159
+ test_load_dyna(VALUE obj, DBT *key, DBT *val)
174
160
  {
175
161
  bdb1_DB *dbst;
176
162
  VALUE del, res, tmp;
@@ -178,7 +164,7 @@ test_load_dyna(obj, key, val)
178
164
 
179
165
  Data_Get_Struct(obj, bdb1_DB, dbst);
180
166
  res = bdb1_test_load(obj, val, FILTER_VALUE);
181
- if (dbst->marshal && !SPECIAL_CONST_P(res)) {
167
+ if (dbst->marshal != Qundef && !SPECIAL_CONST_P(res)) {
182
168
  del = Data_Make_Struct(bdb1_cDelegate, struct deleg_class,
183
169
  bdb1_deleg_mark, bdb1_deleg_free, delegst);
184
170
  delegst->db = obj;
@@ -197,13 +183,12 @@ test_load_dyna(obj, key, val)
197
183
 
198
184
 
199
185
  static int
200
- bdb1_bt_compare(a, b)
201
- DBT *a, *b;
186
+ bdb1_bt_compare(const DBT *a, const DBT *b)
202
187
  {
203
188
  VALUE obj, av, bv, res;
204
189
  bdb1_DB *dbst;
205
190
 
206
- if ((obj = rb_thread_local_aref(rb_thread_current(), bdb1_id_current_db)) == Qnil) {
191
+ if (NIL_P(obj = rb_thread_local_aref(rb_thread_current(), bdb1_id_current_db))) {
207
192
  rb_raise(bdb1_eFatal, "BUG : current_db not set");
208
193
  }
209
194
  Data_Get_Struct(obj, bdb1_DB, dbst);
@@ -217,13 +202,12 @@ bdb1_bt_compare(a, b)
217
202
  }
218
203
 
219
204
  static size_t
220
- bdb1_bt_prefix(a, b)
221
- DBT *a, *b;
205
+ bdb1_bt_prefix(const DBT *a, const DBT *b)
222
206
  {
223
207
  VALUE obj, av, bv, res;
224
208
  bdb1_DB *dbst;
225
209
 
226
- if ((obj = rb_thread_local_aref(rb_thread_current(), bdb1_id_current_db)) == Qnil) {
210
+ if (NIL_P(obj = rb_thread_local_aref(rb_thread_current(), bdb1_id_current_db))) {
227
211
  rb_raise(bdb1_eFatal, "BUG : current_db not set");
228
212
  }
229
213
  Data_Get_Struct(obj, bdb1_DB, dbst);
@@ -237,14 +221,12 @@ bdb1_bt_prefix(a, b)
237
221
  }
238
222
 
239
223
  static u_int32_t
240
- bdb1_h_hash(bytes, length)
241
- void *bytes;
242
- u_int32_t length;
224
+ bdb1_h_hash(const void *bytes, size_t length)
243
225
  {
244
226
  VALUE obj, st, res;
245
227
  bdb1_DB *dbst;
246
228
 
247
- if ((obj = rb_thread_local_aref(rb_thread_current(), bdb1_id_current_db)) == Qnil) {
229
+ if (NIL_P(obj = rb_thread_local_aref(rb_thread_current(), bdb1_id_current_db))) {
248
230
  rb_raise(bdb1_eFatal, "BUG : current_db not set");
249
231
  }
250
232
  Data_Get_Struct(obj, bdb1_DB, dbst);
@@ -253,12 +235,11 @@ bdb1_h_hash(bytes, length)
253
235
  res = rb_funcall(obj, id_h_hash, 1, st);
254
236
  else
255
237
  res = rb_funcall(dbst->h_hash, bdb1_id_call, 1, st);
256
- return NUM2UINT(res);
238
+ return (u_int32_t)NUM2LONG(res);
257
239
  }
258
240
 
259
241
  static void
260
- bdb1_i_close(dbst)
261
- bdb1_DB *dbst;
242
+ bdb1_i_close(bdb1_DB *dbst)
262
243
  {
263
244
  if (dbst->dbp != NULL && !(dbst->options & BDB1_NOT_OPEN)) {
264
245
  dbst->options |= BDB1_NOT_OPEN;
@@ -268,16 +249,14 @@ bdb1_i_close(dbst)
268
249
  }
269
250
 
270
251
  static void
271
- bdb1_free(dbst)
272
- bdb1_DB *dbst;
252
+ bdb1_free(bdb1_DB *dbst)
273
253
  {
274
254
  bdb1_i_close(dbst);
275
255
  free(dbst);
276
256
  }
277
257
 
278
258
  static void
279
- bdb1_mark(dbst)
280
- bdb1_DB *dbst;
259
+ bdb1_mark(bdb1_DB *dbst)
281
260
  {
282
261
  int i;
283
262
 
@@ -291,8 +270,7 @@ bdb1_mark(dbst)
291
270
  }
292
271
 
293
272
  static VALUE
294
- bdb1_i185_btree(obj, dbstobj)
295
- VALUE obj, dbstobj;
273
+ bdb1_i185_btree(VALUE obj, VALUE dbstobj)
296
274
  {
297
275
  VALUE key, value;
298
276
  bdb1_DB *dbst;
@@ -302,7 +280,7 @@ bdb1_i185_btree(obj, dbstobj)
302
280
  key = rb_ary_entry(obj, 0);
303
281
  value = rb_ary_entry(obj, 1);
304
282
  key = rb_obj_as_string(key);
305
- options = StringValuePtr(key);
283
+ options = StringValueCStr(key);
306
284
  if (strcmp(options, "set_flags") == 0) {
307
285
  dbst->has_info = Qtrue;
308
286
  dbst->info.bi.flags = NUM2INT(value);
@@ -345,8 +323,7 @@ bdb1_i185_btree(obj, dbstobj)
345
323
  }
346
324
 
347
325
  static VALUE
348
- bdb1_i185_hash(obj, dbstobj)
349
- VALUE obj, dbstobj;
326
+ bdb1_i185_hash(VALUE obj, VALUE dbstobj)
350
327
  {
351
328
  VALUE key, value;
352
329
  bdb1_DB *dbst;
@@ -356,7 +333,7 @@ bdb1_i185_hash(obj, dbstobj)
356
333
  key = rb_ary_entry(obj, 0);
357
334
  value = rb_ary_entry(obj, 1);
358
335
  key = rb_obj_as_string(key);
359
- options = StringValuePtr(key);
336
+ options = StringValueCStr(key);
360
337
  if (strcmp(options, "set_h_ffactor") == 0) {
361
338
  dbst->has_info = Qtrue;
362
339
  dbst->info.hi.ffactor = NUM2INT(value);
@@ -386,8 +363,7 @@ bdb1_i185_hash(obj, dbstobj)
386
363
  }
387
364
 
388
365
  static VALUE
389
- bdb1_i185_recno(obj, dbstobj)
390
- VALUE obj, dbstobj;
366
+ bdb1_i185_recno(VALUE obj, VALUE dbstobj)
391
367
  {
392
368
  VALUE key, value;
393
369
  bdb1_DB *dbst;
@@ -397,7 +373,7 @@ bdb1_i185_recno(obj, dbstobj)
397
373
  key = rb_ary_entry(obj, 0);
398
374
  value = rb_ary_entry(obj, 1);
399
375
  key = rb_obj_as_string(key);
400
- options = StringValuePtr(key);
376
+ options = StringValueCStr(key);
401
377
  if (strcmp(options, "set_flags") == 0) {
402
378
  dbst->has_info = Qtrue;
403
379
  dbst->info.ri.flags = NUM2INT(value);
@@ -405,7 +381,7 @@ bdb1_i185_recno(obj, dbstobj)
405
381
  else if (strcmp(options, "set_re_delim") == 0) {
406
382
  int ch;
407
383
  if (TYPE(value) == T_STRING) {
408
- str = StringValuePtr(value);
384
+ str = StringValueCStr(value);
409
385
  dbst->info.ri.bval = str[0];
410
386
  }
411
387
  else {
@@ -422,7 +398,7 @@ bdb1_i185_recno(obj, dbstobj)
422
398
  else if (strcmp(options, "set_re_pad") == 0) {
423
399
  int ch;
424
400
  if (TYPE(value) == T_STRING) {
425
- str = StringValuePtr(value);
401
+ str = StringValueCStr(value);
426
402
  dbst->info.ri.bval = str[0];
427
403
  }
428
404
  else {
@@ -456,8 +432,7 @@ bdb1_i185_recno(obj, dbstobj)
456
432
  }
457
433
 
458
434
  static VALUE
459
- bdb1_load_dump(obj)
460
- VALUE obj;
435
+ bdb1_load_dump(VALUE obj)
461
436
  {
462
437
  VALUE res;
463
438
 
@@ -469,8 +444,7 @@ bdb1_load_dump(obj)
469
444
  }
470
445
 
471
446
  static VALUE
472
- bdb1_i185_common(obj, dbstobj)
473
- VALUE obj, dbstobj;
447
+ bdb1_i185_common(VALUE obj, VALUE dbstobj)
474
448
  {
475
449
  VALUE key, value;
476
450
  bdb1_DB *dbst;
@@ -480,7 +454,7 @@ bdb1_i185_common(obj, dbstobj)
480
454
  key = rb_ary_entry(obj, 0);
481
455
  value = rb_ary_entry(obj, 1);
482
456
  key = rb_obj_as_string(key);
483
- options = StringValuePtr(key);
457
+ options = StringValueCStr(key);
484
458
  if (strcmp(options, "marshal") == 0) {
485
459
  switch (value) {
486
460
  case Qtrue:
@@ -488,7 +462,7 @@ bdb1_i185_common(obj, dbstobj)
488
462
  dbst->options |= BDB1_MARSHAL;
489
463
  break;
490
464
  case Qfalse:
491
- dbst->marshal = Qfalse;
465
+ dbst->marshal = Qundef;
492
466
  dbst->options &= ~BDB1_MARSHAL;
493
467
  break;
494
468
  default:
@@ -528,12 +502,11 @@ bdb1_i185_common(obj, dbstobj)
528
502
  }
529
503
 
530
504
  static int
531
- bdb1_hard_count(dbp)
532
- DB *dbp;
505
+ bdb1_hard_count(DB *dbp)
533
506
  {
534
507
  DBT key, data;
535
508
  db_recno_t recno;
536
- long count = 0;
509
+ int count = 0;
537
510
 
538
511
  DATA_ZERO(key);
539
512
  key.data = &recno;
@@ -644,10 +617,7 @@ bdb1_hard_count(dbp)
644
617
  * end
645
618
  */
646
619
  VALUE
647
- bdb1_init(argc, argv, obj)
648
- int argc;
649
- VALUE *argv;
650
- VALUE obj;
620
+ bdb1_init(int argc, VALUE *argv, VALUE obj)
651
621
  {
652
622
  VALUE b, c, d, f;
653
623
  int mode, oflags;
@@ -668,7 +638,7 @@ bdb1_init(argc, argv, obj)
668
638
  /* ... */
669
639
  case 2:
670
640
  if (TYPE(c) == T_STRING) {
671
- char *m = StringValuePtr(c);
641
+ char *m = StringValueCStr(c);
672
642
  if (strcmp(m, "r") == 0) {
673
643
  oflags = DB_RDONLY;
674
644
  }
@@ -685,7 +655,7 @@ bdb1_init(argc, argv, obj)
685
655
  rb_raise(bdb1_eFatal, "flags must be r, r+, w, w+, a or a+");
686
656
  }
687
657
  }
688
- else if (c == Qnil) {
658
+ else if (NIL_P(c)) {
689
659
  oflags = DB_RDONLY;
690
660
  }
691
661
  else {
@@ -695,7 +665,7 @@ bdb1_init(argc, argv, obj)
695
665
  case 1:
696
666
  if (!NIL_P(b)) {
697
667
  SafeStringValue(b);
698
- name = StringValuePtr(b);
668
+ name = StringValueCStr(b);
699
669
  }
700
670
  else {
701
671
  name = NULL;
@@ -758,8 +728,7 @@ bdb1_init(argc, argv, obj)
758
728
  * Closes the file.
759
729
  */
760
730
  static VALUE
761
- bdb1_close(obj)
762
- VALUE obj;
731
+ bdb1_close(VALUE obj)
763
732
  {
764
733
  VALUE opt;
765
734
  bdb1_DB *dbst;
@@ -773,13 +742,13 @@ bdb1_close(obj)
773
742
  }
774
743
 
775
744
  VALUE
776
- bdb1_s_alloc(obj)
777
- VALUE obj;
745
+ bdb1_s_alloc(VALUE obj)
778
746
  {
779
747
  bdb1_DB *dbst;
780
748
  VALUE res, cl;
781
749
 
782
750
  res = Data_Make_Struct(obj, bdb1_DB, bdb1_mark, bdb1_free, dbst);
751
+ dbst->marshal = Qundef;
783
752
  dbst->options |= BDB1_NOT_OPEN;
784
753
  cl = obj;
785
754
  while (cl) {
@@ -795,7 +764,7 @@ bdb1_s_alloc(obj)
795
764
  dbst->type = DB_RECNO;
796
765
  break;
797
766
  }
798
- cl = RCLASS(cl)->super;
767
+ cl = RCLASS_SUPER(cl);
799
768
  }
800
769
  if (!cl) {
801
770
  rb_raise(bdb1_eFatal, "unknown database type");
@@ -804,16 +773,16 @@ bdb1_s_alloc(obj)
804
773
  dbst->marshal = obj;
805
774
  dbst->options |= BDB1_MARSHAL;
806
775
  }
807
- if (rb_method_boundp(obj, rb_intern("bdb1_store_key"), 0) == Qtrue) {
776
+ if (rb_method_boundp(obj, rb_intern("bdb1_store_key"), 0)) {
808
777
  dbst->filter[FILTER_KEY] = INT2FIX(rb_intern("bdb1_store_key"));
809
778
  }
810
- if (rb_method_boundp(obj, rb_intern("bdb1_fetch_key"), 0) == Qtrue) {
779
+ if (rb_method_boundp(obj, rb_intern("bdb1_fetch_key"), 0)) {
811
780
  dbst->filter[2 + FILTER_KEY] = INT2FIX(rb_intern("bdb1_fetch_key"));
812
781
  }
813
- if (rb_method_boundp(obj, rb_intern("bdb1_store_value"), 0) == Qtrue) {
782
+ if (rb_method_boundp(obj, rb_intern("bdb1_store_value"), 0)) {
814
783
  dbst->filter[FILTER_VALUE] = INT2FIX(rb_intern("bdb1_store_value"));
815
784
  }
816
- if (rb_method_boundp(obj, rb_intern("bdb1_fetch_value"), 0) == Qtrue) {
785
+ if (rb_method_boundp(obj, rb_intern("bdb1_fetch_value"), 0)) {
817
786
  dbst->filter[2 + FILTER_VALUE] = INT2FIX(rb_intern("bdb1_fetch_value"));
818
787
  }
819
788
  return res;
@@ -823,10 +792,7 @@ bdb1_s_alloc(obj)
823
792
  * Same as +new+.
824
793
  */
825
794
  static VALUE
826
- bdb1_s_create(argc, argv, obj)
827
- int argc;
828
- VALUE *argv;
829
- VALUE obj;
795
+ bdb1_s_create(int argc, VALUE *argv, VALUE obj)
830
796
  {
831
797
  VALUE st, res;
832
798
 
@@ -836,8 +802,7 @@ bdb1_s_create(argc, argv, obj)
836
802
  }
837
803
 
838
804
  static VALUE
839
- bdb1_i_create(obj, db)
840
- VALUE obj, db;
805
+ bdb1_i_create(VALUE obj, VALUE db)
841
806
  {
842
807
  VALUE tmp[2];
843
808
  tmp[0] = rb_ary_entry(obj, 0);
@@ -859,10 +824,7 @@ bdb1_i_create(obj, db)
859
824
  * given hash or pairs of objects.
860
825
  */
861
826
  static VALUE
862
- bdb1_s_aref(argc, argv, obj)
863
- int argc;
864
- VALUE *argv;
865
- VALUE obj;
827
+ bdb1_s_aref(int argc, VALUE *argv, VALUE obj)
866
828
  {
867
829
  VALUE res, tmp[2];
868
830
  int i;
@@ -886,10 +848,7 @@ bdb1_s_aref(argc, argv, obj)
886
848
  * initialized object which is automatically closed when done.
887
849
  */
888
850
  static VALUE
889
- bdb1_s_open(argc, argv, obj)
890
- int argc;
891
- VALUE *argv;
892
- VALUE obj;
851
+ bdb1_s_open(int argc, VALUE *argv, VALUE obj)
893
852
  {
894
853
  VALUE res = rb_funcall2(obj, rb_intern("new"), argc, argv);
895
854
  if (rb_block_given_p()) {
@@ -909,10 +868,7 @@ bdb1_s_open(argc, argv, obj)
909
868
  * return +nil+ if the specified key exist, otherwise +true+.
910
869
  */
911
870
  VALUE
912
- bdb1_put(argc, argv, obj)
913
- int argc;
914
- VALUE *argv;
915
- VALUE obj;
871
+ bdb1_put(int argc, VALUE *argv, VALUE obj)
916
872
  {
917
873
  volatile VALUE a0 = Qnil;
918
874
  volatile VALUE b0 = Qnil;
@@ -924,11 +880,10 @@ bdb1_put(argc, argv, obj)
924
880
 
925
881
  rb_secure(4);
926
882
  GetDB(obj, dbst);
927
- flags = 0;
928
- a = b = c = Qnil;
929
- if (rb_scan_args(argc, argv, "21", &a, &b, &c) == 3) {
883
+ if (rb_scan_args(argc, argv, "21", &a, &b, &c) == 3)
930
884
  flags = NUM2INT(c);
931
- }
885
+ else
886
+ flags = 0;
932
887
  DATA_ZERO(key);
933
888
  DATA_ZERO(data);
934
889
  a0 = test_recno(obj, &key, &recno, a);
@@ -936,14 +891,11 @@ bdb1_put(argc, argv, obj)
936
891
  ret = bdb1_test_error(dbst->dbp->put(dbst->dbp, &key, &data, flags));
937
892
  if (ret == DB_KEYEXIST)
938
893
  return Qfalse;
939
- else {
940
- return test_ret(obj, b0, b, FILTER_VALUE);
941
- }
894
+ return test_ret(obj, b0, b, FILTER_VALUE);
942
895
  }
943
896
 
944
897
  static VALUE
945
- bdb1_assign(obj, a, b)
946
- VALUE obj, a, b;
898
+ bdb1_assign(VALUE obj, VALUE a, VALUE b)
947
899
  {
948
900
  VALUE tmp[2];
949
901
  tmp[0] = a;
@@ -953,9 +905,7 @@ bdb1_assign(obj, a, b)
953
905
  }
954
906
 
955
907
  static VALUE
956
- test_load_key(obj, key)
957
- VALUE obj;
958
- DBT *key;
908
+ test_load_key(VALUE obj, DBT *key)
959
909
  {
960
910
  bdb1_DB *dbst;
961
911
  Data_Get_Struct(obj, bdb1_DB, dbst);
@@ -965,30 +915,21 @@ test_load_key(obj, key)
965
915
  }
966
916
 
967
917
  static VALUE
968
- bdb1_assoc(obj, key, data)
969
- VALUE obj;
970
- DBT *key, *data;
918
+ bdb1_assoc(VALUE obj, DBT *key, DBT *data)
971
919
  {
972
920
  return rb_assoc_new(test_load_key(obj, key),
973
921
  bdb1_test_load(obj, data, FILTER_VALUE));
974
922
  }
975
923
 
976
924
  static VALUE
977
- bdb1_assoc_dyna(obj, key, data)
978
- VALUE obj;
979
- DBT *key, *data;
925
+ bdb1_assoc_dyna(VALUE obj, DBT *key, DBT *data)
980
926
  {
981
927
  return rb_assoc_new(test_load_key(obj, key),
982
928
  test_load_dyna(obj, key, data));
983
929
  }
984
930
 
985
931
  static VALUE
986
- bdb1_get_internal(argc, argv, obj, notfound, dyna)
987
- int argc;
988
- VALUE *argv;
989
- VALUE obj;
990
- VALUE notfound;
991
- int dyna;
932
+ bdb1_get_internal(int argc, VALUE *argv, VALUE obj, VALUE notfound, int dyna)
992
933
  {
993
934
  volatile VALUE a = Qnil;
994
935
  VALUE b, c;
@@ -1024,10 +965,7 @@ bdb1_get_internal(argc, argv, obj, notfound, dyna)
1024
965
  }
1025
966
 
1026
967
  VALUE
1027
- bdb1_get(argc, argv, obj)
1028
- int argc;
1029
- VALUE *argv;
1030
- VALUE obj;
968
+ bdb1_get(int argc, VALUE *argv, VALUE obj)
1031
969
  {
1032
970
  return bdb1_get_internal(argc, argv, obj, Qnil, 0);
1033
971
  }
@@ -1040,18 +978,13 @@ bdb1_get(argc, argv, obj)
1040
978
  * Returns the value corresponding to +key+.
1041
979
  */
1042
980
  static VALUE
1043
- bdb1_get_dyna(argc, argv, obj)
1044
- int argc;
1045
- VALUE *argv;
1046
- VALUE obj;
981
+ bdb1_get_dyna(int argc, VALUE *argv, VALUE obj)
1047
982
  {
1048
983
  return bdb1_get_internal(argc, argv, obj, Qnil, 1);
1049
984
  }
1050
985
 
1051
986
  static VALUE
1052
- bdb1_fetch(argc, argv, obj)
1053
- int argc;
1054
- VALUE *argv, obj;
987
+ bdb1_fetch(int argc, VALUE *argv, VALUE obj)
1055
988
  {
1056
989
  VALUE key, if_none;
1057
990
  VALUE val;
@@ -1074,10 +1007,9 @@ bdb1_fetch(argc, argv, obj)
1074
1007
  }
1075
1008
 
1076
1009
  static VALUE
1077
- bdb1_has_key(obj, key)
1078
- VALUE obj, key;
1010
+ bdb1_has_key(VALUE obj, VALUE key)
1079
1011
  {
1080
- return bdb1_get_internal(1, &key, obj, Qfalse);
1012
+ return bdb1_get_internal(1, &key, obj, Qfalse, 0);
1081
1013
  }
1082
1014
 
1083
1015
  /*
@@ -1087,8 +1019,7 @@ bdb1_has_key(obj, key)
1087
1019
  * Returns +true+ if the association from +key+ is +value+.
1088
1020
  */
1089
1021
  static VALUE
1090
- bdb1_has_both(obj, a, b)
1091
- VALUE obj, a, b;
1022
+ bdb1_has_both(VALUE obj, VALUE a, VALUE b)
1092
1023
  {
1093
1024
  bdb1_DB *dbst;
1094
1025
  DBT key, data;
@@ -1132,8 +1063,7 @@ bdb1_has_both(obj, a, b)
1132
1063
  * exist.
1133
1064
  */
1134
1065
  VALUE
1135
- bdb1_del(obj, a)
1136
- VALUE a, obj;
1066
+ bdb1_del(VALUE obj, VALUE a)
1137
1067
  {
1138
1068
  bdb1_DB *dbst;
1139
1069
  DBT key;
@@ -1156,8 +1086,7 @@ bdb1_del(obj, a)
1156
1086
  }
1157
1087
 
1158
1088
  static VALUE
1159
- bdb1_empty(obj)
1160
- VALUE obj;
1089
+ bdb1_empty(VALUE obj)
1161
1090
  {
1162
1091
  bdb1_DB *dbst;
1163
1092
  DBT key, data;
@@ -1176,8 +1105,7 @@ bdb1_empty(obj)
1176
1105
  }
1177
1106
 
1178
1107
  static VALUE
1179
- bdb1_delete_if(obj)
1180
- VALUE obj;
1108
+ bdb1_delete_if(VALUE obj)
1181
1109
  {
1182
1110
  bdb1_DB *dbst;
1183
1111
  DBT key, data, save;
@@ -1203,8 +1131,7 @@ bdb1_delete_if(obj)
1203
1131
  }
1204
1132
 
1205
1133
  VALUE
1206
- bdb1_clear(obj)
1207
- VALUE obj;
1134
+ bdb1_clear(VALUE obj)
1208
1135
  {
1209
1136
  bdb1_DB *dbst;
1210
1137
  DBT key, data, save;
@@ -1229,8 +1156,7 @@ bdb1_clear(obj)
1229
1156
  }
1230
1157
 
1231
1158
  static VALUE
1232
- bdb1_length(obj)
1233
- VALUE obj;
1159
+ bdb1_length(VALUE obj)
1234
1160
  {
1235
1161
  bdb1_DB *dbst;
1236
1162
  DBT key, data;
@@ -1258,9 +1184,7 @@ bdb1_length(obj)
1258
1184
  }
1259
1185
 
1260
1186
  static VALUE
1261
- bdb1_each_valuec(obj, sens, result)
1262
- VALUE obj, result;
1263
- int sens;
1187
+ bdb1_each_valuec(VALUE obj, VALUE sens, VALUE result)
1264
1188
  {
1265
1189
  bdb1_DB *dbst;
1266
1190
  DBT key, data;
@@ -1281,19 +1205,26 @@ bdb1_each_valuec(obj, sens, result)
1281
1205
  FREE_KEY(dbst, key);
1282
1206
  interm = bdb1_test_load(obj, &data, FILTER_VALUE);
1283
1207
  rest = rb_yield(interm);
1284
- if (result != Qnil && RTEST(rest)) {
1208
+ if (!NIL_P(result) && RTEST(rest)) {
1285
1209
  rb_ary_push(result, interm);
1286
1210
  }
1287
1211
  } while (1);
1288
1212
  }
1289
1213
 
1290
- VALUE bdb1_each_value(obj) VALUE obj;{ return bdb1_each_valuec(obj, DB_NEXT, Qnil); }
1291
- VALUE bdb1_each_eulav(obj) VALUE obj;{ return bdb1_each_valuec(obj, DB_PREV, Qnil); }
1214
+ VALUE
1215
+ bdb1_each_value(VALUE obj)
1216
+ {
1217
+ return bdb1_each_valuec(obj, DB_NEXT, Qnil);
1218
+ }
1219
+
1220
+ VALUE
1221
+ bdb1_each_eulav(VALUE obj)
1222
+ {
1223
+ return bdb1_each_valuec(obj, DB_PREV, Qnil);
1224
+ }
1292
1225
 
1293
1226
  static VALUE
1294
- bdb1_each_keyc(obj, sens)
1295
- VALUE obj;
1296
- int sens;
1227
+ bdb1_each_keyc(VALUE obj, int sens)
1297
1228
  {
1298
1229
  bdb1_DB *dbst;
1299
1230
  DBT key, data;
@@ -1315,13 +1246,20 @@ bdb1_each_keyc(obj, sens)
1315
1246
  return obj;
1316
1247
  }
1317
1248
 
1318
- VALUE bdb1_each_key(obj) VALUE obj;{ return bdb1_each_keyc(obj, DB_NEXT); }
1319
- static VALUE bdb1_each_yek(obj) VALUE obj;{ return bdb1_each_keyc(obj, DB_PREV); }
1249
+ VALUE
1250
+ bdb1_each_key(VALUE obj)
1251
+ {
1252
+ return bdb1_each_keyc(obj, DB_NEXT);
1253
+ }
1320
1254
 
1321
1255
  static VALUE
1322
- bdb1_each_common(obj, sens)
1323
- VALUE obj;
1324
- int sens;
1256
+ bdb1_each_yek(VALUE obj)
1257
+ {
1258
+ return bdb1_each_keyc(obj, DB_PREV);
1259
+ }
1260
+
1261
+ static VALUE
1262
+ bdb1_each_common(VALUE obj, int sens)
1325
1263
  {
1326
1264
  bdb1_DB *dbst;
1327
1265
  DBT key, data;
@@ -1343,12 +1281,20 @@ bdb1_each_common(obj, sens)
1343
1281
  return obj;
1344
1282
  }
1345
1283
 
1346
- static VALUE bdb1_each_pair(obj) VALUE obj;{ return bdb1_each_common(obj, DB_NEXT); }
1347
- static VALUE bdb1_each_riap(obj) VALUE obj;{ return bdb1_each_common(obj, DB_PREV); }
1284
+ static VALUE
1285
+ bdb1_each_pair(VALUE obj)
1286
+ {
1287
+ return bdb1_each_common(obj, DB_NEXT);
1288
+ }
1289
+
1290
+ static VALUE
1291
+ bdb1_each_riap(VALUE obj)
1292
+ {
1293
+ return bdb1_each_common(obj, DB_PREV);
1294
+ }
1348
1295
 
1349
1296
  VALUE
1350
- bdb1_to_type(obj, result, flag)
1351
- VALUE obj, result, flag;
1297
+ bdb1_to_type(VALUE obj, VALUE result, VALUE flag)
1352
1298
  {
1353
1299
  bdb1_DB *dbst;
1354
1300
  DBT key, data;
@@ -1358,7 +1304,7 @@ bdb1_to_type(obj, result, flag)
1358
1304
  GetDB(obj, dbst);
1359
1305
  INIT_RECNO(dbst, key, recno);
1360
1306
  DATA_ZERO(data);
1361
- flags = (flag == Qnil)?DB_LAST:DB_FIRST;
1307
+ flags = NIL_P(flag) ? DB_LAST : DB_FIRST;
1362
1308
  do {
1363
1309
  ret = bdb1_test_error(dbst->dbp->seq(dbst->dbp, &key, &data, flags));
1364
1310
  if (ret == DB_NOTFOUND) {
@@ -1366,7 +1312,7 @@ bdb1_to_type(obj, result, flag)
1366
1312
  }
1367
1313
  switch (TYPE(result)) {
1368
1314
  case T_ARRAY:
1369
- if (flag == Qtrue) {
1315
+ if (RTEST(flag)) {
1370
1316
  rb_ary_push(result, bdb1_assoc(obj, &key, &data));
1371
1317
  }
1372
1318
  else {
@@ -1374,7 +1320,7 @@ bdb1_to_type(obj, result, flag)
1374
1320
  }
1375
1321
  break;
1376
1322
  case T_HASH:
1377
- if (flag == Qtrue) {
1323
+ if (RTEST(flag)) {
1378
1324
  rb_hash_aset(result, test_load_key(obj, &key),
1379
1325
  bdb1_test_load(obj, &data, FILTER_VALUE));
1380
1326
  }
@@ -1383,35 +1329,31 @@ bdb1_to_type(obj, result, flag)
1383
1329
  test_load_key(obj, &key));
1384
1330
  }
1385
1331
  }
1386
- flags = (flag == Qnil)?DB_PREV:DB_NEXT;
1332
+ flags = NIL_P(flag) ? DB_PREV : DB_NEXT;
1387
1333
  } while (1);
1388
1334
  return result;
1389
1335
  }
1390
1336
 
1391
1337
  static VALUE
1392
- bdb1_to_a(obj)
1393
- VALUE obj;
1338
+ bdb1_to_a(VALUE obj)
1394
1339
  {
1395
1340
  return bdb1_to_type(obj, rb_ary_new(), Qtrue);
1396
1341
  }
1397
1342
 
1398
1343
  static VALUE
1399
- bdb1_invert(obj)
1400
- VALUE obj;
1344
+ bdb1_invert(VALUE obj)
1401
1345
  {
1402
1346
  return bdb1_to_type(obj, rb_hash_new(), Qfalse);
1403
1347
  }
1404
1348
 
1405
1349
  static VALUE
1406
- bdb1_to_hash(obj)
1407
- VALUE obj;
1350
+ bdb1_to_hash(VALUE obj)
1408
1351
  {
1409
1352
  return bdb1_to_type(obj, rb_hash_new(), Qtrue);
1410
1353
  }
1411
1354
 
1412
1355
  static VALUE
1413
- bdb1_each_kv(obj, a, result, flag)
1414
- VALUE obj, a, result, flag;
1356
+ bdb1_each_kv(VALUE obj, VALUE a, VALUE result, VALUE flag)
1415
1357
  {
1416
1358
  bdb1_DB *dbst;
1417
1359
  DBT keys, key, data;
@@ -1429,7 +1371,7 @@ bdb1_each_kv(obj, a, result, flag)
1429
1371
  ret = bdb1_test_error(dbst->dbp->seq(dbst->dbp, &key, &data, flags));
1430
1372
  if (ret == DB_NOTFOUND || keys.size != key.size ||
1431
1373
  memcmp(keys.data, key.data, key.size) != 0) {
1432
- return (result == Qnil)?obj:result;
1374
+ return NIL_P(result)?obj:result;
1433
1375
  }
1434
1376
  k = bdb1_test_load(obj, &data, FILTER_VALUE);
1435
1377
  if (RTEST(flag)) {
@@ -1455,9 +1397,7 @@ bdb1_each_kv(obj, a, result, flag)
1455
1397
  * If +assoc+ is +false+ return only the values.
1456
1398
  */
1457
1399
  static VALUE
1458
- bdb1_bt_duplicates(argc, argv, obj)
1459
- int argc;
1460
- VALUE *argv, obj;
1400
+ bdb1_bt_duplicates(int argc, VALUE *argv, VALUE obj)
1461
1401
  {
1462
1402
  VALUE a, b;
1463
1403
 
@@ -1474,8 +1414,7 @@ bdb1_bt_duplicates(argc, argv, obj)
1474
1414
  * Iterates over duplicate associations for the +key+.
1475
1415
  */
1476
1416
  static VALUE
1477
- bdb1_bt_dup(obj, a)
1478
- VALUE a, obj;
1417
+ bdb1_bt_dup(VALUE obj, VALUE a)
1479
1418
  {
1480
1419
  return bdb1_each_kv(obj, a, Qnil, Qtrue);
1481
1420
  }
@@ -1487,22 +1426,19 @@ bdb1_bt_dup(obj, a)
1487
1426
  * Iterates over duplicate values for the +key+.
1488
1427
  */
1489
1428
  static VALUE
1490
- bdb1_bt_dupval(obj, a)
1491
- VALUE a, obj;
1429
+ bdb1_bt_dupval(VALUE obj, VALUE a)
1492
1430
  {
1493
1431
  return bdb1_each_kv(obj, a, Qnil, Qfalse);
1494
1432
  }
1495
1433
 
1496
1434
  static VALUE
1497
- bdb1_reject(obj)
1498
- VALUE obj;
1435
+ bdb1_reject(VALUE obj)
1499
1436
  {
1500
1437
  return rb_hash_delete_if(bdb1_to_hash(obj));
1501
1438
  }
1502
1439
 
1503
1440
  static VALUE
1504
- bdb1_values(obj)
1505
- VALUE obj;
1441
+ bdb1_values(VALUE obj)
1506
1442
  {
1507
1443
  bdb1_DB *dbst;
1508
1444
  DBT key, data;
@@ -1528,9 +1464,7 @@ bdb1_values(obj)
1528
1464
  }
1529
1465
 
1530
1466
  VALUE
1531
- bdb1_internal_value(obj, a, b, sens)
1532
- VALUE obj, a, b;
1533
- int sens;
1467
+ bdb1_internal_value(VALUE obj, VALUE a, VALUE b, int sens)
1534
1468
  {
1535
1469
  bdb1_DB *dbst;
1536
1470
  DBT key, data;
@@ -1541,64 +1475,38 @@ bdb1_internal_value(obj, a, b, sens)
1541
1475
  INIT_RECNO(dbst, key, recno);
1542
1476
  DATA_ZERO(data);
1543
1477
  flags = (sens == DB_NEXT)?DB_FIRST:DB_LAST;
1544
- do {
1478
+ for (;;) {
1545
1479
  ret = bdb1_test_error(dbst->dbp->seq(dbst->dbp, &key, &data, flags));
1546
1480
  if (ret == DB_NOTFOUND) {
1547
- return (b == Qfalse)?Qfalse:Qnil;
1481
+ return RTEST(b) ? Qnil : Qfalse;
1548
1482
  }
1549
1483
  flags = sens;
1550
- if (rb_equal(a, bdb1_test_load(obj, &data, FILTER_VALUE)) == Qtrue) {
1484
+ if (RTEST(rb_equal(a, bdb1_test_load(obj, &data, FILTER_VALUE)))) {
1551
1485
  VALUE d;
1552
1486
 
1553
- d = (b == Qfalse)?Qtrue:test_load_key(obj, &key);
1487
+ d = RTEST(b) ? test_load_key(obj, &key) : Qtrue;
1554
1488
  FREE_KEY(dbst, key);
1555
1489
  return d;
1556
1490
  }
1557
1491
  FREE_KEY(dbst, key);
1558
- } while (1);
1559
- return (b == Qfalse)?Qfalse:Qnil;
1492
+ }
1493
+ return RTEST(b) ? Qnil : Qfalse;
1560
1494
  }
1561
1495
 
1562
1496
  VALUE
1563
- bdb1_index(obj, a)
1564
- VALUE obj, a;
1497
+ bdb1_key(VALUE obj, VALUE a)
1565
1498
  {
1566
1499
  return bdb1_internal_value(obj, a, Qtrue, DB_NEXT);
1567
1500
  }
1568
1501
 
1569
- static VALUE
1570
- bdb1_indexes(argc, argv, obj)
1571
- int argc;
1572
- VALUE obj, *argv;
1573
- {
1574
- VALUE indexes;
1575
- int i;
1576
-
1577
- #if HAVE_RB_ARY_VALUES_AT
1578
- rb_warn("BDB1#%s is deprecated; use BDB1#values_at",
1579
- #if HAVE_RB_FRAME_THIS_FUNC
1580
- rb_id2name(rb_frame_this_func()));
1581
- #else
1582
- rb_id2name(rb_frame_last_func()));
1583
- #endif
1584
- #endif
1585
- indexes = rb_ary_new2(argc);
1586
- for (i = 0; i < argc; i++) {
1587
- rb_ary_push(indexes, bdb1_get(1, argv + i, obj));
1588
- }
1589
- return indexes;
1590
- }
1591
-
1592
1502
  VALUE
1593
- bdb1_has_value(obj, a)
1594
- VALUE obj, a;
1503
+ bdb1_has_value(VALUE obj, VALUE a)
1595
1504
  {
1596
1505
  return bdb1_internal_value(obj, a, Qfalse, DB_NEXT);
1597
1506
  }
1598
1507
 
1599
1508
  static VALUE
1600
- bdb1_keys(obj)
1601
- VALUE obj;
1509
+ bdb1_keys(VALUE obj)
1602
1510
  {
1603
1511
  bdb1_DB *dbst;
1604
1512
  DBT key, data;
@@ -1624,8 +1532,7 @@ bdb1_keys(obj)
1624
1532
  }
1625
1533
 
1626
1534
  static VALUE
1627
- bdb1_sync(obj)
1628
- VALUE obj;
1535
+ bdb1_sync(VALUE obj)
1629
1536
  {
1630
1537
  bdb1_DB *dbst;
1631
1538
 
@@ -1636,12 +1543,8 @@ bdb1_sync(obj)
1636
1543
  return Qtrue;
1637
1544
  }
1638
1545
 
1639
- #if HAVE_RB_ARY_VALUES_AT
1640
-
1641
1546
  static VALUE
1642
- bdb1_values_at(argc, argv, obj)
1643
- int argc;
1644
- VALUE *argv, obj;
1547
+ bdb1_values_at(int argc, VALUE *argv, VALUE obj)
1645
1548
  {
1646
1549
  VALUE result = rb_ary_new2(argc);
1647
1550
  long i;
@@ -1652,34 +1555,19 @@ bdb1_values_at(argc, argv, obj)
1652
1555
  return result;
1653
1556
  }
1654
1557
 
1655
- #endif
1656
-
1657
- #if HAVE_RB_ARY_SELECT
1658
-
1659
1558
  static VALUE
1660
- bdb1_select(argc, argv, obj)
1661
- int argc;
1662
- VALUE *argv, obj;
1559
+ bdb1_select(VALUE obj)
1663
1560
  {
1664
1561
  VALUE result = rb_ary_new();
1665
- long i;
1666
1562
 
1667
1563
  if (rb_block_given_p()) {
1668
- if (argc > 0) {
1669
- rb_raise(rb_eArgError, "wrong number arguments(%d for 0)", argc);
1670
- }
1671
1564
  return bdb1_each_valuec(obj, DB_NEXT, result);
1672
1565
  }
1673
- rb_warn("Common#select(index..) is deprecated; use Common#values_at");
1674
- return bdb1_values_at(argc, argv, obj);
1566
+ rb_raise(rb_eArgError, "block is not given");
1675
1567
  }
1676
1568
 
1677
- #endif
1678
-
1679
1569
  VALUE
1680
- bdb1_each_vc(obj, replace, rtest)
1681
- VALUE obj;
1682
- int replace, rtest;
1570
+ bdb1_each_vc(VALUE obj, int replace, int rtest)
1683
1571
  {
1684
1572
  bdb1_DB *dbst;
1685
1573
  DBT key, data;
@@ -1709,7 +1597,7 @@ bdb1_each_vc(obj, replace, rtest)
1709
1597
  else {
1710
1598
  rb_ary_push(result, res);
1711
1599
  }
1712
- if (replace == Qtrue) {
1600
+ if (RTEST(replace)) {
1713
1601
  DATA_ZERO(data);
1714
1602
  res = test_dump(obj, &data, res, FILTER_VALUE);
1715
1603
  bdb1_test_error(dbst->dbp->put(dbst->dbp, &key, &data, 0));
@@ -1749,7 +1637,7 @@ bdb1_each_vc(obj, replace, rtest)
1749
1637
  *
1750
1638
  */
1751
1639
  void
1752
- Init_bdb1()
1640
+ Init_bdb1(void)
1753
1641
  {
1754
1642
  bdb1_mMarshal = rb_const_get(rb_cObject, rb_intern("Marshal"));
1755
1643
  id_dump = rb_intern("dump");
@@ -1789,11 +1677,7 @@ Init_bdb1()
1789
1677
  bdb1_cCommon = rb_define_class_under(bdb1_mDb, "Common", rb_cObject);
1790
1678
  rb_define_method(bdb1_cCommon, "initialize", bdb1_init, -1);
1791
1679
  rb_include_module(bdb1_cCommon, rb_mEnumerable);
1792
- #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
1793
1680
  rb_define_alloc_func(bdb1_cCommon, bdb1_s_alloc);
1794
- #else
1795
- rb_define_singleton_method(bdb1_cCommon, "allocate", bdb1_s_alloc, 0);
1796
- #endif
1797
1681
  rb_define_singleton_method(bdb1_cCommon, "create", bdb1_s_create, -1);
1798
1682
  rb_define_singleton_method(bdb1_cCommon, "open", bdb1_s_open, -1);
1799
1683
  rb_define_singleton_method(bdb1_cCommon, "[]", bdb1_s_aref, -1);
@@ -1841,15 +1725,10 @@ Init_bdb1()
1841
1725
  rb_define_method(bdb1_cCommon, "empty?", bdb1_empty, 0);
1842
1726
  rb_define_method(bdb1_cCommon, "length", bdb1_length, 0);
1843
1727
  rb_define_alias(bdb1_cCommon, "size", "length");
1844
- rb_define_method(bdb1_cCommon, "index", bdb1_index, 1);
1845
- rb_define_method(bdb1_cCommon, "indexes", bdb1_indexes, -1);
1846
- rb_define_method(bdb1_cCommon, "indices", bdb1_indexes, -1);
1847
- #if HAVE_RB_ARY_SELECT
1848
- rb_define_method(bdb1_cCommon, "select", bdb1_select, -1);
1849
- #endif
1850
- #if HAVE_RB_ARY_VALUES_AT
1728
+ rb_define_method(bdb1_cCommon, "key", bdb1_key, 1);
1729
+ rb_define_method(bdb1_cCommon, "index", bdb1_key, 1);
1730
+ rb_define_method(bdb1_cCommon, "select", bdb1_select, 0);
1851
1731
  rb_define_method(bdb1_cCommon, "values_at", bdb1_values_at, -1);
1852
- #endif
1853
1732
  bdb1_cBtree = rb_define_class_under(bdb1_mDb, "Btree", bdb1_cCommon);
1854
1733
  rb_define_method(bdb1_cBtree, "duplicates", bdb1_bt_duplicates, -1);
1855
1734
  rb_define_method(bdb1_cBtree, "each_dup", bdb1_bt_dup, 1);