hamlit 2.14.3-java → 2.14.4-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: 11c32d81401751aafca753073b44560253e4605b7485cc625b2b8d27e7180a05
4
- data.tar.gz: 9f6bba687c6d525fd182ceef3f1e17f13ed7c066259373d51fffd6296dcda4ae
3
+ metadata.gz: 62e629fef1bc222ab631aee99292c64ab9c67d8c590991c44dfa43e673214548
4
+ data.tar.gz: f2aed6b260bec4896df12cfcea5aaa7a226efee73ea7a3df72a5018b8370f0a1
5
5
  SHA512:
6
- metadata.gz: d3b66ba289cc883be82057a9f1432e0d3fc9c1e66b8e5f26f5cf4dcf9e922af3f8eb1c61552e40d17a85e086a2542d7e1b0b7c7d5620a381c093c452f7845fc7
7
- data.tar.gz: 1a8922aee504b14aad091827f69979d32a1b9c23791a00cae4f412a154f449c423661f8b7250c44c11fa34f852288676718cc383f1f18e107e5a1a63529b9f35
6
+ metadata.gz: a6b0808eec0c088bffe3d3cb4073bdaf875544e76795084e51fad9dec48fcd672f208fb302495464e9d2b5d265f026622b14e51a7fe49fb5189a11dc4843f477
7
+ data.tar.gz: 6f0823f8141cbf3fc174c1b403d6c502c310fbe5dcaf40c421dda79424eb060532a194b41adbb021e9910d7f7a9b50dcd9acbcf8ed29e2162129e2fd8cbcea67
data/CHANGELOG.md CHANGED
@@ -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.4](https://github.com/k0kubun/hamlit/compare/v2.14.3...v2.14.4) - 2021-02-01
8
+
9
+ ### Fixed
10
+
11
+ - Prevent another SEGV in a C extension after `GC.compact` [#177](https://github.com/k0kubun/hamlit/issues/177)
12
+ *Thanks to @stanhu*
13
+
7
14
  ## [2.14.3](https://github.com/k0kubun/hamlit/compare/v2.14.2...v2.14.3) - 2021-01-24
8
15
 
9
16
  ### Fixed
data/ext/hamlit/hamlit.c CHANGED
@@ -6,7 +6,7 @@
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_boolean_attributes, id_xhtml;
9
+ static ID id_xhtml;
10
10
 
11
11
  static VALUE str_aria, str_data, str_equal, str_hyphen, str_space, str_underscore;
12
12
 
@@ -342,13 +342,10 @@ merge_all_attrs(VALUE hashes)
342
342
  }
343
343
 
344
344
  int
345
- is_boolean_attribute(VALUE key)
345
+ is_boolean_attribute(VALUE key, VALUE boolean_attributes)
346
346
  {
347
- VALUE boolean_attributes;
348
347
  if (str_eq(rb_str_substr(key, 0, 5), "data-", 5)) return 1;
349
348
  if (str_eq(rb_str_substr(key, 0, 5), "aria-", 5)) return 1;
350
-
351
- boolean_attributes = rb_const_get(mAttributeBuilder, id_boolean_attributes);
352
349
  return RTEST(rb_ary_includes(boolean_attributes, key));
353
350
  }
354
351
 
@@ -418,7 +415,7 @@ hamlit_build_for_boolean(VALUE escape_attrs, VALUE quote, VALUE format, VALUE bu
418
415
  }
419
416
 
420
417
  static VALUE
421
- hamlit_build(VALUE escape_attrs, VALUE quote, VALUE format, VALUE object_ref, VALUE hashes)
418
+ hamlit_build(VALUE escape_attrs, VALUE quote, VALUE format, VALUE boolean_attributes, VALUE object_ref, VALUE hashes)
422
419
  {
423
420
  long i;
424
421
  VALUE attrs, buf, key, keys, value;
@@ -439,7 +436,7 @@ hamlit_build(VALUE escape_attrs, VALUE quote, VALUE format, VALUE object_ref, VA
439
436
  hamlit_build_for_data(escape_attrs, quote, buf, value);
440
437
  } else if (str_eq(key, "aria", 4)) {
441
438
  hamlit_build_for_aria(escape_attrs, quote, buf, value);
442
- } else if (is_boolean_attribute(key)) {
439
+ } else if (is_boolean_attribute(key, boolean_attributes)) {
443
440
  hamlit_build_for_boolean(escape_attrs, quote, format, buf, key, value);
444
441
  } else {
445
442
  hamlit_build_for_others(escape_attrs, quote, buf, key, value);
@@ -498,10 +495,10 @@ rb_hamlit_build(int argc, VALUE *argv, RB_UNUSED_VAR(VALUE self))
498
495
  {
499
496
  VALUE array;
500
497
 
501
- rb_check_arity(argc, 4, UNLIMITED_ARGUMENTS);
502
- rb_scan_args(argc - 4, argv + 4, "*", &array);
498
+ rb_check_arity(argc, 5, UNLIMITED_ARGUMENTS);
499
+ rb_scan_args(argc - 5, argv + 5, "*", &array);
503
500
 
504
- return hamlit_build(argv[0], argv[1], argv[2], argv[3], array);
501
+ return hamlit_build(argv[0], argv[1], argv[2], argv[3], argv[4], array);
505
502
  }
506
503
 
507
504
  void
@@ -527,9 +524,7 @@ Init_hamlit(void)
527
524
  id_prepend = rb_intern("prepend");
528
525
  id_tr = rb_intern("tr");
529
526
  id_uniq_bang = rb_intern("uniq!");
530
-
531
- id_boolean_attributes = rb_intern("BOOLEAN_ATTRIBUTES");
532
- id_xhtml = rb_intern("xhtml");
527
+ id_xhtml = rb_intern("xhtml");
533
528
 
534
529
  // Consider using rb_interned_str() once we stop supporting Ruby 2.7.
535
530
  rb_gc_register_mark_object(str_aria = rb_obj_freeze(rb_str_new_cstr("aria")));
@@ -13,7 +13,7 @@ module Hamlit::AttributeBuilder
13
13
  # TruffleRuby does not implement `rb_ary_sort_bang`, etc.
14
14
  if /java/ === RUBY_PLATFORM || RUBY_ENGINE == 'truffleruby'
15
15
  class << self
16
- def build(escape_attrs, quote, format, object_ref, *hashes)
16
+ def build(escape_attrs, quote, format, boolean_attributes, object_ref, *hashes)
17
17
  hashes << Hamlit::ObjectRef.parse(object_ref) if object_ref
18
18
  buf = []
19
19
  hash = merge_all_attrs(hashes)
@@ -27,7 +27,7 @@ module Hamlit::AttributeBuilder
27
27
  buf << " class=#{quote}#{build_class(escape_attrs, *hash[key])}#{quote}"
28
28
  when 'data'.freeze
29
29
  buf << build_data(escape_attrs, quote, *hash[key])
30
- when *BOOLEAN_ATTRIBUTES, /\Adata-/
30
+ when *boolean_attributes, /\Adata-/
31
31
  build_boolean!(escape_attrs, quote, format, buf, key, hash[key])
32
32
  else
33
33
  buf << " #{key}=#{quote}#{escape_html(escape_attrs, hash[key].to_s)}#{quote}"
@@ -31,7 +31,10 @@ module Hamlit
31
31
  attrs = []
32
32
  attrs.unshift(node.value[:attributes].inspect) if node.value[:attributes] != {}
33
33
 
34
- args = [@escape_attrs.inspect, "#{@quote.inspect}.freeze", @format.inspect].push(node.value[:object_ref]) + attrs
34
+ args = [
35
+ @escape_attrs.inspect, "#{@quote.inspect}.freeze", @format.inspect,
36
+ '::Hamlit::AttributeBuilder::BOOLEAN_ATTRIBUTES', node.value[:object_ref],
37
+ ] + attrs
35
38
  [:html, :attrs, [:dynamic, "::Hamlit::AttributeBuilder.build(#{args.join(', ')}, #{node.value[:dynamic_attributes].to_literal})"]]
36
39
  end
37
40
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Hamlit
3
- VERSION = '2.14.3'
3
+ VERSION = '2.14.4'
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.3
4
+ version: 2.14.4
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-24 00:00:00.000000000 Z
11
+ date: 2021-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: 0.8.2
19
19
  name: temple
20
- type: :runtime
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
@@ -31,8 +31,8 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: '0'
33
33
  name: thor
34
- type: :runtime
35
34
  prerelease: false
35
+ type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
@@ -45,8 +45,8 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  name: tilt
48
- type: :runtime
49
48
  prerelease: false
49
+ type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
@@ -59,8 +59,8 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  name: benchmark_driver
62
- type: :development
63
62
  prerelease: false
63
+ type: :development
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
@@ -73,8 +73,8 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  name: bundler
76
- type: :development
77
76
  prerelease: false
77
+ type: :development
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
@@ -87,8 +87,8 @@ dependencies:
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  name: coffee-script
90
- type: :development
91
90
  prerelease: false
91
+ type: :development
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
@@ -101,8 +101,8 @@ dependencies:
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  name: erubi
104
- type: :development
105
104
  prerelease: false
105
+ type: :development
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
@@ -115,8 +115,8 @@ dependencies:
115
115
  - !ruby/object:Gem::Version
116
116
  version: '5'
117
117
  name: haml
118
- type: :development
119
118
  prerelease: false
119
+ type: :development
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
@@ -129,8 +129,8 @@ dependencies:
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  name: less
132
- type: :development
133
132
  prerelease: false
133
+ type: :development
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ">="
@@ -143,8 +143,8 @@ dependencies:
143
143
  - !ruby/object:Gem::Version
144
144
  version: '1.1'
145
145
  name: minitest-reporters
146
- type: :development
147
146
  prerelease: false
147
+ type: :development
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
@@ -157,8 +157,8 @@ dependencies:
157
157
  - !ruby/object:Gem::Version
158
158
  version: '4.0'
159
159
  name: rails
160
- type: :development
161
160
  prerelease: false
161
+ type: :development
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - ">="
@@ -171,8 +171,8 @@ dependencies:
171
171
  - !ruby/object:Gem::Version
172
172
  version: '0'
173
173
  name: rake
174
- type: :development
175
174
  prerelease: false
175
+ type: :development
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - ">="
@@ -185,8 +185,8 @@ dependencies:
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  name: rake-compiler
188
- type: :development
189
188
  prerelease: false
189
+ type: :development
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ">="
@@ -199,8 +199,8 @@ dependencies:
199
199
  - !ruby/object:Gem::Version
200
200
  version: '0'
201
201
  name: sass
202
- type: :development
203
202
  prerelease: false
203
+ type: :development
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - ">="
@@ -213,8 +213,8 @@ dependencies:
213
213
  - !ruby/object:Gem::Version
214
214
  version: '0'
215
215
  name: slim
216
- type: :development
217
216
  prerelease: false
217
+ type: :development
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - ">="
@@ -227,8 +227,8 @@ dependencies:
227
227
  - !ruby/object:Gem::Version
228
228
  version: '0'
229
229
  name: string_template
230
- type: :development
231
230
  prerelease: false
231
+ type: :development
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - ">="
@@ -241,8 +241,8 @@ dependencies:
241
241
  - !ruby/object:Gem::Version
242
242
  version: '0'
243
243
  name: unindent
244
- type: :development
245
244
  prerelease: false
245
+ type: :development
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - ">="
@@ -390,7 +390,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
390
  - !ruby/object:Gem::Version
391
391
  version: '0'
392
392
  requirements: []
393
- rubygems_version: 3.0.6
393
+ rubyforge_project:
394
+ rubygems_version: 2.7.9
394
395
  signing_key:
395
396
  specification_version: 4
396
397
  summary: High Performance Haml Implementation