From: <ou...@us...> - 2012-03-04 18:12:45
|
Revision: 3757 http://jcl.svn.sourceforge.net/jcl/?rev=3757&view=rev Author: outchy Date: 2012-03-04 18:12:39 +0000 (Sun, 04 Mar 2012) Log Message: ----------- Disable CPP exceptions for FPC. Add missing unit versioning block in JclCppException.pas. Modified Paths: -------------- trunk/jcl/source/windows/JclCppException.pas trunk/jcl/source/windows/JclHookExcept.pas Modified: trunk/jcl/source/windows/JclCppException.pas =================================================================== --- trunk/jcl/source/windows/JclCppException.pas 2012-03-04 16:42:29 UTC (rev 3756) +++ trunk/jcl/source/windows/JclCppException.pas 2012-03-04 18:12:39 UTC (rev 3757) @@ -48,6 +48,8 @@ SysUtils; {$ENDIF ~HAS_UNITSCOPE} +{$IFDEF BORLAND} + type PJclCppStdException = type Pointer; { mapped to std::exception* via $HPPEMIT } {$EXTERNALSYM PJclCppStdException} @@ -144,6 +146,7 @@ procedure JclUninstallCppExceptionFilter; function JclCppExceptionFilterInstalled: Boolean; +{$ENDIF BORLAND} {$IFDEF UNITVERSIONING} const @@ -159,6 +162,8 @@ implementation +{$IFDEF BORLAND} + uses JclResources, JclHookExcept; @@ -736,5 +741,15 @@ Result := HookInstalled; end; +{$ENDIF BORLAND} + +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} + end. Modified: trunk/jcl/source/windows/JclHookExcept.pas =================================================================== --- trunk/jcl/source/windows/JclHookExcept.pas 2012-03-04 16:42:29 UTC (rev 3756) +++ trunk/jcl/source/windows/JclHookExcept.pas 2012-03-04 18:12:39 UTC (rev 3757) @@ -574,6 +574,7 @@ NewResultExc := NewExceptObj; end; +{$IFDEF BORLAND} function GetCppRtlBase: Pointer; const {$IFDEF COMPILER6} { Delphi/C++Builder 6 } @@ -600,6 +601,7 @@ begin Result := GetCppRtlBase <> TJclPeMapImgHooks.SystemBase; end; +{$ENDIF BORLAND} function JclHookExceptions: Boolean; var @@ -609,8 +611,10 @@ { Detect C++Builder applications and C++ packages loaded into Delphi applications. Hook the C++ RTL regardless of ExceptionsHooked so that users can call JclHookException() after loading a C++ package which might pull in the C++ RTL DLL. } + {$IFDEF BORLAND} if HasCppRtl then - TJclPeMapImgHooks.ReplaceImport (GetCppRtlBase, kernel32, RaiseExceptionAddressCache, @HookedRaiseException); + TJclPeMapImgHooks.ReplaceImport(GetCppRtlBase, kernel32, RaiseExceptionAddressCache, @HookedRaiseException); + {$ENDIF BORLAND} if not ExceptionsHooked then begin Recursive := False; @@ -636,8 +640,10 @@ function JclUnhookExceptions: Boolean; begin + {$IFDEF BORLAND} if HasCppRtl then TJclPeMapImgHooks.ReplaceImport (GetCppRtlBase, kernel32, @HookedRaiseException, @Kernel32_RaiseException); + {$ENDIF BORLAND} if ExceptionsHooked then begin with TJclPeMapImgHooks do This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |