|
@@ -265,23 +265,14 @@ implementation
|
|
begin
|
|
begin
|
|
if is_voidpointer(def) then
|
|
if is_voidpointer(def) then
|
|
result:=jvmaddencodedtype(java_jlobject,false,encodedstr,forcesignature,founderror)
|
|
result:=jvmaddencodedtype(java_jlobject,false,encodedstr,forcesignature,founderror)
|
|
- else if tpointerdef(def).pointeddef.typ in [orddef,floatdef] then
|
|
|
|
- begin
|
|
|
|
- encodedstr:=encodedstr+'[';
|
|
|
|
- result:=jvmaddencodedtype(tpointerdef(def).pointeddef,false,encodedstr,forcesignature,founderror);
|
|
|
|
- end
|
|
|
|
else if jvmimplicitpointertype(tpointerdef(def).pointeddef) then
|
|
else if jvmimplicitpointertype(tpointerdef(def).pointeddef) then
|
|
result:=jvmaddencodedtype(tpointerdef(def).pointeddef,false,encodedstr,forcesignature,founderror)
|
|
result:=jvmaddencodedtype(tpointerdef(def).pointeddef,false,encodedstr,forcesignature,founderror)
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
- { Semantically, these are pointers to types that are
|
|
|
|
- pointer-based themselves (or typecastable to pointer).
|
|
|
|
- Internally, we represent them all as array of JLObject so that
|
|
|
|
- they are assignment-compatible. We will perform the type
|
|
|
|
- checks when actually loading a value from them }
|
|
|
|
|
|
+ { all pointer types are emulated via arrays }
|
|
encodedstr:=encodedstr+'[';
|
|
encodedstr:=encodedstr+'[';
|
|
- result:=jvmaddencodedtype(java_jlobject,false,encodedstr,forcesignature,founderror)
|
|
|
|
- end;
|
|
|
|
|
|
+ result:=jvmaddencodedtype(tpointerdef(def).pointeddef,false,encodedstr,forcesignature,founderror);
|
|
|
|
+ end
|
|
end;
|
|
end;
|
|
floatdef :
|
|
floatdef :
|
|
begin
|
|
begin
|