|
@@ -1115,9 +1115,9 @@ implementation
|
|
consume(_ASSIGNMENT);
|
|
consume(_ASSIGNMENT);
|
|
p2:=comp_expr(true,false);
|
|
p2:=comp_expr(true,false);
|
|
{ concat value parameter too }
|
|
{ concat value parameter too }
|
|
- p2:=ccallparanode.create(p2,nil);
|
|
|
|
- { passing p3 here is only for information purposes }
|
|
|
|
- p1:=translate_disp_call(p1,p2,p2,'',propsym.dispid,voidtype);
|
|
|
|
|
|
+ p2:=ccallparanode.create(p2,paras);
|
|
|
|
+ paras:=nil;
|
|
|
|
+ p1:=translate_disp_call(p1,p2,dct_propput,'',propsym.dispid,voidtype);
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
@@ -1177,11 +1177,12 @@ implementation
|
|
converted_result_data:=ctempcreatenode.create(propsym.propdef,sizeof(propsym.propdef),tt_persistent,true);
|
|
converted_result_data:=ctempcreatenode.create(propsym.propdef,sizeof(propsym.propdef),tt_persistent,true);
|
|
addstatement(statements,converted_result_data);
|
|
addstatement(statements,converted_result_data);
|
|
addstatement(statements,cassignmentnode.create(ctemprefnode.create(converted_result_data),
|
|
addstatement(statements,cassignmentnode.create(ctemprefnode.create(converted_result_data),
|
|
- ctypeconvnode.create_internal(translate_disp_call(p1,nil,nil,'',propsym.dispid,propsym.propdef),
|
|
|
|
|
|
+ ctypeconvnode.create_internal(translate_disp_call(p1,paras,dct_propget,'',propsym.dispid,propsym.propdef),
|
|
propsym.propdef)));
|
|
propsym.propdef)));
|
|
addstatement(statements,ctempdeletenode.create_normal_temp(converted_result_data));
|
|
addstatement(statements,ctempdeletenode.create_normal_temp(converted_result_data));
|
|
addstatement(statements,ctemprefnode.create(converted_result_data));
|
|
addstatement(statements,ctemprefnode.create(converted_result_data));
|
|
p1:=p2;
|
|
p1:=p2;
|
|
|
|
+ paras:=nil;
|
|
end
|
|
end
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
@@ -2141,16 +2142,15 @@ implementation
|
|
p3:=comp_expr(true,false);
|
|
p3:=comp_expr(true,false);
|
|
{ concat value parameter too }
|
|
{ concat value parameter too }
|
|
p2:=ccallparanode.create(p3,p2);
|
|
p2:=ccallparanode.create(p3,p2);
|
|
- { passing p3 here is only for information purposes }
|
|
|
|
- p1:=translate_disp_call(p1,p2,p3,dispatchstring,0,voidtype);
|
|
|
|
|
|
+ p1:=translate_disp_call(p1,p2,dct_propput,dispatchstring,0,voidtype);
|
|
end
|
|
end
|
|
else
|
|
else
|
|
{ this is only an approximation
|
|
{ this is only an approximation
|
|
setting useresult if not necessary is only a waste of time, no more, no less (FK) }
|
|
setting useresult if not necessary is only a waste of time, no more, no less (FK) }
|
|
if afterassignment or in_args or (token<>_SEMICOLON) then
|
|
if afterassignment or in_args or (token<>_SEMICOLON) then
|
|
- p1:=translate_disp_call(p1,p2,nil,dispatchstring,0,cvarianttype)
|
|
|
|
|
|
+ p1:=translate_disp_call(p1,p2,dct_method,dispatchstring,0,cvarianttype)
|
|
else
|
|
else
|
|
- p1:=translate_disp_call(p1,p2,nil,dispatchstring,0,voidtype);
|
|
|
|
|
|
+ p1:=translate_disp_call(p1,p2,dct_method,dispatchstring,0,voidtype);
|
|
end
|
|
end
|
|
else { Error }
|
|
else { Error }
|
|
Consume(_ID);
|
|
Consume(_ID);
|