compproc.inc 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. {
  2. This file is part of the Free Pascal Run time library.
  3. Copyright (c) 1999-2000 by the Free Pascal development team
  4. This file contains the declarations of internal compiler helper
  5. routines. That means you can *NOT* call these directly, as they may
  6. be changed or even removed at any time. The only reason they are
  7. included in the interface of the system unit, is so that the
  8. compiler doesn't need special code to access their parameter
  9. list information etc.
  10. Note that due to the "compilerproc" directive, it isn't even possible
  11. to use these routines in your programs.
  12. See the File COPYING.FPC, included in this distribution,
  13. for details about the copyright.
  14. This program is distributed in the hope that it will be useful,
  15. but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17. **********************************************************************}
  18. {$ifdef FPC_HAS_FEATURE_RTTI}
  19. Procedure fpc_Initialize (Data,TypeInfo : pointer); compilerproc;
  20. Procedure fpc_finalize (Data,TypeInfo: Pointer); compilerproc;
  21. Procedure fpc_Addref (Data,TypeInfo : Pointer); compilerproc;
  22. Procedure fpc_DecRef (Data,TypeInfo : Pointer); compilerproc;
  23. procedure fpc_initialize_array(data,typeinfo : pointer;count : SizeInt); compilerproc;
  24. procedure fpc_finalize_array(data,typeinfo : pointer;count : SizeInt); compilerproc;
  25. procedure fpc_addref_array(data,typeinfo: pointer; count: SizeInt); compilerproc;
  26. procedure fpc_decref_array(data,typeinfo: pointer; count: sizeint); compilerproc;
  27. Function fpc_Copy (Src, Dest, TypeInfo : Pointer) : SizeInt; compilerproc;
  28. Procedure fpc_Copy_proc (Src, Dest, TypeInfo : Pointer); compilerproc; inline;
  29. {$endif FPC_HAS_FEATURE_RTTI}
  30. { normalarrdim contains the number of dimensions
  31. a regular array, if any, that contains these unicodestrings. E.g.:
  32. type
  33. tarr = array[1..10,2..9] of unicodestring;
  34. procedure test(out arr: array of tarr);
  35. -> normalarrdim will be 2
  36. Initialises with nil rather than with empty arrays, because there does not
  37. appear to be a generic way to pass an iniitialised (empty) array object and
  38. then clone it for every array position, except for slow serialization (array
  39. instances are clonable in Java, but they don't inherit from a base class other
  40. than java.lang.Object (in which clone is protected) and they only implement
  41. the formal interfaces Clonable and Serializeable (which don't expose any
  42. particular methods). This means that we cannot cast arrays to a generic class
  43. type that supports cloning (except if we add support for calling methods on
  44. dynamic array types, and add an extra parameter to determine the first
  45. level elements types of the array) }
  46. procedure fpc_initialize_array_dynarr(arr: TJObjectArray; normalarrdim: longint);compilerproc;