File tree 1 file changed +4
-13
lines changed
1 file changed +4
-13
lines changed Original file line number Diff line number Diff line change @@ -887,19 +887,10 @@ JL_DLLEXPORT jl_value_t *jl_new_struct(jl_datatype_t *type, ...)
887
887
888
888
static void init_struct_tail (jl_datatype_t * type , jl_value_t * jv , size_t na )
889
889
{
890
- size_t nf = jl_datatype_nfields (type );
891
- char * data = (char * )jl_data_ptr (jv );
892
- for (size_t i = na ; i < nf ; i ++ ) {
893
- if (jl_field_isptr (type , i )) {
894
- * (jl_value_t * * )(data + jl_field_offset (type , i )) = NULL ;
895
- }
896
- else {
897
- jl_value_t * ft = jl_field_type (type , i );
898
- if (jl_is_uniontype (ft )) {
899
- uint8_t * psel = & ((uint8_t * )data )[jl_field_offset (type , i ) + jl_field_size (type , i ) - 1 ];
900
- * psel = 0 ;
901
- }
902
- }
890
+ if (na < jl_datatype_nfields (type )) {
891
+ char * data = (char * )jl_data_ptr (jv );
892
+ size_t offs = jl_field_offset (type , na );
893
+ memset (data + offs , 0 , jl_datatype_size (type ) - offs );
903
894
}
904
895
}
905
896
You can’t perform that action at this time.
0 commit comments