Allow to pass NULL pointers to FreeStrBuf.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5597 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2012-03-10 22:12:44 +00:00
parent d06625075d
commit e39d1e8d10

View File

@@ -6,10 +6,10 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2001-2008 Ullrich von Bassewitz */ /* (C) 2001-2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
/* */ /* */
/* */ /* */
/* This software is provided 'as-is', without any expressed or implied */ /* This software is provided 'as-is', without any expressed or implied */
@@ -115,8 +115,11 @@ StrBuf* NewStrBuf (void)
void FreeStrBuf (StrBuf* B) void FreeStrBuf (StrBuf* B)
/* Free a string buffer */ /* Free a string buffer */
{ {
SB_Done (B); /* Allow NULL pointers */
xfree (B); if (B) {
SB_Done (B);
xfree (B);
}
} }
@@ -179,7 +182,7 @@ static void SB_CheapRealloc (StrBuf* B, unsigned NewSize)
/* Allocate a fresh block */ /* Allocate a fresh block */
B->Buf = xmalloc (NewAllocated); B->Buf = xmalloc (NewAllocated);
/* Remember the new block size */ /* Remember the new block size */
B->Allocated = NewAllocated; B->Allocated = NewAllocated;
} }
@@ -225,7 +228,7 @@ void SB_Terminate (StrBuf* B)
void SB_CopyBuf (StrBuf* Target, const char* Buf, unsigned Size) void SB_CopyBuf (StrBuf* Target, const char* Buf, unsigned Size)
/* Copy Buf to Target, discarding the old contents of Target */ /* Copy Buf to Target, discarding the old contents of Target */
{ {
if (Size) { if (Size) {
if (Target->Allocated < Size) { if (Target->Allocated < Size) {
SB_CheapRealloc (Target, Size); SB_CheapRealloc (Target, Size);