mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 10:39:40 +01:00 
			
		
		
		
	+ Support custom variants in VarIsClear
* TCustomVariantType.IsClear simply returns False (since its VType can never have values for standard variants) git-svn-id: trunk@16457 -
This commit is contained in:
		
							parent
							
								
									7dd93b1282
								
							
						
					
					
						commit
						3b910d9eb2
					
				@ -2854,12 +2854,15 @@ function VarIsClear(const V: Variant): Boolean;
 | 
			
		||||
 | 
			
		||||
Var
 | 
			
		||||
  VT : TVarType;
 | 
			
		||||
 | 
			
		||||
  CustomType: TCustomVariantType;
 | 
			
		||||
begin
 | 
			
		||||
  VT:=TVarData(V).vType and varTypeMask;
 | 
			
		||||
  Result:=(VT=varEmpty) or
 | 
			
		||||
          (((VT=varDispatch) or (VT=varUnknown))
 | 
			
		||||
           and (TVarData(V).vDispatch=Nil));
 | 
			
		||||
  if VT<CFirstUserType then
 | 
			
		||||
    Result:=(VT=varEmpty) or
 | 
			
		||||
            (((VT=varDispatch) or (VT=varUnknown))
 | 
			
		||||
             and (TVarData(V).vDispatch=Nil))
 | 
			
		||||
   else
 | 
			
		||||
     Result:=FindCustomVariantType(VT,CustomType) and CustomType.IsClear(TVarData(V));
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3878,14 +3881,8 @@ end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function TCustomVariantType.IsClear(const V: TVarData): Boolean;
 | 
			
		||||
 | 
			
		||||
Var
 | 
			
		||||
  VT : TVarType;
 | 
			
		||||
  
 | 
			
		||||
begin
 | 
			
		||||
  VT:=V.vType and varTypeMask;
 | 
			
		||||
  Result:=(VT=varEmpty) or (((VT=varDispatch) or (VT=varUnknown))
 | 
			
		||||
                            and (TVarData(V).vDispatch=Nil));
 | 
			
		||||
  result:=False;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user