From 24d3d5dac40562f22a43eb9934c90165ace92a35 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Mon, 25 Feb 2013 19:06:37 +0000 Subject: AnvilStats: Added ChunkExtract mode of operation, splitting Anvil files into individual chunks. Both original zlibbed chunks and re-gzipped chunks are output. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1223 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/OSSupport/File.cpp | 3 +-- source/OSSupport/GZipFile.cpp | 4 ++-- source/OSSupport/GZipFile.h | 4 +++- 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'source') diff --git a/source/OSSupport/File.cpp b/source/OSSupport/File.cpp index 15a37a36f..bd2670217 100644 --- a/source/OSSupport/File.cpp +++ b/source/OSSupport/File.cpp @@ -94,10 +94,9 @@ bool cFile::Open(const AString & iFileName, eMode iMode) void cFile::Close(void) { - ASSERT(IsOpen()); // You should not close file objects that don't have an open file. - if (!IsOpen()) { + // Closing an unopened file is a legal nop return; } diff --git a/source/OSSupport/GZipFile.cpp b/source/OSSupport/GZipFile.cpp index dbdef3a8b..c57de5198 100644 --- a/source/OSSupport/GZipFile.cpp +++ b/source/OSSupport/GZipFile.cpp @@ -85,7 +85,7 @@ int cGZipFile::ReadRestOfFile(AString & a_Contents) -bool cGZipFile::Write(const AString & a_Contents) +bool cGZipFile::Write(const char * a_Contents, int a_Size) { if (m_File == NULL) { @@ -99,7 +99,7 @@ bool cGZipFile::Write(const AString & a_Contents) return false; } - return (gzwrite(m_File, a_Contents.data(), a_Contents.size()) != 0); + return (gzwrite(m_File, a_Contents, a_Size) != 0); } diff --git a/source/OSSupport/GZipFile.h b/source/OSSupport/GZipFile.h index 10fb447dd..f20b4d11e 100644 --- a/source/OSSupport/GZipFile.h +++ b/source/OSSupport/GZipFile.h @@ -37,7 +37,9 @@ public: int ReadRestOfFile(AString & a_Contents); /// Writes a_Contents into file, compressing it along the way. Returns true if successful. Multiple writes are supported. - bool Write(const AString & a_Contents); + bool Write(const AString & a_Contents) { return Write(a_Contents.data(), (int)(a_Contents.size())); } + + bool Write(const char * a_Data, int a_Size); protected: gzFile m_File; -- cgit v1.2.3