diff options
| author | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2010-05-09 17:53:59 +0000 | 
|---|---|---|
| committer | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2010-05-09 17:53:59 +0000 | 
| commit | 464d0f4ff9e6d30be6a5ccf9da571ce8596840fd (patch) | |
| tree | 9b30bf0604a8f6630db7c15b639fa88936729b25 /src | |
| parent | 78057035d24492e4d73e44fe00132feac13f1dd9 (diff) | |
Added empty stream/buffer tests, fixed null buffer parsing in wchar_t mode
git-svn-id: http://pugixml.googlecode.com/svn/trunk@397 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'src')
| -rw-r--r-- | src/pugixml.cpp | 13 | 
1 files changed, 10 insertions, 3 deletions
diff --git a/src/pugixml.cpp b/src/pugixml.cpp index 37f52fc..27c2960 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -922,10 +922,17 @@ namespace  	{
  		const char_t* data = static_cast<const char_t*>(contents);
 -		out_buffer = is_mutable ? const_cast<char_t*>(data) : static_cast<char_t*>(global_allocate(size > 0 ? size : 1));
 -		out_length = size / sizeof(char_t);
 +		if (is_mutable)
 +		{
 +			out_buffer = const_cast<char_t*>(data);
 +		}
 +		else
 +		{
 +			out_buffer = static_cast<char_t*>(global_allocate(size > 0 ? size : 1));
 +			if (!out_buffer) return false;
 +		}
 -		if (!out_buffer) return false;
 +		out_length = size / sizeof(char_t);
  		impl::convert_wchar_endian_swap(out_buffer, data, out_length);
  | 
