herb 0.8.1-x86-linux-musl → 0.8.2-x86-linux-musl

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: 05c3b4cba4c868a1d163860b89ec9682324a69191801b7f590b2d9529de8f837
4
- data.tar.gz: 57970f4209e30a98a2b6415ab0edd16a8ebfdfab6f144eea00d15a4380027fb1
3
+ metadata.gz: 7286d6f5e1439091d9f50b4677f2ff26eaaaaf5aa039a3fa8a34662ae90d2e0d
4
+ data.tar.gz: 8eab43ccc1ae75be673015f55b4d5a7d7ec9cddb56f142994e32438fe07ae974
5
5
  SHA512:
6
- metadata.gz: 0c8fe6e7a18cf3b3360c64f85122b8cd26beed4988feb2f6118b6c092215ee86e92c3b7d38600c73853bc810daeadbf9fe591fc4bcd25b54940973f243b2dbdd
7
- data.tar.gz: 2d4aaf3bbb4547176cad361c54414374f0a1605469dda19984e116ae2f906a367054d416c92f71fe20559e9f98fe4a889f35d63c6b28f491bfac604ba0c40b81
6
+ metadata.gz: a6186ef408c0faaf18730df25b87c09aad812c30bf2247ff14f473ab880891e3319051c886d387d8eea228d8e86ac9b7790b37530dfec9d7fc9de8380d050d50
7
+ data.tar.gz: d7520917bf59f99a1ac0420dffae564fd69647319074c2ed3406c363f65c6a03331d8e2d0dbdbdfbb00555866dc791a8d07399bb5253cecbaab3ca80452dfa5c
data/README.md CHANGED
@@ -10,8 +10,13 @@
10
10
 
11
11
  <p align="center">
12
12
  <a href="https://rubygems.org/gems/herb"><img alt="Gem Version" src="https://img.shields.io/gem/v/herb"></a>
13
+ <a href="https://crates.io/crates/herb"><img alt="Crates.io Version" src="https://img.shields.io/crates/v/herb"></a>
14
+ <a href="https://www.npmjs.com/package/@herb-tools/core"><img alt="npm Version" src="https://img.shields.io/npm/v/@herb-tools/core"></a>
15
+ <a href="https://marketplace.visualstudio.com/items?itemName=marcoroth.herb-lsp"><img alt="VS Code Marketplace" src="https://img.shields.io/visual-studio-marketplace/v/marcoroth.herb-lsp"></a>
16
+ <a href="https://open-vsx.org/extension/marcoroth/herb-lsp"><img alt="Open VSX" src="https://img.shields.io/open-vsx/v/marcoroth/herb-lsp"></a>
13
17
  <a href="https://herb-tools.dev"><img alt="Documentation" src="https://img.shields.io/badge/documentation-available-green"></a>
14
18
  <a href="https://herb-tools.dev/playground"><img alt="playground" src="https://img.shields.io/badge/playground-Try_it_in_the_browser!-green"></a>
19
+ <a href="https://pkg.pr.new/~/marcoroth/herb"><img alt="pkg.pr.new" src="https://pkg.pr.new/badge/marcoroth/herb"></a>
15
20
  <a href="https://github.com/marcoroth/herb/blob/main/LICENSE.txt"><img alt="License" src="https://img.shields.io/github/license/marcoroth/herb"></a>
16
21
  <a href="https://github.com/marcoroth/herb/issues"><img alt="Issues" src="https://img.shields.io/github/issues/marcoroth/herb"></a>
17
22
  </p>
@@ -99,7 +104,7 @@ Commands:
99
104
  bundle exec herb version Prints the versions of the Herb gem and the libherb library.
100
105
  ```
101
106
 
102
- For detailed information, like how you can use Herb programatically in Ruby and JavaScript, visit the [documentation site](https://herb-tools.dev/bindings/ruby/reference).
107
+ For detailed information, like how you can use Herb programmatically in Ruby and JavaScript, visit the [documentation site](https://herb-tools.dev/bindings/ruby/reference).
103
108
 
104
109
 
105
110
  ## Background and Talk
data/ext/herb/nodes.c CHANGED
@@ -464,7 +464,7 @@ static VALUE rb_erb_content_node_from_c_struct(AST_ERB_CONTENT_NODE_T* erb_conte
464
464
  VALUE erb_content_node_tag_opening = rb_token_from_c_struct(erb_content_node->tag_opening);
465
465
  VALUE erb_content_node_content = rb_token_from_c_struct(erb_content_node->content);
466
466
  VALUE erb_content_node_tag_closing = rb_token_from_c_struct(erb_content_node->tag_closing);
467
- /* #<Herb::Template::AnalyzedRubyField:0x00007fe440e010b0 @name="analyzed_ruby", @options={kind: nil}> */
467
+ /* #<Herb::Template::AnalyzedRubyField:0x00007f06675b0f08 @name="analyzed_ruby", @options={kind: nil}> */
468
468
  VALUE erb_content_node_analyzed_ruby = Qnil;
469
469
  VALUE erb_content_node_parsed = (erb_content_node->parsed) ? Qtrue : Qfalse;
470
470
  VALUE erb_content_node_valid = (erb_content_node->valid) ? Qtrue : Qfalse;
data/lib/herb/3.0/herb.so CHANGED
Binary file
data/lib/herb/3.1/herb.so CHANGED
Binary file
data/lib/herb/3.2/herb.so CHANGED
Binary file
data/lib/herb/3.3/herb.so CHANGED
Binary file
data/lib/herb/3.4/herb.so CHANGED
Binary file
data/lib/herb/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # typed: true
3
3
 
4
4
  module Herb
5
- VERSION = "0.8.1"
5
+ VERSION = "0.8.2"
6
6
  end
data/src/analyze.c CHANGED
@@ -288,7 +288,7 @@ static AST_NODE_T* create_control_node(
288
288
  if (end_node) {
289
289
  end_position = end_node->base.location.end;
290
290
  } else if (children && hb_array_size(children) > 0) {
291
- AST_NODE_T* last_child = hb_array_get(children, hb_array_size(children) - 1);
291
+ AST_NODE_T* last_child = hb_array_last(children);
292
292
  end_position = last_child->location.end;
293
293
  } else if (subsequent) {
294
294
  end_position = subsequent->location.end;
@@ -695,10 +695,10 @@ static size_t process_control_structure(
695
695
  } else if (else_clause) {
696
696
  end_position = else_clause->base.location.end;
697
697
  } else if (hb_array_size(when_conditions) > 0) {
698
- AST_NODE_T* last_when = hb_array_get(when_conditions, hb_array_size(when_conditions) - 1);
698
+ AST_NODE_T* last_when = hb_array_last(when_conditions);
699
699
  end_position = last_when->location.end;
700
700
  } else if (hb_array_size(in_conditions) > 0) {
701
- AST_NODE_T* last_in = hb_array_get(in_conditions, hb_array_size(in_conditions) - 1);
701
+ AST_NODE_T* last_in = hb_array_last(in_conditions);
702
702
  end_position = last_in->location.end;
703
703
  }
704
704
 
@@ -955,7 +955,7 @@ static size_t process_control_structure(
955
955
  if (end_node) {
956
956
  end_position = end_node->base.location.end;
957
957
  } else if (children && hb_array_size(children) > 0) {
958
- AST_NODE_T* last_child = hb_array_get(children, hb_array_size(children) - 1);
958
+ AST_NODE_T* last_child = hb_array_last(children);
959
959
  end_position = last_child->location.end;
960
960
  }
961
961
 
@@ -1139,7 +1139,7 @@ static size_t process_block_children(
1139
1139
  hb_array_T* temp_array = hb_array_init(1);
1140
1140
  size_t new_index = process_control_structure(node, array, index, temp_array, context, child_type);
1141
1141
 
1142
- if (hb_array_size(temp_array) > 0) { hb_array_append(children_array, hb_array_get(temp_array, 0)); }
1142
+ if (hb_array_size(temp_array) > 0) { hb_array_append(children_array, hb_array_first(temp_array)); }
1143
1143
 
1144
1144
  hb_array_free(&temp_array);
1145
1145
 
@@ -1,18 +1,21 @@
1
1
  #ifndef HERB_BUFFER_H
2
2
  #define HERB_BUFFER_H
3
3
 
4
+ #include "hb_arena.h"
4
5
  #include "hb_string.h"
5
6
 
6
7
  #include <stdbool.h>
7
8
  #include <stdlib.h>
8
9
 
9
10
  typedef struct HB_BUFFER_STRUCT {
11
+ hb_arena_T* allocator;
10
12
  char* value;
11
13
  size_t length;
12
14
  size_t capacity;
13
15
  } hb_buffer_T;
14
16
 
15
17
  bool hb_buffer_init(hb_buffer_T* buffer, size_t capacity);
18
+ bool hb_buffer_init_arena(hb_buffer_T* buffer, hb_arena_T* allocator, size_t capacity);
16
19
 
17
20
  void hb_buffer_append(hb_buffer_T* buffer, const char* text);
18
21
  void hb_buffer_append_with_length(hb_buffer_T* buffer, const char* text, size_t length);
@@ -1,6 +1,6 @@
1
1
  #ifndef HERB_VERSION_H
2
2
  #define HERB_VERSION_H
3
3
 
4
- #define HERB_VERSION "0.8.1"
4
+ #define HERB_VERSION "0.8.2"
5
5
 
6
6
  #endif
data/src/parser.c CHANGED
@@ -315,8 +315,8 @@ static AST_HTML_ATTRIBUTE_NAME_NODE_T* parser_parse_html_attribute_name(parser_T
315
315
  position_T node_end = { 0 };
316
316
 
317
317
  if (children->size > 0) {
318
- AST_NODE_T* first_child = hb_array_get(children, 0);
319
- AST_NODE_T* last_child = hb_array_get(children, children->size - 1);
318
+ AST_NODE_T* first_child = hb_array_first(children);
319
+ AST_NODE_T* last_child = hb_array_last(children);
320
320
 
321
321
  node_start = first_child->location.start;
322
322
  node_end = last_child->location.end;
data/src/util/hb_buffer.c CHANGED
@@ -22,8 +22,14 @@ static bool hb_buffer_resize(hb_buffer_T* buffer, const size_t new_capacity) {
22
22
  fprintf(stderr, "Error: Buffer capacity would overflow system limits.\n");
23
23
  exit(1);
24
24
  }
25
+ char* new_value = NULL;
25
26
 
26
- char* new_value = realloc(buffer->value, new_capacity + 1);
27
+ if (buffer->allocator == NULL) {
28
+ new_value = realloc(buffer->value, new_capacity + 1);
29
+ } else {
30
+ new_value = hb_arena_alloc(buffer->allocator, new_capacity + 1);
31
+ memcpy(new_value, buffer->value, buffer->capacity + 1);
32
+ }
27
33
 
28
34
  if (unlikely(new_value == NULL)) {
29
35
  fprintf(stderr, "Error: Failed to resize buffer to %zu.\n", new_capacity);
@@ -61,6 +67,7 @@ static bool hb_buffer_expand_if_needed(hb_buffer_T* buffer, const size_t require
61
67
  }
62
68
 
63
69
  bool hb_buffer_init(hb_buffer_T* buffer, const size_t capacity) {
70
+ buffer->allocator = NULL;
64
71
  buffer->capacity = capacity;
65
72
  buffer->length = 0;
66
73
  buffer->value = malloc(sizeof(char) * (buffer->capacity + 1));
@@ -76,6 +83,16 @@ bool hb_buffer_init(hb_buffer_T* buffer, const size_t capacity) {
76
83
  return true;
77
84
  }
78
85
 
86
+ bool hb_buffer_init_arena(hb_buffer_T* buffer, hb_arena_T* allocator, size_t capacity) {
87
+ buffer->allocator = allocator;
88
+ buffer->capacity = capacity;
89
+ buffer->length = 0;
90
+ buffer->value = hb_arena_alloc(allocator, sizeof(char) * (buffer->capacity + 1));
91
+ buffer->value[0] = '\0';
92
+
93
+ return true;
94
+ }
95
+
79
96
  char* hb_buffer_value(const hb_buffer_T* buffer) {
80
97
  return buffer->value;
81
98
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: x86-linux-musl
6
6
  authors:
7
7
  - Marco Roth