bonanza-ruby-opencv 0.0.13.20160519171728 → 0.0.13.20160606151615

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e7d609b9040a2e58f9f47a7cf61f96b68068c9a1
4
- data.tar.gz: ab4c125c8b62c3eeaf8b59416923cf8067a3e712
3
+ metadata.gz: 91bfc9008859d46d0479cd66dfca85f5e5ddb9f5
4
+ data.tar.gz: 70ee2ee23b9045d84afae30f5743279b132c2bdc
5
5
  SHA512:
6
- metadata.gz: 1ae802e14e96b7f72fb8f861740718af0fc663f906268d9f258ba4a570da1cebcaa2863ba7fc67c1e73ae5504b522aa10a7a1231f2cf245a39647cf2feae9fd8
7
- data.tar.gz: 7837c1b1b0b62d494fcfc5756cb77fe45deb7d69c143a812d5a3abe4f7aa80fc96973741c009337b51a1fae1ed6b86a9f1e24a91d1c9c98c49d1c9b858aa2543
6
+ metadata.gz: 3ea2b575c88cf9329f292fb616ee99b1d08de15b6dbf92a24f98744456f96ab455f5f1f712ef379f6384cf65e3abbd5d365973316ce094de75aaadd0e96b0b8f
7
+ data.tar.gz: b9b6f58531636b5dc8e89d7b75a6d1b54d26ac5a8f7af0ddeafc0a593e5c7dc011836c0b2e448a0ae86e06003bc95bc6edabcea29ecb3a24086cdbf2a8a9c1f3
@@ -62,7 +62,7 @@ rb_initialize(int argc, VALUE *argv, VALUE self)
62
62
  raise_cverror(e);
63
63
  }
64
64
  CvSeq* self_ptr = CVSEQ(self);
65
- cCvSeq::register_elem_class(self_ptr, rb_cFixnum);
65
+ cCvSeq::register_elem_class(self, rb_cFixnum);
66
66
  register_root_object(self_ptr, storage_value);
67
67
 
68
68
  return self;
@@ -65,7 +65,7 @@ rb_initialize(int argc, VALUE *argv, VALUE self)
65
65
  catch (cv::Exception& e) {
66
66
  raise_cverror(e);
67
67
  }
68
- cCvSeq::register_elem_class(CVSEQ(self), cCvPoint::rb_class());
68
+ cCvSeq::register_elem_class(self, cCvPoint::rb_class());
69
69
  register_root_object(CVSEQ(self), storage);
70
70
 
71
71
  return self;
data/ext/opencv/cvseq.cpp CHANGED
@@ -39,8 +39,6 @@ VALUE rb_allocate(VALUE klass);
39
39
  void cvseq_free(void *ptr);
40
40
 
41
41
  VALUE rb_klass;
42
- // contain sequence-block class
43
- st_table *seqblock_klass_table = st_init_numtable();
44
42
 
45
43
  VALUE
46
44
  rb_class()
@@ -49,35 +47,26 @@ rb_class()
49
47
  }
50
48
 
51
49
  VALUE
