Age | Commit message (Collapse) | Author |
|
|
|
Switch to malloc and manually aligning the pointer to the page boundary.
mmap is much slower than malloc; this change makes tests ~4x faster.
|
|
The type of the variable is now initialized correctly in the ctor, so that there
is no interim invalid state.
|
|
Since the type of the set was updated before assignment, assigning in
out-of-memory condition could change the type to not match the content.
|
|
If xml_writer::write throws an exception while being called from flush(), the
exception is thrown from destructor. Clang in C++11 mode calls std::terminate
in this case.
|
|
Slightly reword format_indent description.
|
|
Fix code style and revert redundant parameters/whitespace changes.
Also remove format_each_attribute_on_new_line - we're only introducing one
extra formatting flag. The flag implies format_indent but does not include its
bitmask.
Also add a few more tests.
Fixes #14.
|
|
git://github.com/halex2005/pugixml into indent_attributes
|
|
|
|
End of an era.
Make can be used for regular development (Linux/OSX), documentation building
and release packaging.
CMake can be used for regular development (Windows); it's also used by some
Linux distributions.
Continuous integration is now performed by Travis CI and AppVeyor.
|
|
|
|
|
|
|
|
|
|
|
|
Also fix test in wchar_t mode.
|
|
Ensure that all the necessary cleanup is performed in case the allocation fails
with an exception - files are closed, buffers are reclaimed, etc.
Any test that triggers a simulated out-of-memory condition is ran once again
with a throwing allocation function. Unobserved std::bad_alloc count as test
failures and require CHECK_ALLOC_FAIL macro.
Fixes #17.
|
|
Also add tests that verify save_file for absence of FILE leaks.
|
|
Previously attributes that were copied with their node used string sharing,
but standalone attributes that were copied using xml_node::*_copy(xml_attribute)
were not.
|
|
If an out of memory error happens in load_file there's a danger of leaking
the FILE object. Since there is a limited supply of the objects we can easily
test that the leak does not happen.
|
|
|
|
Instead of reallocating the string for every tree level just do two passes
over the ancestor chain.
|
|
as_utf8_end was used with std::string, where writing an extra zero-terminating
character should *probably* always work (at least if size is positive) but is
not ideal.
The only place that needed to zero-terminate was convert_path_heap.
|
|
|
|
Previously there was no guarantee that the tests that check for out of memory
handling behavior are actually correct - e.g. that they correctly simulate out
of memory conditions.
Now every simulated out of memory condition has to be "guarded" using
CHECK_ALLOC_FAIL. It makes sure that every piece of code that is supposed to
cause out-of-memory does so, and that no other code runs out of memory
unnoticed.
|
|
We currently don't allocate/modify any state so there are no issues with this.
|
|
This makes sure that no exception handling mechanisms are used if
PUGXML_NO_EXCEPTIONS is defined.
|
|
When parsing XPath variables, we need to perform a heap allocation; if it
fails, an xpath_exception instead of bad_alloc used to be thrown.
Now we throw the exception of a correct type so that xpath_exception means
'parsing error'.
|
|
|
|
This provides more coverage for #17.
|
|
|
|
|
|
Base directory is now using target basename.
|
|
This eliminates one more hardcoded version from the repo, yay!
|
|
|
|
|
|
It's almost done; the only remaining issue is that some section titles are too long.
|
|
|
|
|
|
|
|
|
|
Also minor wording fixes.
|
|
|
|
|
|
|
|
Users no longer need to #include "pugixml.cpp"
|
|
Mostly added correct quotation to changelog.
|
|
This is mostly done using regex replaces of original Quickbook markup, plus a
bit of manual fixup for multiple references to the single point from different
lines that AsciiDoc does not seem to handle.
|
|
Still need to replace [link ] with actual links.
Also a bunch of small fixes here and there.
|
|
|