mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-06 14:58:25 +02:00
* Define RTTI visibilities
This commit is contained in:
parent
b4ff9b71d3
commit
50d72bb559
@ -11,6 +11,13 @@
|
|||||||
|
|
||||||
**********************************************************************}
|
**********************************************************************}
|
||||||
|
|
||||||
|
{$IF DEFINED(CPU8) OR DEFINED(CPU16)}
|
||||||
|
{ disable the extended RTTI for the RTL/FCL on these targets; the user can of
|
||||||
|
course still enable it for their own classes if needed (and published
|
||||||
|
properties and methods are accessible using the legacy RTTI as well) }
|
||||||
|
{$DEFINE SMALLRTTI}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{$PUSH}
|
{$PUSH}
|
||||||
{$MINENUMSIZE 1 this saves a lot of memory }
|
{$MINENUMSIZE 1 this saves a lot of memory }
|
||||||
|
|
||||||
@ -26,6 +33,23 @@ type
|
|||||||
tkDynArray,tkInterfaceRaw,tkProcVar,tkUString,tkUChar,
|
tkDynArray,tkInterfaceRaw,tkProcVar,tkUString,tkUChar,
|
||||||
tkHelper,tkFile,tkClassRef,tkPointer);
|
tkHelper,tkFile,tkClassRef,tkPointer);
|
||||||
|
|
||||||
|
TVisibilityClass = (vcPrivate, vcProtected, vcPublic, vcPublished);
|
||||||
|
TVisibilityClasses = set of TVisibilityClass;
|
||||||
|
|
||||||
|
{$MINENUMSIZE DEFAULT}
|
||||||
|
|
||||||
|
const
|
||||||
|
{$IFNDEF SMALLRTTI}
|
||||||
|
DefaultFieldRttiVisibility = [vcPrivate..vcPublished];
|
||||||
|
DefaultMethodRttiVisibility = [vcPublic..vcPublished];
|
||||||
|
DefaultPropertyRttiVisibility = [vcPublic..vcPublished];
|
||||||
|
{$ELSE SMALLRTTI}
|
||||||
|
DefaultFieldRttiVisibility = [];
|
||||||
|
DefaultMethodRttiVisibility = [];
|
||||||
|
DefaultPropertyRttiVisibility = [];
|
||||||
|
{$ENDIF SMALLRTTI}
|
||||||
|
|
||||||
|
|
||||||
{$POP}
|
{$POP}
|
||||||
|
|
||||||
const
|
const
|
||||||
|
Loading…
Reference in New Issue
Block a user