52
- seqblock_class(void *ptr)
50
+ seqblock_class(VALUE object)
53
51
  {
54
- VALUE klass;
55
- if (!st_lookup(seqblock_klass_table, (st_data_t)ptr, (st_data_t*)&klass)) {
52
+ VALUE klass = rb_iv_get(object, "@elem_class");
53
+ if (!RTEST(klass)) {
56
54
  rb_raise(rb_eTypeError, "Invalid sequence error.");
57
55
  }
58
56
  return klass;
59
57
  }
60
58
 
61
59
  void
62
- register_elem_class(CvSeq *seq, VALUE klass)
60
+ register_elem_class(VALUE object, VALUE klass)
63
61
  {
64
- st_insert(seqblock_klass_table, (st_data_t)seq, (st_data_t)klass);
65
- }
66
-
67
- void
68
- unregister_elem_class(void *ptr)
69
- {
70
- if (ptr) {
71
- st_delete(seqblock_klass_table, (st_data_t*)&ptr, NULL);
72
- unregister_object(ptr);
73
- }
62
+ rb_iv_set(object, "@elem_class", klass);
74
63
  }
75
64
 
76
65
  VALUE
77
66
  rb_allocate(VALUE klass)
78
67
  {
79
68
  CvSeq *ptr = ALLOC(CvSeq);
80
- return Data_Wrap_Struct(klass, 0, unregister_elem_class, ptr);
69
+ return Data_Wrap_Struct(klass, 0, 0, ptr);
81
70
  }
82
71
 
83
72
  /*
@@ -133,7 +122,7 @@ rb_initialize(int argc, VALUE *argv, VALUE self)
133
122
  raise_cverror(e);
134
123
  }
135
124
  DATA_PTR(self) = seq;
136
- register_elem_class(seq, klass);
125
+ register_elem_class(self, klass);
137
126
  register_root_object(seq, storage_value);
138
127
 
139
128
  return self;
@@ -181,10 +170,10 @@ rb_aref(VALUE self, VALUE index)
181
170
 
182
171
  VALUE result = Qnil;
183
172
  try {
184
- if (seqblock_class(seq) == rb_cFixnum)
173
+ if (seqblock_class(self) == rb_cFixnum)
185
174
  result = INT2NUM(*CV_GET_SEQ_ELEM(int, seq, idx));
186
175
  else
187
- result = REFER_OBJECT(seqblock_class(seq), cvGetSeqElem(seq, idx), self);
176
+ result = REFER_OBJECT(seqblock_class(self), cvGetSeqElem(seq, idx), self);
188
177
  }
189
178
  catch (cv::Exception& e) {
190
179
  raise_cverror(e);
@@ -228,7 +217,7 @@ rb_h_prev(VALUE self)
228
217
  {
229
218
  CvSeq *seq = CVSEQ(self);
230
219
  if (seq->h_prev)
231
- return new_sequence(CLASS_OF(self), seq->h_prev, seqblock_class(seq), lookup_root_object(seq));
220
+ return new_sequence(CLASS_OF(self), seq->h_prev, seqblock_class(self), lookup_root_object(seq));
232
221
  else
233
222
  return Qnil;
234
223
  }
@@ -245,7 +234,7 @@ rb_h_next(VALUE self)
245
234
  {
246
235
  CvSeq *seq = CVSEQ(self);
247
236
  if (seq->h_next)
248
- return new_sequence(CLASS_OF(self), seq->h_next, seqblock_class(seq), lookup_root_object(seq));
237
+ return new_sequence(CLASS_OF(self), seq->h_next, seqblock_class(self), lookup_root_object(seq));
249
238
  else
250
239
  return Qnil;
251
240
  }
@@ -262,7 +251,7 @@ rb_v_prev(VALUE self)
262
251
  {
263
252
  CvSeq *seq = CVSEQ(self);
264
253
  if (seq->v_prev)
265
- return new_sequence(CLASS_OF(self), seq->v_prev, seqblock_class(seq), lookup_root_object(seq));
254
+ return new_sequence(CLASS_OF(self), seq->v_prev, seqblock_class(self), lookup_root_object(seq));
266
255
  else
267
256
  return Qnil;
268
257
  }
@@ -279,7 +268,7 @@ rb_v_next(VALUE self)
279
268
  {
280
269
  CvSeq *seq = CVSEQ(self);
281
270
  if (seq->v_next)
282
- return new_sequence(CLASS_OF(self), seq->v_next, seqblock_class(seq), lookup_root_object(seq));
271
+ return new_sequence(CLASS_OF(self), seq->v_next, seqblock_class(self), lookup_root_object(seq));
283
272
  else
284
273
  return Qnil;
285
274
  }
@@ -288,7 +277,7 @@ VALUE
288
277
  rb_seq_push(VALUE self, VALUE args, int flag)
289
278
  {
290
279
  CvSeq *seq = CVSEQ(self);
291
- VALUE klass = seqblock_class(seq), object;
280
+ VALUE klass = seqblock_class(self), object;
292
281
  volatile void *elem = NULL;
293
282
  int len = RARRAY_LEN(args);
294
283
  for (int i = 0; i < len; ++i) {
@@ -361,7 +350,7 @@ rb_pop(VALUE self)
361
350
  return Qnil;
362
351
 
363
352
  VALUE object = Qnil;
364
- VALUE klass = seqblock_class(seq);
353
+ VALUE klass = seqblock_class(self);
365
354
  try {
366
355
  if (klass == rb_cFixnum) {
367
356
  int n = 0;
@@ -431,13 +420,13 @@ rb_shift(VALUE self)
431
420
 
432
421
  VALUE object = Qnil;
433
422
  try {
434
- if (seqblock_class(seq) == rb_cFixnum) {
423
+ if (seqblock_class(self) == rb_cFixnum) {
435
424
  int n = 0;
436
425
  cvSeqPopFront(seq, &n);
437
426
  object = INT2NUM(n);
438
427
  }
439
428
  else {
440
- object = GENERIC_OBJECT(seqblock_class(seq), malloc(seq->elem_size));
429
+ object = GENERIC_OBJECT(seqblock_class(self), malloc(seq->elem_size));
441
430
  cvSeqPopFront(seq, DATA_PTR(object));
442
431
  }
443
432
  }
@@ -465,7 +454,7 @@ rb_each(VALUE self)
465
454
  {
466
455
  CvSeq *seq = CVSEQ(self);
467
456
  if (seq->total > 0) {
468
- VALUE klass = seqblock_class(seq);
457
+ VALUE klass = seqblock_class(self);
469
458
  try {
470
459
  if (klass == rb_cFixnum)
471
460
  for (int i = 0; i < seq->total; ++i)
@@ -508,7 +497,7 @@ rb_insert(VALUE self, VALUE index, VALUE object)
508
497
  {
509
498
  Check_Type(index, T_FIXNUM);
510
499
  CvSeq *seq = CVSEQ(self);
511
- VALUE klass = seqblock_class(seq);
500
+ VALUE klass = seqblock_class(self);
512
501
  if (CLASS_OF(object) != klass)
513
502
  rb_raise(rb_eTypeError, "arguments should be %s.", rb_class2name(klass));
514
503
  try {
@@ -547,10 +536,11 @@ VALUE
547
536
  new_sequence(VALUE klass, CvSeq *seq, VALUE element_klass, VALUE storage)
548
537
  {
549
538
  register_root_object(seq, storage);
550
- rb_gc_mark(storage);
551
- if (!NIL_P(element_klass))
552
- register_elem_class(seq, element_klass);
553
- return Data_Wrap_Struct(klass, mark_root_object, unregister_elem_class, seq);
539
+ VALUE object = Data_Wrap_Struct(klass, mark_root_object, 0, seq);
540
+ if (!NIL_P(element_klass)) {
541
+ register_elem_class(object, element_klass);
542
+ }
543
+ return object;
554
544
  }
555
545
 
556
546
  void
data/ext/opencv/cvseq.h CHANGED
@@ -21,9 +21,8 @@ __NAMESPACE_BEGIN_CVSEQ
21
21
  VALUE rb_class();
22
22
  void init_ruby_class();
23
23
 
24
- VALUE seqblock_class(void *ptr);
25
- void register_elem_class(CvSeq *seq, VALUE klass);
26
- void unregister_elem_class(void *ptr);
24
+ VALUE seqblock_class(VALUE object);
25
+ void register_elem_class(VALUE object, VALUE klass);
27
26
 
28
27
  VALUE rb_allocate(VALUE klass);
29
28
 
data/ruby-opencv.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: ruby-opencv 0.0.13.20160519171728 ruby lib
2
+ # stub: ruby-opencv 0.0.13.20160606151615 ruby lib
3
3
  # stub: ext/opencv/extconf.rb
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "bonanza-ruby-opencv"
7
- s.version = "0.0.13.20160519171728"
7
+ s.version = "0.0.13.20160606151615"
8
8
 
9
9
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
10
10
  s.require_paths = ["lib"]
11
11
  s.authors = ["lsxi", "ser1zw", "pcting"]
12
- s.date = "2016-05-20"
12
+ s.date = "2016-06-06"
13
13
  s.description = "ruby-opencv is a wrapper of OpenCV for Ruby. It helps you to write computer vision programs (e.g. detecting faces from pictures) with Ruby."
14
14
  s.email = ["masakazu.yonekura@gmail.com", "azariahsawtikes@gmail.com", "pcting@gmail.com"]
15
15
  s.extensions = ["ext/opencv/extconf.rb"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bonanza-ruby-opencv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13.20160519171728
4
+ version: 0.0.13.20160606151615
5
5
  platform: ruby
6
6
  authors:
7
7
  - lsxi
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-05-20 00:00:00.000000000 Z
13
+ date: 2016-06-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdoc