source: MicroThreading/Patch/FPC 2.4.2.patch

Last change on this file was 225, checked in by george, 14 years ago
  • Patch file for FPC 2.4.2.
File size: 2.6 KB
  • rtl/inc/except.inc

     
    2626  cFinalizeFrame  = 2;
    2727
    2828Type
    29   PExceptAddr = ^TExceptAddr;
    30   TExceptAddr = record
    31     buf       : pjmp_buf;
    32     next      : PExceptAddr;
    33     frametype : Longint;
    34   end;
    3529
    3630  TExceptObjectClass = Class of TObject;
    3731
     
    4842end;
    4943
    5044
     45// Used for microthreading context switching
     46
     47Function GetExceptionAddrStack : PExceptAddr;
     48begin
     49  Result := ExceptAddrStack;
     50end;
     51
     52Function GetExceptionObjectStack : PExceptObject;
     53begin
     54  Result := ExceptObjectStack;
     55end;
     56
     57procedure SetExceptionAddrStack(Value : PExceptAddr);
     58begin
     59  ExceptAddrStack := Value;
     60end;
     61
     62procedure SetExceptionObjectStack(Value : PExceptObject);
     63begin
     64  ExceptObjectStack := Value;
     65end;
     66
     67
    5168function AcquireExceptionObject: Pointer;
    5269var
    5370  _ExceptObjectStack : PExceptObject;
  • rtl/inc/objpash.inc

     
    141141                  D4 : array[0..7] of byte;
    142142                 );
    143143             3 : ( { uuid fields according to RFC4122 }
    144                   time_low : dword;                     // The low field of the timestamp
     144                  time_low : dword;     // The low field of the timestamp
    145145                  time_mid : word;                      // The middle field of the timestamp
    146146                  time_hi_and_version : word;           // The high field of the timestamp multiplexed with the version number
    147147                  clock_seq_hi_and_reserved : byte;     // The high field of the clock sequence multiplexed with the variant
     
    326326         Frames     : PPointer;
    327327       end;
    328328
    329     Const
     329           
     330      PExceptAddr = ^TExceptAddr;
     331      TExceptAddr = record
     332        buf       : pjmp_buf;
     333        next      : PExceptAddr;
     334        frametype : Longint;
     335      end;
     336     
     337     Const
    330338       ExceptProc : TExceptProc = Nil;
    331339       RaiseProc : TExceptProc = Nil;
    332340       RaiseMaxFrameCount : Longint = 16;
    333341
    334342    Function RaiseList : PExceptObject;
     343   
     344    // Used for microthreading context switching
     345    Function GetExceptionAddrStack : PExceptAddr;
     346    Function GetExceptionObjectStack : PExceptObject;
     347    procedure SetExceptionAddrStack(Value : PExceptAddr);
     348    procedure SetExceptionObjectStack(Value : PExceptObject);
    335349
    336350    { @abstract(increase exception reference count)
    337351      When leaving an except block, the exception object is normally
Note: See TracBrowser for help on using the repository browser.