Skip to content

Commit 0fd2f2f

Browse files
author
John Haley
committed
Fixed bug with generate code for fixed length strings
1 parent 85c94a3 commit 0fd2f2f

File tree

4 files changed

+32
-12
lines changed

4 files changed

+32
-12
lines changed

generate/input/descriptor.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,18 @@
182182
}
183183
}
184184
},
185+
"cert_hostkey": {
186+
"fields": {
187+
"hash_md5": {
188+
"cppClassName": "String",
189+
"size": 16
190+
},
191+
"hash_sha1": {
192+
"cppClassName": "String",
193+
"size": 20
194+
}
195+
}
196+
},
185197
"checkout": {
186198
"functions": {
187199
"git_checkout_head": {

generate/scripts/generateNativeCode.js

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,26 +50,27 @@ module.exports = function generateNativeCode() {
5050
};
5151

5252
var filters = {
53-
upper: require("../templates/filters/upper"),
54-
replace: require("../templates/filters/replace"),
55-
titleCase: require("../templates/filters/title_case"),
56-
or: require("../templates/filters/or"),
5753
and: require("../templates/filters/and"),
58-
defaultValue: require("../templates/filters/default_value"),
5954
argsInfo: require("../templates/filters/args_info"),
6055
cppToV8: require("../templates/filters/cpp_to_v8"),
61-
jsArgsCount: require("../templates/filters/js_args_count"),
62-
isV8Value: require("../templates/filters/is_v8_value"),
63-
isPointer: require("../templates/filters/is_pointer"),
56+
defaultValue: require("../templates/filters/default_value"),
57+
fieldsInfo: require("../templates/filters/fields_info"),
58+
hasReturnType: require("../templates/filters/has_return_type"),
59+
hasReturns: require("../templates/filters/has_returns"),
6460
isDoublePointer: require("../templates/filters/is_double_pointer"),
61+
isFixedLengthString: require("../templates/filters/is_fixed_length_string"),
6562
isOid: require("../templates/filters/is_oid"),
66-
unPointer: require("../templates/filters/un_pointer"),
63+
isPointer: require("../templates/filters/is_pointer"),
64+
isV8Value: require("../templates/filters/is_v8_value"),
65+
jsArgsCount: require("../templates/filters/js_args_count"),
66+
or: require("../templates/filters/or"),
6767
payloadFor: require("../templates/filters/payload_for"),
68-
hasReturnType: require("../templates/filters/has_return_type"),
69-
hasReturns: require("../templates/filters/has_returns"),
68+
replace: require("../templates/filters/replace"),
7069
returnsCount: require("../templates/filters/returns_count"),
7170
returnsInfo: require("../templates/filters/returns_info"),
72-
fieldsInfo: require("../templates/filters/fields_info")
71+
titleCase: require("../templates/filters/title_case"),
72+
unPointer: require("../templates/filters/un_pointer"),
73+
upper: require("../templates/filters/upper")
7374
};
7475

7576
// Convert Buffers to Combyne templates.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = function(field) {
2+
return field.cppClassName == "String" && field.size;
3+
};

generate/templates/partials/fields.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44
NanScope();
55
Handle<v8::Value> to;
66

7+
{% if field | isFixedLengthString %}
8+
char* {{ field.name }} = (char *)ObjectWrap::Unwrap<{{ cppClassName }}>(args.This())->GetValue()->{{ field.name }};
9+
{% else %}
710
{{ field.cType }} {% if not field.cppClassName|isV8Value %}*{% endif %}{{ field.name }} =
811
{% if not field.cppClassName|isV8Value %}&{% endif %}ObjectWrap::Unwrap<{{ cppClassName }}>(args.This())->GetValue()->{{ field.name }};
12+
{% endif %}
913

1014
{% partial convertToV8 field %}
1115
NanReturnValue(to);

0 commit comments

Comments
 (0)