usamin 7.7.4 → 7.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a07195ec7a8e453e36f3620e2e4d73c7fd06cb9253dd05357f41b5719f0b6a21
4
- data.tar.gz: 1a37b8c34d7babaacbe20707c819e992f7641b54c445952e8fce96f2dd59690f
3
+ metadata.gz: 2dc9e7a6a2f8cf8fd04b8bd8063f014dd6b78a04b6727a0d1a60fec9f5dc3bc6
4
+ data.tar.gz: 8fb71ac883d87559cb9a2d4c993925cf3cff431904e141bf82a652a6f57385c5
5
5
  SHA512:
6
- metadata.gz: e35c13d1afc08e814f2bcb6f4f93ca03d2d54b7af6a919ddaa531e15b46efcdb47b822a355273395c563fd20a58c24711ec68e4ba0641206d0f5a567e777cec9
7
- data.tar.gz: e95b3a78bba63f2a362378c85592f42148e5c220cc632ffb37d00c8d3a03e3eaf91d5617ee3fd492bfe109b8eeb2056733ac5b0433a6a4ced34b7f11c2925e96
6
+ metadata.gz: 56d2aa592fc15f8647859d793d025e1a78af802ffc868073997d533b1e62c5563e5d3ec26a0fc5b795fc6c34454e36c4a625cf9f524e51744e9bccba567f6fee
7
+ data.tar.gz: fcfdd4ec9ebf5437a16aa1584a1450b218040072961d7cd8e4aff0a3d1a1a2f89996665b01fb1b9861c193fb9fa9f3f2b56af139168e5eb9fd90d61f9daae355
@@ -35,7 +35,7 @@ static inline VALUE get_utf8_str(VALUE str) {
35
35
  Check_Type(str, T_STRING);
36
36
  int encoding = rb_enc_get_index(str);
37
37
  if (encoding == utf8index || rb_enc_compatible(str, utf8value) == utf8)
38
- return rb_str_dup(str);
38
+ return str;
39
39
  else
40
40
  return rb_str_conv_enc(str, rb_enc_from_index(encoding), utf8);
41
41
  }
@@ -52,18 +52,16 @@ static inline bool str_compare(const char* str1, const long len1, const char* st
52
52
  return memcmp(str1, str2, len1) == 0;
53
53
  }
54
54
 
55
- static inline bool str_compare_xx(VALUE &str1, const rapidjson::Value &str2) {
55
+ static inline bool str_compare_xx(VALUE str1, const rapidjson::Value &str2) {
56
56
  bool free_flag = true;
57
57
  if (RB_TYPE_P(str1, T_STRING)) {
58
- int encoding = rb_enc_get_index(str1);
59
- if (encoding == utf8index || rb_enc_compatible(str1, utf8value) == utf8)
60
- free_flag = false;
61
- else
62
- str1 = rb_str_conv_enc(str1, rb_enc_from_index(encoding), utf8);
58
+ str1 = get_utf8_str(str1);
59
+ free_flag = false;
63
60
  } else if (SYMBOL_P(str1)) {
64
- str1 = rb_sym_to_s(str1);
61
+ str1 = get_utf8_str(rb_sym_to_s(str1));
65
62
  } else {
66
63
  StringValue(str1);
64
+ str1 = get_utf8_str(str1);
67
65
  }
68
66
  bool ret = str_compare(RSTRING_PTR(str1), RSTRING_LEN(str1), str2.GetString(), str2.GetStringLength());
69
67
  if (free_flag)
@@ -129,9 +127,7 @@ static inline VALUE make_array(UsaminValue *value) {
129
127
 
130
128
  static inline rapidjson::ParseResult parse(rapidjson::Document &doc, const VALUE str, bool fast = false) {
131
129
  VALUE v = get_utf8_str(str);
132
- rapidjson::ParseResult ret = fast ? doc.Parse<kParseFastFlags>(RSTRING_PTR(v), RSTRING_LEN(v)) : doc.Parse(RSTRING_PTR(v), RSTRING_LEN(v));
133
- rb_str_free(v);
134
- return ret;
130
+ return fast ? doc.Parse<kParseFastFlags>(RSTRING_PTR(v), RSTRING_LEN(v)) : doc.Parse(RSTRING_PTR(v), RSTRING_LEN(v));
135
131
  }
136
132
 
137
133
 
@@ -275,7 +271,6 @@ template <class Writer> static void write(Writer &writer, const VALUE value) {
275
271
  {
276
272
  VALUE v = rb_big2str(value, 10);
277
273
  writer.RawValue(RSTRING_PTR(v), static_cast<unsigned int>(RSTRING_LEN(v)), rapidjson::kNumberType);
278
- rb_str_free(v);
279
274
  }
280
275
  break;
281
276
  default:
@@ -290,13 +285,11 @@ template <class Writer> static void write(Writer &writer, const VALUE value) {
290
285
  template <class Writer> static inline void write_str(Writer &writer, const VALUE value) {
291
286
  VALUE v = get_utf8_str(value);
292
287
  writer.String(RSTRING_PTR(v), static_cast<unsigned int>(RSTRING_LEN(v)));
293
- rb_str_free(v);
294
288
  }
295
289
 
296
290
  template <class Writer> static inline void write_key_str(Writer &writer, const VALUE value) {
297
291
  VALUE v = get_utf8_str(value);
298
292
  writer.Key(RSTRING_PTR(v), static_cast<unsigned int>(RSTRING_LEN(v)));
299
- rb_str_free(v);
300
293
  }
301
294
 
302
295
  template <class Writer> static inline void write_key_to_s(Writer &writer, const VALUE value) {
@@ -1,3 +1,3 @@
1
1
  module Usamin
2
- VERSION = "7.7.4"
2
+ VERSION = "7.7.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usamin
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.7.4
4
+ version: 7.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ishotihadus
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-03 00:00:00.000000000 Z
11
+ date: 2018-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler