View Issue Details

IDProjectCategoryView StatusLast Update
0034496FPCRTLpublic2018-12-28 01:05
ReportersilvioprogAssigned ToSven Barth 
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version3.3.1Product Build 
Target VersionFixed in Version3.3.1 
Summary0034496: RTTI.Invoke(): Access violation when passing floating-point parameters
DescriptionHi.

Consider the following example:

program project1;

{$MODE DELPHI}
{$WARN 5079 OFF}

uses
  TypInfo,
  Rtti;

procedure Test1(const d1, d2: Double);
begin
  WriteLn(d1:0:2,' - ', d2:0:2);
end;

procedure Test2(const d1, d2: Extended);
begin
  WriteLn(d1:0:2,' - ', d2:0:2);
end;

var
  a, b: Double;
begin
  a := 12.34;
  b := 56.78;
  Rtti.Invoke(@Test1, [a, b], ccReg, nil, True, False);
  Rtti.Invoke(@Test2, [a, b], ccReg, nil, True, False);
  ReadLn;
end.


When you try to run the code above, it raises the following error:

Error:

Project project1 raised exception class 'External: SIGSEGV'.

 At address 100010768

Stack log:

#0 fpc_write_text_float at :0
0000001 TEST1(12.34, 56.780000000000001) at project1.lpr:12
0000002 INVOKEKERNELWIN64(1, 0x2, 0x0, 0x11cc278) at ..\..\..\..\..\dev\git\freepascal\packages\rtl-objpas\src\x86_64\invoke.inc:69
0000003 ?? at :0
0000004 ?? at :0
Additional InformationMy environment: Lazarus 2.1.0 rUnknown FPC 3.3.1 i386-win32-win32/win64
Tagspatch, RTTI, win64, WINDOWS-64
Fixed in Revision40666
FPCOldBugId
FPCTarget
Attached Files
  • 0001-rtti.invoke-fix-access-violation-issue-34496.patch (939 bytes)
    From d0a37151a31666524500d9758ccc8ebf96fa3bd1 Mon Sep 17 00:00:00 2001
    From: silvioprog <silvioprog@gmail.com>
    Date: Thu, 1 Nov 2018 22:09:09 -0300
    Subject: [PATCH 1/1] rtti.invoke: fix access violation (issue 34496)
    
    ---
     packages/rtl-objpas/src/x86_64/invoke.inc | 6 ++++++
     1 file changed, 6 insertions(+)
    
    diff --git a/packages/rtl-objpas/src/x86_64/invoke.inc b/packages/rtl-objpas/src/x86_64/invoke.inc
    index c0bf62ed82..9dbbf0f7e6 100644
    --- a/packages/rtl-objpas/src/x86_64/invoke.inc
    +++ b/packages/rtl-objpas/src/x86_64/invoke.inc
    @@ -33,6 +33,9 @@ asm
     .seh_setframe %rbp, 0
     .seh_endprologue
     
    +  { save volatile register }
    +  pushq %rax
    +
       { align stack size to 16 Byte }
       add $15, aArgsStackSize
       and $-16, aArgsStackSize
    @@ -68,6 +71,9 @@ asm
       { now call the function }
       call *%rax
     
    +  { restore volatile register }
    +  pushq %rax
    +
       { restore non-volatile registers }
       movq %rbp, %rsp
     
    -- 
    2.17.0.windows.1
    
    
  • 0002-rtti.invoke-fix-access-violation-issue-34496.patch (926 bytes)
    From 1acc8e05091dab617ba105f9b06f298da1308e96 Mon Sep 17 00:00:00 2001
    From: silvioprog <silvioprog@gmail.com>
    Date: Thu, 1 Nov 2018 23:52:51 -0300
    Subject: [PATCH 1/1] rtti.invoke: fix access violation (issue 34496)
    
    ---
     packages/rtl-objpas/src/x86_64/invoke.inc | 6 ++++++
     1 file changed, 6 insertions(+)
    
    diff --git a/packages/rtl-objpas/src/x86_64/invoke.inc b/packages/rtl-objpas/src/x86_64/invoke.inc
    index c0bf62ed82..2a2f03ca8b 100644
    --- a/packages/rtl-objpas/src/x86_64/invoke.inc
    +++ b/packages/rtl-objpas/src/x86_64/invoke.inc
    @@ -29,6 +29,9 @@ asm
       movq %rdi, 24(%rsp)
     .seh_savereg %rdi, 24
     
    +  { save base pointer }
    +  pushq %rbp
    +
       movq %rsp, %rbp
     .seh_setframe %rbp, 0
     .seh_endprologue
    @@ -71,6 +74,9 @@ asm
       { restore non-volatile registers }
       movq %rbp, %rsp
     
    +  { restore base pointer }
    +  popq %rbp
    +
       movq 24(%rsp), %rdi
       movq 16(%rsp), %rsi
       movq 8(%rsp), %rbp
    -- 
    2.17.0.windows.1
    
    
  • 0003-rtti.invoke-fix-access-violation-patch-by-silvioprog.patch (982 bytes)
    From dfe39b97349c99c9f08135df93a4a0fe39ae36fa Mon Sep 17 00:00:00 2001
    From: silvioprog <silvioprog@gmail.com>
    Date: Wed, 7 Nov 2018 02:23:12 -0300
    Subject: [PATCH 1/1] rtti.invoke: fix access violation (patch by silvioprog)
    
    ---
     packages/rtl-objpas/src/x86_64/invoke.inc | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/packages/rtl-objpas/src/x86_64/invoke.inc b/packages/rtl-objpas/src/x86_64/invoke.inc
    index c0bf62ed82..d162840ddb 100644
    --- a/packages/rtl-objpas/src/x86_64/invoke.inc
    +++ b/packages/rtl-objpas/src/x86_64/invoke.inc
    @@ -34,9 +34,8 @@ asm
     .seh_endprologue
     
       { align stack size to 16 Byte }
    -  add $15, aArgsStackSize
    -  and $-16, aArgsStackSize
       sub aArgsStackSize, %rsp
    +  and $-16, %rsp
     
       movq aArgsStackSize, %rax
     
    @@ -110,7 +109,8 @@ begin
           tkUString,
           tkWString,
           tkInterface,
    -      tkDynArray:
    +      tkDynArray,
    +      tkRecord:
             retinparam := True;
         end;
       end;
    -- 
    2.17.0.windows.1
    
    

Activities

silvioprog

2018-11-02 02:14

reporter  

0001-rtti.invoke-fix-access-violation-issue-34496.patch (939 bytes)
From d0a37151a31666524500d9758ccc8ebf96fa3bd1 Mon Sep 17 00:00:00 2001
From: silvioprog <silvioprog@gmail.com>
Date: Thu, 1 Nov 2018 22:09:09 -0300
Subject: [PATCH 1/1] rtti.invoke: fix access violation (issue 34496)

---
 packages/rtl-objpas/src/x86_64/invoke.inc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/packages/rtl-objpas/src/x86_64/invoke.inc b/packages/rtl-objpas/src/x86_64/invoke.inc
index c0bf62ed82..9dbbf0f7e6 100644
--- a/packages/rtl-objpas/src/x86_64/invoke.inc
+++ b/packages/rtl-objpas/src/x86_64/invoke.inc
@@ -33,6 +33,9 @@ asm
 .seh_setframe %rbp, 0
 .seh_endprologue
 
+  { save volatile register }
+  pushq %rax
+
   { align stack size to 16 Byte }
   add $15, aArgsStackSize
   and $-16, aArgsStackSize
@@ -68,6 +71,9 @@ asm
   { now call the function }
   call *%rax
 
+  { restore volatile register }
+  pushq %rax
+
   { restore non-volatile registers }
   movq %rbp, %rsp
 
-- 
2.17.0.windows.1

silvioprog

2018-11-02 03:58

reporter  

0002-rtti.invoke-fix-access-violation-issue-34496.patch (926 bytes)
From 1acc8e05091dab617ba105f9b06f298da1308e96 Mon Sep 17 00:00:00 2001
From: silvioprog <silvioprog@gmail.com>
Date: Thu, 1 Nov 2018 23:52:51 -0300
Subject: [PATCH 1/1] rtti.invoke: fix access violation (issue 34496)

---
 packages/rtl-objpas/src/x86_64/invoke.inc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/packages/rtl-objpas/src/x86_64/invoke.inc b/packages/rtl-objpas/src/x86_64/invoke.inc
index c0bf62ed82..2a2f03ca8b 100644
--- a/packages/rtl-objpas/src/x86_64/invoke.inc
+++ b/packages/rtl-objpas/src/x86_64/invoke.inc
@@ -29,6 +29,9 @@ asm
   movq %rdi, 24(%rsp)
 .seh_savereg %rdi, 24
 
+  { save base pointer }
+  pushq %rbp
+
   movq %rsp, %rbp
 .seh_setframe %rbp, 0
 .seh_endprologue
@@ -71,6 +74,9 @@ asm
   { restore non-volatile registers }
   movq %rbp, %rsp
 
+  { restore base pointer }
+  popq %rbp
+
   movq 24(%rsp), %rdi
   movq 16(%rsp), %rsi
   movq 8(%rsp), %rbp
-- 
2.17.0.windows.1

silvioprog

2018-11-02 04:02

reporter   ~0111737

Please discard the first attached patch and consider only the new one: "0002-rtti.invoke-fix-access-violation-issue-34496.patch". After saving/restoring the base pointer the problem was fixed.

I'm using the following new test:

program project1;

{$MODE DELPHI}
{$WARN 5079 OFF}

uses
  TypInfo,
  Rtti;

  function Test1(const d1, d2: double): double;
  begin
    WriteLn(d1: 0: 2, ' - ', d2: 0: 2);
    Result := 67.89;
  end;

  function Test2(const d1, d2: extended): extended;
  begin
    WriteLn(d1: 0: 2, ' - ', d2: 0: 2);
    Result := 67.89;
  end;

  function Test3(const d1, d2: integer): integer;
  begin
    WriteLn(d1, ' - ', d2);
    Result := 789;
  end;

  function test(const i1, i2: string; i3: double;
    i4, i5, i6, i7, i8, i9: integer): extended;
  begin
    WriteLn(i1, ' - ', i2, ' - ', i3: 0: 2, ' - ', i4, ' - ', i5, ' - ', i6, ' - ', i7,
      ' - ', i8, ' - ', i9);
    Result := 3.14;
  end;

var
  a, b, d: double;
  e, x: extended;
  i: integer;
begin
  a := 12.34;
  b := 56.78;
  d := Rtti.Invoke(@Test1, [a, b], ccReg, TypeInfo(double), True, False).AsExtended;
  WriteLn('D: ', d: 0: 2);
  e := Rtti.Invoke(@Test2, [extended(12.34), extended(56.78)], ccReg,
    TypeInfo(extended), True, False).AsExtended;
  WriteLn('E: ', e: 0: 2);

  i := Rtti.Invoke(@Test3, [123, 456], ccReg, TypeInfo(integer), True, False).AsInteger;
  WriteLn('I: ', i);

  x := rtti.Invoke(@test, ['abc', 'def', double(12.34), 20, 30, 40, 50, 60, 70],
    ccReg, TypeInfo(double), True, False).AsExtended;
  WriteLn('X: ', x: 0: 2);

  ReadLn;
end.


it prints:

12.34 - 56.78
D: 67.89
12.34 - 56.78
E: 67.89
123 - 456
I: 789
abc - def - 12.34 - 20 - 30 - 40 - 50 - 60 - 70
X: 3.14

silvioprog

2018-11-04 03:19

reporter   ~0111769

Last edited: 2018-11-04 05:09

View 2 revisions

The patch fixes the AV when passing record types too. Create a new project on Lazarus, put a new button1 and implement the following test:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  SysUtils, Forms, Dialogs, StdCtrls, typinfo, rtti;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

type
  Trec = record
    s: string;
    i: Integer;
  end;

procedure test(r: Trec);
begin
  ShowMessageFmt('%s - %d', [r.s, r.i]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  r: Trec;
  v: TValue;
begin
  r.s := 'abc';
  r.i := 123;
  TValue.Make(@r, TypeInfo(Trec), v);
  Rtti.Invoke(@test, [v], ccReg, nil, True, False);
end;

end.


Thaddy de Koning

2018-11-04 14:13

reporter   ~0111785

Last edited: 2018-11-04 14:15

View 2 revisions

Note I simply get a nice ENotImplemented exception on line 40. (second example, w/o patch):

An unhandled exception occurred at $0004C7A8:
ENotImplemented: Invoke functionality is not implemented
  $0004C7A8
  $0004D0B8
  $000107B8 main, line 40

Thaddy de Koning

2018-11-04 14:16

reporter   ~0111786

(Raspbian, trunk rev 40214)

silvioprog

2018-11-04 15:11

reporter   ~0111787

Hi Thaddy, this code is Win64 only.

Thaddy de Koning

2018-11-04 19:36

reporter   ~0111789

Last edited: 2018-11-04 19:37

View 2 revisions

Yes. That's why it is still experimental. Which you care to ignore...

silvioprog

2018-11-04 22:22

reporter   ~0111791

When a feature is experimental it means no one can send patches and/or report bugs? If so, please close this topic and I leave to contribute to rtti.invoke().

silvioprog

2018-11-05 02:05

reporter   ~0111795

@Admins: could you rename the issue title to "[PATCH] RTTI.Invoke(): Access violation when passing floating-point parameters"? Thank you!

Thaddy de Koning

2018-11-05 18:29

reporter   ~0111801

Last edited: 2018-11-05 18:29

View 2 revisions

Well, at least take the time to supply OS and platform in the proper place in the future. Then I wouldn't bother to test it.

silvioprog

2018-11-05 19:29

reporter   ~0111802

Last edited: 2018-11-06 02:14

View 2 revisions

The code is self-explanatory by itself!

Thaddy de Koning

2018-11-06 09:46

reporter   ~0111806

No it isn't. The patch is. I first test the behavior of the code on defects. A patch against just one CPU and or OS is usually not enough. So plz always provide platform and OS.

Marco van de Voort

2018-11-06 10:53

manager   ~0111808

It's a bit weird patch. %rbp is popped, but 3 instructions later it is overwritten by the

   movq 8(%rsp), %rbp


visible in the patch??? Somehow this code doesn't make sense.

silvioprog

2018-11-06 15:34

reporter   ~0111811

Last edited: 2018-11-06 15:45

View 4 revisions

@Thaddy: Sorry, but I'll not spend more time on these unproductive messages with you. I suspect you have something against me, since you always make destructive criticism in the issues I've open.

@Marco: Thanks a lot for checking the patch and send a positive feedback. It motivates me to continue trying to contribute this important feature for the Free Pascal compiler. I'm going to analyze your observations and back with a new feedback and/or new patch.

I would appreciate if Sven Barth could check these strange AVs. He is the author of the initial implementation of this feature for Win64. I'm implementing it for SysV ABI for Linux 64, so I'm not sure about how the shadow space (the first assembly lines you mentioned) required by the ABI for Win64 works, because on Linux only a red-zone is available and for other purposes. Anyway, I'm going to check these Win64 peculiarities to try to fix it there, because the rtti.invoke() is an important Delphi feature that is missing in Free Pascal.

Alfred

2018-11-06 15:48

reporter   ~0111812

You could have a look at the mORMot.
In mORMot.pas, there is an invoke function named:
procedure CallMethod(var Args: TCallMethodArgs);
(around line 58960)
It contains assembler to invoke for many CPU's and OS's.

silvioprog

2018-11-06 19:45

reporter   ~0111815

Hi Alfred, thanks a lot for indicating it! First, I'm going to check the mORMot license. If it is under some permissive license like LGPL/BDS/MIT, it could be a start point. Current I'm checking how to pass structs (records) as parameters, I already got it for complex types like extended ones (size 10). Thanks again for indicating!

silvioprog

2018-11-07 01:18

reporter   ~0111818

Last edited: 2018-11-07 01:36

View 2 revisions

@Alfred, since mORMot is under permissive license, I took a look at its CallMethod() implementation. It seems the author used a portion of Pascal code mixed with Intel-style assembly. It is awesome and can be used as start point to help me in the implementation for Linux 64. I've used purely assembly in AT&T-style, but I'm going to try something like passing the arguments to a specialized array containing the gpregs, fpregs, res32/64 and so on. After that, I think it can be easily set to the registers (keeping the AT&T syntax). Thanks again for indicating that unit (and thanks the author for that excellent job)!

silvioprog

2018-11-07 06:33

reporter   ~0111821

@Marco: You are right! The bug is just in the stack alignment. This new attached patch should fix the problem. Could you delete (or set as won't fix) the 0034509?

Another example to test the patch:

program project1;

{$MODE DELPHI}

uses
  TypInfo,
  RTTI;

type
  TRec = record
    S: string;
    I: Integer;
  end;

function Test(P: TRec): TRec;
begin
  Result := P;
  WriteLn('P: ', P.S, ' - ', P.I);
end;

var
  V: TValue;
  R1, R2: TRec;
begin
  R1.S := 'abc';
  R1.I := 123;
  TValue.Make(@R1, TypeInfo(TRec), V);
  R2 := TRec(Rtti.Invoke(@Test, [V], ccReg, TypeInfo(TRec), True, False).GetReferenceToRawData^);
  WriteLn('R: ', R2.S, ' - ', R2.I);
  ReadLn;
end.

silvioprog

2018-11-07 06:33

reporter  

0003-rtti.invoke-fix-access-violation-patch-by-silvioprog.patch (982 bytes)
From dfe39b97349c99c9f08135df93a4a0fe39ae36fa Mon Sep 17 00:00:00 2001
From: silvioprog <silvioprog@gmail.com>
Date: Wed, 7 Nov 2018 02:23:12 -0300
Subject: [PATCH 1/1] rtti.invoke: fix access violation (patch by silvioprog)

---
 packages/rtl-objpas/src/x86_64/invoke.inc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/packages/rtl-objpas/src/x86_64/invoke.inc b/packages/rtl-objpas/src/x86_64/invoke.inc
index c0bf62ed82..d162840ddb 100644
--- a/packages/rtl-objpas/src/x86_64/invoke.inc
+++ b/packages/rtl-objpas/src/x86_64/invoke.inc
@@ -34,9 +34,8 @@ asm
 .seh_endprologue
 
   { align stack size to 16 Byte }
-  add $15, aArgsStackSize
-  and $-16, aArgsStackSize
   sub aArgsStackSize, %rsp
+  and $-16, %rsp
 
   movq aArgsStackSize, %rax
 
@@ -110,7 +109,8 @@ begin
       tkUString,
       tkWString,
       tkInterface,
-      tkDynArray:
+      tkDynArray,
+      tkRecord:
         retinparam := True;
     end;
   end;
-- 
2.17.0.windows.1

silvioprog

2018-11-07 06:38

reporter   ~0111823

Last edited: 2018-11-07 06:39

View 2 revisions

@Marco: Please let me know if you find more problems in this new patch. Thank you!

Sven Barth

2018-12-27 00:04

manager   ~0112896

Last edited: 2018-12-27 00:05

View 2 revisions

@silvioprog: Next time please don't mix two separate fixes into one. Bug report 0034509 would have been the right one for the record issue. This one was for the floating point issue.
Also your record fix would have been incorrect for records with a size of 1, 2, 4 or 8 as those are passed by value, not as pointer.
Edit: You would have seen that if you would have run the testsuite as then the tests in packages\rtl-objpas\tests\testrunner.rtlobjpas would have failed.

@Thaddy: experimental does not mean that bug reports are not welcome. Especially for a unit as complex as the Rtti unit.

silvioprog

2018-12-27 01:56

reporter   ~0112897

Last edited: 2018-12-27 01:57

View 2 revisions

Reopening because the last change broke the compiler building. A cut from the relevant log part:

...
[  7%] Compiled package pasjpeg
Start compiling package rtl-objpas for target x86_64-linux.
       Compiling rtl-objpas/BuildUnit_rtl_objpas.pp
       Compiling ./rtl-objpas/src/inc/strutils.pp
       Compiling ./rtl-objpas/src/inc/widestrutils.pp
       Compiling ./rtl-objpas/src/common/varutils.pp
       Compiling ./rtl-objpas/src/inc/convutils.pp
       Compiling ./rtl-objpas/src/inc/dateutils.pp
       Compiling ./rtl-objpas/src/inc/stdconvs.pp
       Compiling ./rtl-objpas/src/inc/variants.pp
       Compiling ./rtl-objpas/src/inc/fmtbcd.pp
       Compiling ./rtl-objpas/src/inc/rtti.pp
External command "/home/silvioprog/dev/git/freepascal/compiler/ppcx64 -Tlinux -FUrtl-objpas/units/x86_64-linux/ -Fu/home/silvioprog/dev/git/freepascal/rtl/units/x86_64-linux/ -Furtl-objpas/src/inc -Furtl-objpas/src/common -Firtl-objpas/src/inc -Firtl-objpas/src/linux -Firtl-objpas/src/x86_64 -Firtl-objpas/src/common -Ur -Xs -O2 -n -Cg -dx86_64 -dRELEASE -XX -CX -Sc -viq rtl-objpas/BuildUnit_rtl_objpas.pp" failed with exit code 256. Console output:
Target OS: Linux for x86-64
Compiling rtl-objpas/BuildUnit_rtl_objpas.pp
Compiling ./rtl-objpas/src/inc/strutils.pp
Writing Resource String Table file: strutils.rsj
Compiling ./rtl-objpas/src/inc/widestrutils.pp
Compiling ./rtl-objpas/src/common/varutils.pp
Compiling ./rtl-objpas/src/inc/convutils.pp
Compiling ./rtl-objpas/src/inc/dateutils.pp
Compiling ./rtl-objpas/src/inc/stdconvs.pp
Writing Resource String Table file: stdconvs.rsj
Compiling ./rtl-objpas/src/inc/variants.pp
Writing Resource String Table file: variants.rsj
Compiling ./rtl-objpas/src/inc/fmtbcd.pp
fmtbcd.pp(2432,31) Warning: Function result variable of a managed type does not seem to be initialized
fmtbcd.pp(2439,31) Warning: Function result variable of a managed type does not seem to be initialized
fmtbcd.pp(2448,31) Warning: Function result variable of a managed type does not seem to be initialized
fmtbcd.pp(2455,31) Warning: Function result variable of a managed type does not seem to be initialized
fmtbcd.pp(4103,52) Warning: Implicit string type conversion with potential data loss from "WideString" to "AnsiString"
fmtbcd.pp(4104,33) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
Compiling ./rtl-objpas/src/inc/rtti.pp
rtti.pp(2053,20) Error: Incompatible types: got "Comp" expected "Int64"
rtti.pp(2072,20) Error: Incompatible types: got "Comp" expected "QWord"
rtti.pp(2091,27) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
rtti.pp(3301) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted

The installer encountered the following error:
Compilation of "BuildUnit_rtl_objpas.pp" failed
Makefile:1734: recipe for target 'smart' failed
make[2]: *** [smart] Error 1
make[2]: Leaving directory '/home/silvioprog/dev/git/freepascal/packages'
Makefile:2716: recipe for target 'packages_smart' failed
make[1]: *** [packages_smart] Error 2
make[1]: Leaving directory '/home/silvioprog/dev/git/freepascal'
Makefile:2866: recipe for target 'build-stamp.x86_64-linux' failed
make: *** [build-stamp.x86_64-linux] Error 2


when I revert to the last commit before changes in the RTTI unit it compiles fine.

Edit:

I'm on Linux64. (Xubuntu 18.04)

Sven Barth

2018-12-27 10:23

manager   ~0112900

Should be fixed now in 40637.

silvioprog

2018-12-28 01:05

reporter   ~0112930

Fixed. Thank you very much!

Issue History

Date Modified Username Field Change
2018-11-02 01:26 silvioprog New Issue
2018-11-02 02:14 silvioprog File Added: 0001-rtti.invoke-fix-access-violation-issue-34496.patch
2018-11-02 03:58 silvioprog File Added: 0002-rtti.invoke-fix-access-violation-issue-34496.patch
2018-11-02 04:02 silvioprog Note Added: 0111737
2018-11-04 03:19 silvioprog Note Added: 0111769
2018-11-04 05:09 silvioprog Note Edited: 0111769 View Revisions
2018-11-04 14:13 Thaddy de Koning Note Added: 0111785
2018-11-04 14:15 Thaddy de Koning Note Edited: 0111785 View Revisions
2018-11-04 14:16 Thaddy de Koning Note Added: 0111786
2018-11-04 15:11 silvioprog Note Added: 0111787
2018-11-04 19:36 Thaddy de Koning Note Added: 0111789
2018-11-04 19:37 Thaddy de Koning Note Edited: 0111789 View Revisions
2018-11-04 22:22 silvioprog Note Added: 0111791
2018-11-05 02:05 silvioprog Note Added: 0111795
2018-11-05 02:05 silvioprog Tag Attached: patch
2018-11-05 02:06 silvioprog Tag Attached: RTTI
2018-11-05 18:29 Thaddy de Koning Note Added: 0111801
2018-11-05 18:29 Thaddy de Koning Note Edited: 0111801 View Revisions
2018-11-05 19:29 silvioprog Note Added: 0111802
2018-11-06 02:14 silvioprog Note Edited: 0111802 View Revisions
2018-11-06 02:14 silvioprog Tag Attached: win64
2018-11-06 02:14 silvioprog Tag Attached: WINDOWS-64
2018-11-06 09:46 Thaddy de Koning Note Added: 0111806
2018-11-06 10:53 Marco van de Voort Note Added: 0111808
2018-11-06 15:34 silvioprog Note Added: 0111811
2018-11-06 15:42 silvioprog Note Edited: 0111811 View Revisions
2018-11-06 15:44 silvioprog Note Edited: 0111811 View Revisions
2018-11-06 15:45 silvioprog Note Edited: 0111811 View Revisions
2018-11-06 15:48 Alfred Note Added: 0111812
2018-11-06 19:45 silvioprog Note Added: 0111815
2018-11-07 01:18 silvioprog Note Added: 0111818
2018-11-07 01:36 silvioprog Note Edited: 0111818 View Revisions
2018-11-07 06:33 silvioprog Note Added: 0111821
2018-11-07 06:33 silvioprog File Added: 0003-rtti.invoke-fix-access-violation-patch-by-silvioprog.patch
2018-11-07 06:38 silvioprog Note Added: 0111823
2018-11-07 06:39 silvioprog Note Edited: 0111823 View Revisions
2018-12-27 00:04 Sven Barth Fixed in Revision => 40666
2018-12-27 00:04 Sven Barth Note Added: 0112896
2018-12-27 00:04 Sven Barth Status new => resolved
2018-12-27 00:04 Sven Barth Fixed in Version => 3.3.1
2018-12-27 00:04 Sven Barth Resolution open => fixed
2018-12-27 00:04 Sven Barth Assigned To => Sven Barth
2018-12-27 00:05 Sven Barth Note Edited: 0112896 View Revisions
2018-12-27 01:56 silvioprog Note Added: 0112897
2018-12-27 01:56 silvioprog Status resolved => feedback
2018-12-27 01:56 silvioprog Resolution fixed => reopened
2018-12-27 01:57 silvioprog Note Edited: 0112897 View Revisions
2018-12-27 10:23 Sven Barth Note Added: 0112900
2018-12-27 10:23 Sven Barth Status feedback => resolved
2018-12-27 10:23 Sven Barth Resolution reopened => fixed
2018-12-28 01:05 silvioprog Note Added: 0112930
2018-12-28 01:05 silvioprog Status resolved => closed