diff options
Diffstat (limited to 'rtl/inc/astrings.inc')
-rw-r--r-- | rtl/inc/astrings.inc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/rtl/inc/astrings.inc b/rtl/inc/astrings.inc index 1d6d4253c1..bf509c1dab 100644 --- a/rtl/inc/astrings.inc +++ b/rtl/inc/astrings.inc @@ -539,16 +539,10 @@ begin end; -Procedure fpc_AnsiStr_CheckZero(p : pointer);[Public,Alias : 'FPC_ANSISTR_CHECKZERO']; compilerproc; -begin - if p=nil then - HandleErrorFrame(201,get_frame); -end; - -Procedure fpc_AnsiStr_CheckRange(len,index : SizeInt);[Public,Alias : 'FPC_ANSISTR_RANGECHECK']; compilerproc; +Procedure fpc_AnsiStr_CheckRange(p: Pointer; index: SizeInt);[Public,Alias : 'FPC_ANSISTR_RANGECHECK']; compilerproc; begin - if (index>len) or (Index<1) then + if (p=nil) or (index>PAnsiRec(p-FirstOff)^.Len) or (Index<1) then HandleErrorFrame(201,get_frame); end; @@ -1060,6 +1054,13 @@ begin Move (Buf^,Pointer(S)^,Len); end; +Procedure SetString (Out S : AnsiString; Buf : PWideChar; Len : SizeInt); +begin + if (Buf<>nil) and (Len>0) then + widestringmanager.Wide2AnsiMoveProc(Buf,S,Len) + else + SetLength(S, Len); +end; function upcase(const s : ansistring) : ansistring; var |