mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 04:11:35 +01:00 
			
		
		
		
	 27731e342c
			
		
	
	
		27731e342c
		
	
	
	
	
		
			
			implementation is a bit different from that on native targets, the
    result is quite compatible
git-svn-id: branches/jvmbackend@18765 -
		
	
			
		
			
				
	
	
		
			105 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| {
 | |
|     This file is part of the Free Pascal run time library.
 | |
|     Copyright (c) 2011 by Jonas Maebe
 | |
|     member of the Free Pascal development team.
 | |
| 
 | |
|     This file implements the helper routines for TObject
 | |
| 
 | |
|     See the file COPYING.FPC, included in this distribution,
 | |
|     for details about the copyright.
 | |
| 
 | |
|     This program is distributed in the hope that it will be useful,
 | |
|     but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
| 
 | |
|  **********************************************************************
 | |
| }
 | |
| 
 | |
| type
 | |
|   TObject = class(JLObject)
 | |
|    strict private
 | |
|     DestructorCalled: Boolean;
 | |
|    public
 | |
|     procedure Free;
 | |
|     destructor Destroy; virtual;
 | |
|     procedure finalize; override;
 | |
|   end;
 | |
|   TClass = class of TObject;
 | |
| 
 | |
|   TJClass = class of jlobject;
 | |
| 
 | |
| 
 | |
|    const
 | |
|       vtInteger       = 0;
 | |
|       vtBoolean       = 1;
 | |
|       vtChar          = 2;
 | |
|    {$ifndef FPUNONE}
 | |
|       vtExtended      = 3;
 | |
|    {$endif}
 | |
|       vtString        = 4;
 | |
|       vtPointer       = 5;
 | |
|       vtPChar         = 6;
 | |
|       vtObject        = 7;
 | |
|       vtClass         = 8;
 | |
|       vtWideChar      = 9;
 | |
|       vtPWideChar     = 10;
 | |
|       vtAnsiString    = 11;
 | |
|       vtCurrency      = 12;
 | |
|       vtVariant       = 13;
 | |
|       vtInterface     = 14;
 | |
|       vtWideString    = 15;
 | |
|       vtInt64         = 16;
 | |
|       vtQWord         = 17;
 | |
|       vtUnicodeString = 18;
 | |
| 
 | |
|    type
 | |
|      TVarRec = record
 | |
|        VType: sizeint;
 | |
|        Value: JLObject;
 | |
|        procedure init(l: longint);
 | |
|        procedure init(b: boolean);
 | |
|        procedure init(c: ansichar);
 | |
|        procedure init(w: widechar);
 | |
|        procedure init(d: extended);
 | |
|        procedure init(const s: shortstring);
 | |
|        // pointer = object -> use constref to get different signature
 | |
|        procedure init(constref p: pointer);
 | |
|        procedure init(p: pchar);
 | |
|        procedure init(p: JLObject);
 | |
|        procedure init(c: TJClass);
 | |
|        procedure init(p: pwidechar);
 | |
|        procedure init(const a: ansistring);
 | |
|        // currency = int64 -> use constref to get different signature
 | |
|        procedure init(constref c: currency);
 | |
|        // procedure init(const v: variant);
 | |
|        // interface = object
 | |
|        procedure init(const w: widestring);
 | |
|        procedure init(i: int64);
 | |
|        // unicodestring = widestring
 | |
| 
 | |
|        // qword = int64 -> extra parameter to solve signature problem
 | |
|        procedure init(q: qword; unsigned: boolean = true);
 | |
| 
 | |
|        function VInteger: longint;
 | |
|        function VBoolean: boolean;
 | |
|        function VChar: ansichar;
 | |
|        function VWideChar: widechar;
 | |
|        function VExtended: PExtended;
 | |
|        function VDouble: double;
 | |
|        function VString: PShortString;
 | |
|        function VPointer: pointer;
 | |
|        function VPChar: PChar;
 | |
|        function VObject: JLObject;
 | |
|        function VClass: TJClass;
 | |
|        function VPWideChar: PWideChar;
 | |
|        function VAnsiString: Pointer;
 | |
|        function VCurrency: PCurrency;
 | |
|        // function VVariant: PVariant;
 | |
|        function VInterface: JLObject;
 | |
|        function VWideString: Pointer;
 | |
|        function VInt64: PInt64;
 | |
|        function VUnicodeString: Pointer;
 | |
|        function VQWord: PQWord;
 | |
|       end;
 | |
| 
 |