hamlit 2.14.1-java → 2.14.2-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12e7f9d445db00655f325ed05d5be2890b7ef3eb2db14607c82d10f37921d85d
4
- data.tar.gz: aba41ac7a5d489acce14d157d0f36dd8f0308d32c22348d0ccb70bdf4c93c6aa
3
+ metadata.gz: 3dfca16d14fcb19d064d0cf1d3fbcbfbfd445b99a1fd5a9873686eae04bf6ebd
4
+ data.tar.gz: fe551e8e275516c6e11df67200de1a13ce81b7290c127b4e82171a773dbe2887
5
5
  SHA512:
6
- metadata.gz: cda20fa1c3a3f5148f88fde34009b642dfaff2f54bd938125489dc715da351baab227818e5eacaa88f4d3dc974b83ee8f28d5210e3b2edde833ff7f4ad9e47b4
7
- data.tar.gz: 5481a01d7a890d3392c50c35e24de66f324578ba2ba3588dbe33d00cddaa7a5f78fe2a6a972584a04aba8b300cdd417a9e5bacfcc2756ee9d4877356fc8037f0
6
+ metadata.gz: b50605bc8079905583874701e79a0f231392b0840236d6708ae28a156deaa0037d73a426d87f0086a54bddbf6d706e5aff1ffe5447f9b29d6b07c1bb465da601
7
+ data.tar.gz: 8c766ab1ea3dd271b9fd8c527d0ee5f2972ca7bc43b4a0bbfe9acfd10cb2b19e9d9a88f1c6a50123fcd9a77893883286a2c22c3c7c9b6145cef1d90d0fb3baa5
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. This
4
4
  project adheres to [Semantic Versioning](http://semver.org/). This change log is based upon
5
5
  [keep-a-changelog](https://github.com/olivierlacan/keep-a-changelog).
6
6
 
7
+ ## [2.14.2](https://github.com/k0kubun/hamlit/compare/v2.14.1...v2.14.2) - 2021-01-21
8
+
9
+ ### Fixed
10
+
11
+ - Prevent SEGV in a C extension after `GC.compact` [#171](https://github.com/k0kubun/hamlit/issues/171)
12
+ *Thanks to @stanhu*
13
+
7
14
  ## [2.14.1](https://github.com/k0kubun/hamlit/compare/v2.14.0...v2.14.1) - 2021-01-07
8
15
 
9
16
  ### Added
@@ -6,15 +6,9 @@
6
6
 
7
7
  VALUE mAttributeBuilder, mObjectRef;
8
8
  static ID id_flatten, id_keys, id_parse, id_prepend, id_tr, id_uniq_bang;
9
- static ID id_aria, id_data, id_equal, id_hyphen, id_space, id_underscore;
10
9
  static ID id_boolean_attributes, id_xhtml;
11
10
 
12
- static VALUE str_aria() { return rb_const_get(mAttributeBuilder, id_aria); }
13
- static VALUE str_data() { return rb_const_get(mAttributeBuilder, id_data); }
14
- static VALUE str_equal() { return rb_const_get(mAttributeBuilder, id_equal); }
15
- static VALUE str_hyphen() { return rb_const_get(mAttributeBuilder, id_hyphen); }
16
- static VALUE str_space() { return rb_const_get(mAttributeBuilder, id_space); }
17
- static VALUE str_underscore() { return rb_const_get(mAttributeBuilder, id_underscore); }
11
+ static VALUE str_aria, str_data, str_equal, str_hyphen, str_space, str_underscore;
18
12
 
19
13
  static void
20
14
  delete_falsey_values(VALUE values)
@@ -51,7 +45,7 @@ hyphenate(VALUE str)
51
45
 
52
46
  for (i = 0; i < RSTRING_LEN(str); i++) {
53
47
  if (RSTRING_PTR(str)[i] == '_') {
54
- rb_str_update(str, i, 1, str_hyphen());
48
+ rb_str_update(str, i, 1, str_hyphen);
55
49
  }
56
50
  }
57
51
  return str;
@@ -97,7 +91,7 @@ hamlit_build_id(VALUE escape_attrs, VALUE values)
97
91
  values = rb_funcall(values, id_flatten, 0);
98
92
  delete_falsey_values(values);
99
93
 
100
- attr_value = rb_ary_join(values, str_underscore());
94
+ attr_value = rb_ary_join(values, str_underscore);
101
95
  return escape_attribute(escape_attrs, attr_value);
102
96
  }
103
97
 
@@ -110,7 +104,7 @@ hamlit_build_single_class(VALUE escape_attrs, VALUE value)
110
104
  case T_ARRAY:
111
105
  value = rb_funcall(value, id_flatten, 0);
112
106
  delete_falsey_values(value);
113
- value = rb_ary_join(value, str_space());
107
+ value = rb_ary_join(value, str_space);
114
108
  break;
115
109
  default:
116
110
  if (RTEST(value)) {
@@ -154,7 +148,7 @@ hamlit_build_multi_class(VALUE escape_attrs, VALUE values)
154
148
 
155
149
  rb_funcall(buf, id_uniq_bang, 0);
156
150
 
157
- return escape_attribute(escape_attrs, rb_ary_join(buf, str_space()));
151
+ return escape_attribute(escape_attrs, rb_ary_join(buf, str_space));
158
152
  }
159
153
 
160
154
  static VALUE
@@ -285,7 +279,7 @@ hamlit_build_data(VALUE escape_attrs, VALUE quote, VALUE values, VALUE key_str)
285
279
 
286
280
  switch (value) {
287
281
  case Qtrue:
288
- rb_str_concat(buf, str_space());
282
+ rb_str_concat(buf, str_space);
289
283
  rb_str_concat(buf, key);
290
284
  break;
291
285
  case Qnil:
@@ -293,9 +287,9 @@ hamlit_build_data(VALUE escape_attrs, VALUE quote, VALUE values, VALUE key_str)
293
287
  case Qfalse:
294
288
  break; // noop
295
289
  default:
296
- rb_str_concat(buf, str_space());
290
+ rb_str_concat(buf, str_space);
297
291
  rb_str_concat(buf, key);
298
- rb_str_concat(buf, str_equal());
292
+ rb_str_concat(buf, str_equal);
299
293
  rb_str_concat(buf, quote);
300
294
  rb_str_concat(buf, escape_attribute(escape_attrs, to_s(value)));
301
295
  rb_str_concat(buf, quote);
@@ -379,13 +373,13 @@ hamlit_build_for_class(VALUE escape_attrs, VALUE quote, VALUE buf, VALUE values)
379
373
  void
380
374
  hamlit_build_for_data(VALUE escape_attrs, VALUE quote, VALUE buf, VALUE values)
381
375
  {
382
- rb_str_concat(buf, hamlit_build_data(escape_attrs, quote, values, str_data()));
376
+ rb_str_concat(buf, hamlit_build_data(escape_attrs, quote, values, str_data));
383
377
  }
384
378
 
385
379
  void
386
380
  hamlit_build_for_aria(VALUE escape_attrs, VALUE quote, VALUE buf, VALUE values)
387
381
  {
388
- rb_str_concat(buf, hamlit_build_data(escape_attrs, quote, values, str_aria()));
382
+ rb_str_concat(buf, hamlit_build_data(escape_attrs, quote, values, str_aria));
389
383
  }
390
384
 
391
385
  void
@@ -485,7 +479,7 @@ rb_hamlit_build_aria(int argc, VALUE *argv, RB_UNUSED_VAR(VALUE self))
485
479
  rb_check_arity(argc, 2, UNLIMITED_ARGUMENTS);
486
480
  rb_scan_args(argc - 2, argv + 2, "*", &array);
487
481
 
488
- return hamlit_build_data(argv[0], argv[1], array, str_aria());
482
+ return hamlit_build_data(argv[0], argv[1], array, str_aria);
489
483
  }
490
484
 
491
485
  static VALUE
@@ -496,7 +490,7 @@ rb_hamlit_build_data(int argc, VALUE *argv, RB_UNUSED_VAR(VALUE self))
496
490
  rb_check_arity(argc, 2, UNLIMITED_ARGUMENTS);
497
491
  rb_scan_args(argc - 2, argv + 2, "*", &array);
498
492
 
499
- return hamlit_build_data(argv[0], argv[1], array, str_data());
493
+ return hamlit_build_data(argv[0], argv[1], array, str_data);
500
494
  }
501
495
 
502
496
  static VALUE
@@ -534,21 +528,15 @@ Init_hamlit(void)
534
528
  id_tr = rb_intern("tr");
535
529
  id_uniq_bang = rb_intern("uniq!");
536
530
 
537
- id_aria = rb_intern("ARIA");
538
- id_data = rb_intern("DATA");
539
- id_equal = rb_intern("EQUAL");
540
- id_hyphen = rb_intern("HYPHEN");
541
- id_space = rb_intern("SPACE");
542
- id_underscore = rb_intern("UNDERSCORE");
543
-
544
531
  id_boolean_attributes = rb_intern("BOOLEAN_ATTRIBUTES");
545
532
  id_xhtml = rb_intern("xhtml");
546
533
 
547
- rb_const_set(mAttributeBuilder, id_aria, rb_obj_freeze(rb_str_new_cstr("aria")));
548
- rb_const_set(mAttributeBuilder, id_data, rb_obj_freeze(rb_str_new_cstr("data")));
549
- rb_const_set(mAttributeBuilder, id_equal, rb_obj_freeze(rb_str_new_cstr("=")));
550
- rb_const_set(mAttributeBuilder, id_hyphen, rb_obj_freeze(rb_str_new_cstr("-")));
551
- rb_const_set(mAttributeBuilder, id_space, rb_obj_freeze(rb_str_new_cstr(" ")));
552
- rb_const_set(mAttributeBuilder, id_underscore, rb_obj_freeze(rb_str_new_cstr("_")));
534
+ // Consider using rb_interned_str() once we stop supporting Ruby 2.7.
535
+ rb_gc_register_mark_object(str_aria = rb_obj_freeze(rb_str_new_cstr("aria")));
536
+ rb_gc_register_mark_object(str_data = rb_obj_freeze(rb_str_new_cstr("data")));
537
+ rb_gc_register_mark_object(str_equal = rb_obj_freeze(rb_str_new_cstr("=")));
538
+ rb_gc_register_mark_object(str_hyphen = rb_obj_freeze(rb_str_new_cstr("-")));
539
+ rb_gc_register_mark_object(str_space = rb_obj_freeze(rb_str_new_cstr(" ")));
540
+ rb_gc_register_mark_object(str_underscore = rb_obj_freeze(rb_str_new_cstr("_")));
553
541
  }
554
542
  #endif
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Hamlit
3
- VERSION = '2.14.1'
3
+ VERSION = '2.14.2'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hamlit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.14.1
4
+ version: 2.14.2
5
5
  platform: java
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-08 00:00:00.000000000 Z
11
+ date: 2021-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement