Skip to content

Commit 121f1c7

Browse files
committed
Use hb_string in element_source_to_string function
1 parent 361bb60 commit 121f1c7

File tree

6 files changed

+18
-11
lines changed

6 files changed

+18
-11
lines changed

src/element_source.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#include "include/element_source.h"
2+
#include "include/util/hb_string.h"
23

3-
const char* element_source_to_string(element_source_t source) {
4+
hb_string_T element_source_to_string(element_source_t source) {
45
switch (source) {
5-
case ELEMENT_SOURCE_HTML: return "HTML";
6-
case ELEMENT_SOURCE_ACTIONVIEW: return "ActionView";
7-
case ELEMENT_SOURCE_HAML: return "Haml";
8-
case ELEMENT_SOURCE_SLIM: return "Slim";
9-
default: return "Unknown";
6+
case ELEMENT_SOURCE_HTML: return hb_string("HTML");
7+
case ELEMENT_SOURCE_ACTIONVIEW: return hb_string("ActionView");
8+
case ELEMENT_SOURCE_HAML: return hb_string("Haml");
9+
case ELEMENT_SOURCE_SLIM: return hb_string("Slim");
10+
default: return hb_string("Unknown");
1011
}
1112
}

src/include/element_source.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
#ifndef HERB_ELEMENT_SOURCE_H
22
#define HERB_ELEMENT_SOURCE_H
33

4+
#include "util/hb_string.h"
5+
46
typedef enum {
57
ELEMENT_SOURCE_HTML,
68
ELEMENT_SOURCE_ACTIONVIEW,
79
ELEMENT_SOURCE_HAML,
810
ELEMENT_SOURCE_SLIM
911
} element_source_t;
1012

11-
const char* element_source_to_string(element_source_t source);
13+
hb_string_T element_source_to_string(element_source_t source);
1214

1315
#endif

templates/ext/herb/nodes.c.erb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,11 @@ static VALUE rb_<%= node.human %>_from_c_struct(<%= node.struct_type %>* <%= nod
3939
<%- when Herb::Template::ArrayField -%>
4040
VALUE <%= node.human %>_<%= field.name %> = rb_nodes_array_from_c_array(<%= node.human %>-><%= field.name %>);
4141
<%- when Herb::Template::ElementSourceField -%>
42-
VALUE <%= node.human %>_<%= field.name %> = rb_utf8_str_new_cstr(element_source_to_string(<%= node.human %>-><%= field.name %>));
42+
VALUE <%= node.human %>_<%= field.name %>;
43+
{
44+
hb_string_T element_source_string = element_source_to_string(<%= node.human %>-><%= field.name %>);
45+
<%= node.human %>_<%= field.name %> = rb_utf8_str_new(element_source_string.data, element_source_string.length);
46+
}
4347
<%- else -%>
4448
/* <%= field.inspect %> */
4549
VALUE <%= node.human %>_<%= field.name %> = Qnil;

templates/javascript/packages/node/extension/nodes.cpp.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ napi_value <%= node.human %>NodeFromCStruct(napi_env env, <%= node.struct_type %
5858
napi_set_named_property(env, result, "<%= field.name %>", <%= field.name %>);
5959

6060
<%- when Herb::Template::ElementSourceField -%>
61-
napi_value <%= field.name %> = CreateString(env, element_source_to_string(<%= node.human %>-><%= field.name %>));
61+
napi_value <%= field.name %> = CreateStringFromHbString(env, element_source_to_string(<%= node.human %>-><%= field.name %>));
6262
napi_set_named_property(env, result, "<%= field.name %>", <%= field.name %>);
6363

6464
<%- else -%>

templates/src/ast_pretty_print.c.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ void ast_pretty_print_node(AST_NODE_T* node, const size_t indent, const size_t r
3939
<%- when Herb::Template::BooleanField -%>
4040
pretty_print_boolean_property(hb_string("<%= field.name %>"), <%= node.human %>-><%= field.name %>, indent, relative_indent, <%= last %>, buffer);
4141
<%- when Herb::Template::ElementSourceField -%>
42-
pretty_print_string_property(hb_string(element_source_to_string(<%= node.human %>-><%= field.name %>)), hb_string("<%= field.name %>"), indent, relative_indent, <%= last %>, buffer);
42+
pretty_print_string_property(element_source_to_string(<%= node.human %>-><%= field.name %>), hb_string("<%= field.name %>"), indent, relative_indent, <%= last %>, buffer);
4343
<%- when Herb::Template::StringField -%>
4444
pretty_print_string_property(hb_string(<%= node.human %>-><%= field.name %>), hb_string("<%= field.name %>"), indent, relative_indent, <%= last %>, buffer);
4545
<%- when Herb::Template::PrismNodeField -%>

templates/wasm/nodes.cpp.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ val <%= node.name %>FromCStruct(<%= node.struct_type %>* <%= node.human %>) {
3838
<%- when Herb::Template::ArrayField -%>
3939
result.set("<%= field.name %>", NodesArrayFromCArray(<%= node.human %>-><%= field.name %>));
4040
<%- when Herb::Template::ElementSourceField -%>
41-
result.set("<%= field.name %>", CreateString(element_source_to_string(<%= node.human %>-><%= field.name %>)));
41+
result.set("<%= field.name %>", CreateStringFromHbString(element_source_to_string(<%= node.human %>-><%= field.name %>)));
4242
<%- else -%>
4343
result.set("<%= field.name %>", val::null());
4444
<%- end -%>

0 commit comments

Comments
 (0)