mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 11:24:16 +01:00 
			
		
		
		
	compiler, rtl: add vtUnicodeString (issue #0018560)
git-svn-id: trunk@16833 -
This commit is contained in:
		
							parent
							
								
									e77a9051c8
								
							
						
					
					
						commit
						e4a6221bf3
					
				@ -992,8 +992,9 @@ implementation
 | 
				
			|||||||
        vtWideString    = 15;
 | 
					        vtWideString    = 15;
 | 
				
			||||||
        vtInt64         = 16;
 | 
					        vtInt64         = 16;
 | 
				
			||||||
        vtQWord         = 17;
 | 
					        vtQWord         = 17;
 | 
				
			||||||
        vtAnsiString16 = 18;
 | 
					        vtUnicodeString = 18;
 | 
				
			||||||
        vtAnsiString64 = 19;
 | 
					        vtAnsiString16  = 19;
 | 
				
			||||||
 | 
					        vtAnsiString64  = 20;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    procedure tcgarrayconstructornode.pass_generate_code;
 | 
					    procedure tcgarrayconstructornode.pass_generate_code;
 | 
				
			||||||
      var
 | 
					      var
 | 
				
			||||||
@ -1151,10 +1152,16 @@ implementation
 | 
				
			|||||||
                           freetemp:=false;
 | 
					                           freetemp:=false;
 | 
				
			||||||
                         end
 | 
					                         end
 | 
				
			||||||
                       else
 | 
					                       else
 | 
				
			||||||
                        if is_widestring(lt) or is_unicodestring(lt) then
 | 
					                        if is_widestring(lt) then
 | 
				
			||||||
                         begin
 | 
					                         begin
 | 
				
			||||||
                           vtype:=vtWideString;
 | 
					                           vtype:=vtWideString;
 | 
				
			||||||
                           freetemp:=false;
 | 
					                           freetemp:=false;
 | 
				
			||||||
 | 
					                         end
 | 
				
			||||||
 | 
					                       else
 | 
				
			||||||
 | 
					                        if is_unicodestring(lt) then
 | 
				
			||||||
 | 
					                         begin
 | 
				
			||||||
 | 
					                           vtype:=vtUnicodeString;
 | 
				
			||||||
 | 
					                           freetemp:=false;
 | 
				
			||||||
                         end;
 | 
					                         end;
 | 
				
			||||||
                     end;
 | 
					                     end;
 | 
				
			||||||
                 end;
 | 
					                 end;
 | 
				
			||||||
 | 
				
			|||||||
@ -387,6 +387,7 @@
 | 
				
			|||||||
      vtWideString    = 15;
 | 
					      vtWideString    = 15;
 | 
				
			||||||
      vtInt64         = 16;
 | 
					      vtInt64         = 16;
 | 
				
			||||||
      vtQWord         = 17;
 | 
					      vtQWord         = 17;
 | 
				
			||||||
 | 
					      vtUnicodeString = 18;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   type
 | 
					   type
 | 
				
			||||||
      PVarRec = ^TVarRec;
 | 
					      PVarRec = ^TVarRec;
 | 
				
			||||||
@ -418,6 +419,7 @@
 | 
				
			|||||||
           vtInterface     : (VInterface: Pointer);
 | 
					           vtInterface     : (VInterface: Pointer);
 | 
				
			||||||
           vtWideString    : (VWideString: Pointer);
 | 
					           vtWideString    : (VWideString: Pointer);
 | 
				
			||||||
           vtInt64         : (VInt64: PInt64);
 | 
					           vtInt64         : (VInt64: PInt64);
 | 
				
			||||||
 | 
					           vtUnicodeString : (VUnicodeString: Pointer);
 | 
				
			||||||
           vtQWord         : (VQWord: PQWord);
 | 
					           vtQWord         : (VQWord: PQWord);
 | 
				
			||||||
       end;
 | 
					       end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -310,6 +310,9 @@ begin
 | 
				
			|||||||
                else
 | 
					                else
 | 
				
			||||||
                  if CheckArg(vtAnsiString,false) then
 | 
					                  if CheckArg(vtAnsiString,false) then
 | 
				
			||||||
                    hs:=ansistring(Args[doarg].VAnsiString)
 | 
					                    hs:=ansistring(Args[doarg].VAnsiString)
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                  if CheckArg(vtUnicodeString,false) then
 | 
				
			||||||
 | 
					                    hs:=UnicodeString(Args[doarg].VUnicodeString)
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                  if CheckArg(vtVariant,true) then
 | 
					                  if CheckArg(vtVariant,true) then
 | 
				
			||||||
                    hs:=Args[doarg].VVariant^;
 | 
					                    hs:=Args[doarg].VVariant^;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user