WPBDC 2013.1.9 → 2013.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +8 -8
  2. data/ext/WPBDC/WPBDC.c +18 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTg2NTEzZTcyYzE0MDM2YzIyMmVmMzE5NzU2Y2Q0N2MyZWQwOTQxNw==
4
+ ZTgzMjhkMjY0YzBmMmJmOTc5MWRjYzI3NWI4YTM0ZTM1NDJjNWU0ZA==
5
5
  data.tar.gz: !binary |-
6
- M2JhN2RkMmQwYmUxY2MyZmFlNmEyNGYzNGRjNGYzNDIwN2EwZjMxZA==
6
+ YTk2YjU5MDlkOGQ4N2FhZThhOWYwYzA3MTY0NWU4ZjFmZGQ0YzFkZQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZTU2YTQ0OTIxODgwYzJhM2JiNDlhZmU4OTZkMGI0YWJhMTRmZTRkOWMzYmQ0
10
- ODE5YTY3MTc0ZDFiOTVkMGE1ZjcwOWYzNWZlM2FkZTMwZTM2ZjZhNWMwZDY5
11
- MTg2NjVkMzQ1OTRkZDgwYjg4MGFmM2M1ZjZlNmIzODJjOWM2ZGU=
9
+ MzJkMjI5ODZjOWJjOTk1MTM3OTY1MDdkMTU4OTgxNDgwNDBkMmEwMjc0MTU5
10
+ NmMxZmE1YTk1MDU4YjNiMzAxYWJjYmQ1OTg1Zjg0OTNkMjA2ZjBkNjg3NTM0
11
+ NzEzY2JiYjQwZTEzMmYwZGM1N2I1ODUzZDE4ODc2MjAwNmY3ZmI=
12
12
  data.tar.gz: !binary |-
13
- ZDVlYjViYWM2MTgwODZhMWRkYzlmZTEyM2IxYzdlYTJjNGJhYzA5MWI1NmY3
14
- NjEzODgzMDhjYWZjZTRlNjQ0NzBiYTkxMTQxYTg0NzJkNTFlMzQ3YmQ0MzBk
15
- OWM0OTQ0MzdjM2ViOWZhZWNjMzA2OTYwMWYxOTVjYWE1NWU4ZjE=
13
+ ZjQ1OGNmYzU1ZjgyZmIwOWRkZjFlODNhNjM0NDRiMTFiOGE5YmVlMWU4MTBi
14
+ MzRjMzRhYTI3YTc3NWE4MjZjYzJkOTBiODNmMGI0YjE2NjlmOTNiNjgzNWYx
15
+ NjAwYmJmZmU4ZWMzN2M4NmFhYWE3NzM0ZDZhMDRiMjE4NzVkMjE=
data/ext/WPBDC/WPBDC.c CHANGED
@@ -6,6 +6,7 @@
6
6
  static VALUE rb_api_endecrypt(VALUE self, VALUE bridge_as_string)
7
7
  #define ARGC_endecrypt 1
8
8
  {
9
+ Check_Type(bridge_as_string, T_STRING);
9
10
  INIT_STRING_FROM_VALUE(bridge_internal_string, bridge_as_string);
10
11
  endecrypt(bridge_internal_string);
11
12
  return bridge_as_string;
@@ -49,6 +50,7 @@ static void add_analysis_to_hash(VALUE hash, struct analysis_result_t *result)
49
50
  static VALUE rb_api_analyze(VALUE self, VALUE bridge_as_string)
50
51
  #define ARGC_analyze 1
51
52
  {
53
+ Check_Type(bridge_as_string, T_STRING);
52
54
  INIT_STRING_FROM_VALUE(bridge_internal_string, bridge_as_string);
53
55
  struct analysis_result_t result[1];
54
56
  VALUE hash = rb_hash_new();
@@ -60,6 +62,8 @@ static VALUE rb_api_analyze(VALUE self, VALUE bridge_as_string)
60
62
  static VALUE rb_api_are_same(VALUE self, VALUE bridge_as_string_a, VALUE bridge_as_string_b)
61
63
  #define ARGC_are_same 2
62
64
  {
65
+ Check_Type(bridge_as_string_a, T_STRING);
66
+ Check_Type(bridge_as_string_b, T_STRING);
63
67
  INIT_STRING_FROM_VALUE(bridge_internal_string_a, bridge_as_string_a);
64
68
  INIT_STRING_FROM_VALUE(bridge_internal_string_b, bridge_as_string_b);
65
69
  int cmp = compare(bridge_internal_string_a, bridge_internal_string_b);
@@ -79,6 +83,8 @@ static VALUE c_str_to_value(char *s)
79
83
  static VALUE rb_api_variant(VALUE self, VALUE bridge_as_string, VALUE seed)
80
84
  #define ARGC_variant 2
81
85
  {
86
+ Check_Type(bridge_as_string, T_STRING);
87
+ Check_Type(seed, T_FIXNUM);
82
88
  INIT_STRING_FROM_VALUE(bridge_internal_string, bridge_as_string);
83
89
  char *result = variant(bridge_internal_string, FIX2INT(seed));
84
90
  return c_str_to_value(result);
@@ -87,6 +93,8 @@ static VALUE rb_api_variant(VALUE self, VALUE bridge_as_string, VALUE seed)
87
93
  static VALUE rb_api_failed_variant(VALUE self, VALUE bridge_as_string, VALUE seed)
88
94
  #define ARGC_failed_variant 2
89
95
  {
96
+ Check_Type(bridge_as_string, T_STRING);
97
+ Check_Type(seed, T_FIXNUM);
90
98
  INIT_STRING_FROM_VALUE(bridge_internal_string, bridge_as_string);
91
99
  char *result = failed_variant(bridge_internal_string, FIX2INT(seed));
92
100
  return c_str_to_value(result);
@@ -95,6 +103,10 @@ static VALUE rb_api_failed_variant(VALUE self, VALUE bridge_as_string, VALUE see
95
103
  static VALUE rb_api_perturbation(VALUE self, VALUE bridge_as_string, VALUE seed, VALUE n_joints, VALUE n_members)
96
104
  #define ARGC_perturbation 4
97
105
  {
106
+ Check_Type(bridge_as_string, T_STRING);
107
+ Check_Type(seed, T_FIXNUM);
108
+ Check_Type(n_joints, T_FIXNUM);
109
+ Check_Type(n_members, T_FIXNUM);
98
110
  INIT_STRING_FROM_VALUE(bridge_internal_string, bridge_as_string);
99
111
  char *result = perturbation(bridge_internal_string, FIX2INT(seed), FIX2INT(n_joints), FIX2INT(n_members));
100
112
  return c_str_to_value(result);
@@ -103,11 +115,13 @@ static VALUE rb_api_perturbation(VALUE self, VALUE bridge_as_string, VALUE seed,
103
115
  static VALUE rb_api_sketch(VALUE self, VALUE bridge_as_string, VALUE width, VALUE height)
104
116
  #define ARGC_sketch 3
105
117
  {
118
+ Check_Type(bridge_as_string, T_STRING);
119
+ Check_Type(width, T_FIXNUM);
120
+ Check_Type(height, T_FIXNUM);
106
121
  INIT_STRING_FROM_VALUE(bridge_internal_string, bridge_as_string);
107
122
  COMPRESSED_IMAGE compressed_image[1];
108
123
  struct analysis_result_t result[1];
109
124
  VALUE hash = rb_hash_new();
110
-
111
125
  init_compressed_image(compressed_image);
112
126
  sketch(bridge_internal_string, FIX2INT(width), FIX2INT(height), compressed_image, result);
113
127
 
@@ -134,6 +148,7 @@ static VALUE rb_api_sketch(VALUE self, VALUE bridge_as_string, VALUE width, VALU
134
148
  static VALUE rb_api_analysis_table(VALUE self, VALUE bridge_as_string)
135
149
  #define ARGC_analysis_table 1
136
150
  {
151
+ Check_Type(bridge_as_string, T_STRING);
137
152
  INIT_STRING_FROM_VALUE(bridge_internal_string, bridge_as_string);
138
153
  char *result = analysis_table(bridge_internal_string);
139
154
  return c_str_to_value(result);
@@ -142,8 +157,9 @@ static VALUE rb_api_analysis_table(VALUE self, VALUE bridge_as_string)
142
157
  static VALUE rb_api_local_contest_number_to_id(VALUE self, VALUE number_as_string)
143
158
  #define ARGC_local_contest_number_to_id 1
144
159
  {
160
+ Check_Type(number_as_string, T_STRING);
145
161
  INIT_STRING_FROM_VALUE(number_internal_string, number_as_string);
146
- char * result = get_local_contest_number(number_internal_string);
162
+ char *result = get_local_contest_number(number_internal_string);
147
163
  // Don't use c_str_to_value here because result is static.
148
164
  return result ? rb_str_new2(result) : Qnil;
149
165
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: WPBDC
3
3
  version: !ruby/object:Gem::Version
4
- version: 2013.1.9
4
+ version: 2013.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gene Ressler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-12 00:00:00.000000000 Z
11
+ date: 2013-07-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Container for C code extension that implements the West Point Bridge
14
14
  Contest Judge.