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 +4 -4
- data/ext/opencv/cvchain.cpp +1 -1
- data/ext/opencv/cvcontour.cpp +1 -1
- data/ext/opencv/cvseq.cpp +24 -34
- data/ext/opencv/cvseq.h +2 -3
- data/ruby-opencv.gemspec +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91bfc9008859d46d0479cd66dfca85f5e5ddb9f5
|
4
|
+
data.tar.gz: 70ee2ee23b9045d84afae30f5743279b132c2bdc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ea2b575c88cf9329f292fb616ee99b1d08de15b6dbf92a24f98744456f96ab455f5f1f712ef379f6384cf65e3abbd5d365973316ce094de75aaadd0e96b0b8f
|
7
|
+
data.tar.gz: b9b6f58531636b5dc8e89d7b75a6d1b54d26ac5a8f7af0ddeafc0a593e5c7dc011836c0b2e448a0ae86e06003bc95bc6edabcea29ecb3a24086cdbf2a8a9c1f3
|
data/ext/opencv/cvchain.cpp
CHANGED
@@ -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(
|
65
|
+
cCvSeq::register_elem_class(self, rb_cFixnum);
|
66
66
|
register_root_object(self_ptr, storage_value);
|
67
67
|
|
68
68
|
return self;
|
data/ext/opencv/cvcontour.cpp
CHANGED
@@ -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(
|
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(
|
50
|
+
seqblock_class(VALUE object)
|
53
51
|
{
|
54
|
-
VALUE klass;
|
55
|
-
if (!
|
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(
|
60
|
+
register_elem_class(VALUE object, VALUE klass)
|
63
61
|
{
|
64
|
-
|
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,
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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
|
-
|
551
|
-
if (!NIL_P(element_klass))
|
552
|
-
register_elem_class(
|
553
|
-
|
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(
|
25
|
-
void register_elem_class(
|
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.
|
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.
|
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-
|
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.
|
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-
|
13
|
+
date: 2016-06-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdoc
|