@@ -60,7 +60,7 @@ function getPrimitiveNameByType(type) {
6060 return 'Char';
6161 } else if (type.type === 'byte') {
6262 return 'Byte';
63- } else if (type.type === 'string') {
63+ } else if (type.type === 'string' || type.type === 'wstring' ) {
6464 return 'String';
6565 } else {
6666 return '';
@@ -279,11 +279,25 @@ class {{=objectWrapper}} {
279279 this._{{=field.name}}Intialized = true;
280280 {{??}}
281281 {{? field.type.isPrimitiveType && !field.type.isArray}}
282+ {{? field.default_value === null}}
282283 this._{{=field.name}}Intialized = false;
284+ {{?? field.type.type === 'string'}}
285+ this._refObject.{{=field.name}} = " {{=field.default_value.replace(/" /g, '\\" ')}}" ;
286+ this._{{=field.name}}Intialized = true;
287+ {{??}}
288+ this._refObject.{{=field.name}} = {{=field.default_value}};
289+ this._{{=field.name}}Intialized = true;
290+ {{?}}
283291 {{?}}
284292
285293 {{? field.type.isArray}}
286294 this._wrapperFields.{{=field.name}} = {{=getWrapperNameByType(field.type)}}.createArray();
295+ {{? field.default_value !== null && field.type.isPrimitiveType && !isTypedArrayType(field.type)}}
296+ this._{{=field.name}}Array = {{=JSON.stringify(field.default_value)}};
297+ {{?}}
298+ {{? field.default_value !== null && field.type.isPrimitiveType && isTypedArrayType(field.type)}}
299+ this._wrapperFields.{{=field.name}}.fill({{=getTypedArrayName(field.type)}}.from({{=JSON.stringify(field.default_value)}}));
300+ {{?}}
287301 {{?? !field.type.isPrimitiveType || (field.type.type === 'string' && it.spec.msgName !== 'String')}}
288302 this._wrapperFields.{{=field.name}} = new {{=getWrapperNameByType(field.type)}}();
289303 {{?? it.spec.msgName === 'String'}}
@@ -337,9 +351,15 @@ class {{=objectWrapper}} {
337351 this._refObject.{{=field.name}}[i] = this._wrapperFields.{{=field.name}}.data[i];
338352 }
339353 {{?? field.type.isArray && field.type.isPrimitiveType && !isTypedArrayType(field.type)}}
340- this._wrapperFields.{{=field.name}}.fill(this._{{=field.name}}Array);
341- this._wrapperFields.{{=field.name}}.freeze(own, checkConsistency);
342- this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
354+ if (!own) {
355+ this._wrapperFields.{{=field.name}}.fill(this._{{=field.name}}Array);
356+ this._wrapperFields.{{=field.name}}.freeze(own, checkConsistency);
357+ this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
358+ } else {
359+ this._wrapperFields.{{=field.name}}.fill([]);
360+ this._wrapperFields.{{=field.name}}.freeze(own, checkConsistency);
361+ this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
362+ }
343363 {{?? field.type.isArray && !field.type.isPrimitiveType && field.type.isFixedSizeArray}}
344364 for (let i = 0; i < this._wrapperFields.{{=field.name}}.data.length; i++) {
345365 this._refObject.{{=field.name}}[i] = this._wrapperFields.{{=field.name}}.data[i].freeze(own, checkConsistency);
@@ -348,6 +368,13 @@ class {{=objectWrapper}} {
348368 {{?? !field.type.isPrimitiveType || field.type.isArray}}
349369 this._wrapperFields.{{=field.name}}.freeze(own, checkConsistency);
350370 this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
371+ {{? field.type.isArray && field.type.isPrimitiveType }}
372+ if (own) {
373+ this._wrapperFields.{{=field.name}}.fill({{=getTypedArrayName(field.type)}}.from([]));
374+ this._wrapperFields.{{=field.name}}.freeze(own, checkConsistency);
375+ this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
376+ }
377+ {{?}}
351378 {{?? field.type.type === 'string' && it.spec.msgName !== 'String'}}
352379 if (own) {
353380 this._wrapperFields.{{=field.name}}.freeze(own, checkConsistency);
0 commit comments