hamlit 2.14.3-java → 2.14.4-java

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: 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