t_id
1560
t_adddate
2005/04/29
t_result
0
t_knownrunerror
0
Record count: 50
Total = 50
OK=50 Percentage= 100.00
Result type | Cat. | Count | Percentage | First date | Last Date |
Successfully run | 50 | 100.0 | 2024/09/26 18:42:00 90 | 2024/09/26 23:02:00 44 | |
i386 | 4 | 8.0 | 2024/09/26 19:54:00 70 | 2024/09/26 22:38:00 79 | |
powerpc | 14 | 28.0 | 2024/09/26 19:41:00 35 | 2024/09/26 23:02:00 44 | |
powerpc64 | 17 | 34.0 | 2024/09/26 18:42:00 90 | 2024/09/26 22:29:00 103 | |
wasm32 | 7 | 14.0 | 2024/09/26 19:31:00 339 | 2024/09/26 22:50:00 299 | |
riscv64 | 8 | 16.0 | 2024/09/26 19:14:00 123 | 2024/09/26 19:59:00 123 | |
linux | 39 | 78.0 | 2024/09/26 18:42:00 90 | 2024/09/26 23:02:00 44 | |
go32v2 | 4 | 8.0 | 2024/09/26 19:54:00 70 | 2024/09/26 22:38:00 79 | |
wasi | 7 | 14.0 | 2024/09/26 19:31:00 339 | 2024/09/26 22:50:00 299 | |
3.3.1 | 34 | 68.0 | 2024/09/26 18:42:00 90 | 2024/09/26 22:50:00 299 | |
3.2.3 | 16 | 32.0 | 2024/09/26 21:17:00 71 | 2024/09/26 23:02:00 44 |
{ Source provided for Free Pascal Bug Report 3899 } { Submitted by "Stefan Glienke" on 2005-04-19 } { e-mail: glienke@cpa.de } program project2; {$mode objfpc}{$H+} uses Classes; type TZVariant = packed record VInteger: Int64; end; IZInterface = IUnknown; IZObject = interface(IZInterface) ['{EF46E5F7-00CF-4DDA-BED0-057D6686AEE0}'] function Equals(const Value: IZInterface): Boolean; end; IZClonnable = interface(IZObject) ['{ECB7F3A4-7B2E-4130-BA66-54A2D43C0149}'] end; IZAnyValue = interface (IZClonnable) ['{E81988B3-FD0E-4524-B658-B309B02F0B6A}'] end; TZAbstractObject = class(TInterfacedObject, IZObject) public function Equals(const Value: IZInterface): Boolean; virtual; end; TZAnyValue = class(TZAbstractObject, IZAnyValue) private FValue: TZVariant; public constructor Create(Value: TZVariant); function Equals(const Value: IZInterface): Boolean; override; end; constructor TZAnyValue.Create(Value: TZVariant); begin FValue := Value; end; function TZAnyValue.Equals(const Value: IZInterface): Boolean; var Temp: IZAnyValue; begin if Value <> nil then begin if Value.QueryInterface(IZAnyValue, Temp) = 0 then begin Result := False; Temp := nil; end else Result := inherited Equals(Value); end else Result := False; end; function TZAbstractObject.Equals(const Value: IZInterface): Boolean; begin if Value <> nil then begin Result := (IZInterface(Self) = Value) or ((Self as IZInterface) = (Value as IZInterface)); end else Result := False; end; var ARecord: TZVariant; AValue: IZAnyValue; begin ARecord.VInteger := 42; AValue := TZAnyValue.Create(ARecord); AValue.Equals(AValue); AValue.Equals(AValue); // <-- this call produces av end.