* always write the entire integer field when storing a value < integer in an

arrayconstructor, so the upper bits get zeroed (tbs/tb0581)

git-svn-id: trunk@32214 -
This commit is contained in:
Jonas Maebe 2015-10-31 14:25:54 +00:00
parent 5e32590741
commit af4d69f446

View File

@ -1225,7 +1225,7 @@ implementation
if is_boolean(lt) then if is_boolean(lt) then
begin begin
vtype:=vtBoolean; vtype:=vtBoolean;
varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VBOOLEAN')); varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VINTEGER'));
end end
else else
if (lt.typ=orddef) then if (lt.typ=orddef) then
@ -1234,12 +1234,12 @@ implementation
uchar: uchar:
begin begin
vtype:=vtChar; vtype:=vtChar;
varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VCHAR')); varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VINTEGER'));
end; end;
uwidechar: uwidechar:
begin begin
vtype:=vtWideChar; vtype:=vtWideChar;
varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VWIDECHAR')); varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VINTEGER'));
end; end;
end; end;
end; end;