From 84c569935dd1205e638436317c20ff9dcaee98a2 Mon Sep 17 00:00:00 2001 From: Berserker Date: Thu, 13 Jun 2019 00:24:19 +0300 Subject: [PATCH] Fixed Externalize functions to always return allocated buffer, even if source is empty string --- VfsExport.pas | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/VfsExport.pas b/VfsExport.pas index 13cc881..fe09653 100644 --- a/VfsExport.pas +++ b/VfsExport.pas @@ -26,22 +26,14 @@ exports function Externalize (const Str: AnsiString): {O} pointer; overload; begin - result := nil; - - if Str <> '' then begin - GetMem(result, Length(Str) + 1); - Utils.CopyMem(Length(Str) + 1, pointer(Str), result); - end; + GetMem(result, Length(Str) + 1); + Utils.CopyMem(Length(Str) + 1, pchar(Str), result); end; function Externalize (const Str: WideString): {O} pointer; overload; begin - result := nil; - - if Str <> '' then begin - GetMem(result, (Length(Str) + 1) * sizeof(WideChar)); - Utils.CopyMem((Length(Str) + 1) * sizeof(WideChar), pointer(Str), result); - end; + GetMem(result, (Length(Str) + 1) * sizeof(WideChar)); + Utils.CopyMem((Length(Str) + 1) * sizeof(WideChar), PWideChar(Str), result); end; function MapDir (const VirtPath, RealPath: PWideChar; OverwriteExisting: boolean; Flags: integer = 0): LONGBOOL; stdcall;