summaryrefslogtreecommitdiff
path: root/src/pugixml.cpp
AgeCommit message (Collapse)Author
2013-08-02Fix _root checking inconsistency in xml_document::destroyarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@955 99668b35-9821-0410-8761-19e4c4f06640
2013-03-20Fix invalid assertion in XPath: reallocation can result in allocating buffer ↵arseny.kapoulkine@gmail.com
of the same size due to pointer-sized alignment git-svn-id: http://pugixml.googlecode.com/svn/trunk@946 99668b35-9821-0410-8761-19e4c4f06640
2013-03-19Fix XPath return type for contains() and string-length()arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@944 99668b35-9821-0410-8761-19e4c4f06640
2012-12-08Work around clang static analysis false positives using extra assertions.arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@943 99668b35-9821-0410-8761-19e4c4f06640
2012-12-07Only include wchar.h in PUGIXML_WCHAR_MODE; use a custom implementation of ↵arseny.kapoulkine@gmail.com
wcslen in case there is no wide character support. git-svn-id: http://pugixml.googlecode.com/svn/trunk@942 99668b35-9821-0410-8761-19e4c4f06640
2012-12-07Fix uninitialized variable in case append_buffer fails with out of memory ↵arseny.kapoulkine@gmail.com
due to buffer copy allocation git-svn-id: http://pugixml.googlecode.com/svn/trunk@941 99668b35-9821-0410-8761-19e4c4f06640
2012-12-07Compatibility fixes (fixed warnings in gcc, msvc7, fixed errors in bcc, cw, ↵arseny.kapoulkine@gmail.com
msvc6) git-svn-id: http://pugixml.googlecode.com/svn/trunk@939 99668b35-9821-0410-8761-19e4c4f06640
2012-12-07Implement xml_node::append_buffer as a faster alternative to assembling ↵arseny.kapoulkine@gmail.com
documents from fragments (compared to parse & clone) git-svn-id: http://pugixml.googlecode.com/svn/trunk@936 99668b35-9821-0410-8761-19e4c4f06640
2012-11-18XPath stack optimization: Reduce convert_number_to_string stack usage by ↵arseny.kapoulkine@gmail.com
reducing mantissa_buffer size and filling resulting string on heap without an extra copy from stack. git-svn-id: http://pugixml.googlecode.com/svn/trunk@933 99668b35-9821-0410-8761-19e4c4f06640
2012-11-18XPath: Fix BCC/DMC compilation (overloading workaround)arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@932 99668b35-9821-0410-8761-19e4c4f06640
2012-11-18XPath stack optimization: Rewrite part of the recursive descent parser to ↵arseny.kapoulkine@gmail.com
precedence climbing to reduce stack usage git-svn-id: http://pugixml.googlecode.com/svn/trunk@931 99668b35-9821-0410-8761-19e4c4f06640
2012-11-17XPath stack optimization: Reduce stack usage during parsing by sharing ↵arseny.kapoulkine@gmail.com
scratch buffer for variable/number parsing (we only need one per parser) git-svn-id: http://pugixml.googlecode.com/svn/trunk@928 99668b35-9821-0410-8761-19e4c4f06640
2012-11-08Fix undefined pointer arithmetic for reverse() and unique() in case the ↵arseny.kapoulkine@gmail.com
range is empty (begin == end) git-svn-id: http://pugixml.googlecode.com/svn/trunk@926 99668b35-9821-0410-8761-19e4c4f06640
2012-10-31Minor refactoringarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@923 99668b35-9821-0410-8761-19e4c4f06640
2012-10-31Adjust parsing so that it is possible to parse a document fragment into an ↵arseny.kapoulkine@gmail.com
existing subtree; can be used to implement append_buffer. git-svn-id: http://pugixml.googlecode.com/svn/trunk@922 99668b35-9821-0410-8761-19e4c4f06640
2012-09-29Fix find_child_by_attribute assertion for attributes with null name/value.arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@920 99668b35-9821-0410-8761-19e4c4f06640
2012-05-02Iterator improvements: safety assertions in xml_named_node_iterator, ↵v1.2arseny.kapoulkine@gmail.com
const_cast workaround for BCC32 bug git-svn-id: http://pugixml.googlecode.com/svn/trunk@915 99668b35-9821-0410-8761-19e4c4f06640
2012-04-12Removed diag_push for SNC since the warning bug is not fixed even in the ↵arseny.kapoulkine@gmail.com
latest version git-svn-id: http://pugixml.googlecode.com/svn/trunk@901 99668b35-9821-0410-8761-19e4c4f06640
2012-04-03Updated version number and copyright year everywherearseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@897 99668b35-9821-0410-8761-19e4c4f06640
2012-04-03Whitespace-only change: set noexpandtab & retab!arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@896 99668b35-9821-0410-8761-19e4c4f06640
2012-04-03Fixed xml_named_node_iterator category for MSVC6/7, IC8 and SunCCarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@895 99668b35-9821-0410-8761-19e4c4f06640
2012-04-03Added xml_attribute::as_string and xml_text::as_string, added default value ↵arseny.kapoulkine@gmail.com
to all as_* member functions git-svn-id: http://pugixml.googlecode.com/svn/trunk@893 99668b35-9821-0410-8761-19e4c4f06640
2012-03-27Introduced xml_named_node_iterator, introduced xml_node::children() and ↵arseny.kapoulkine@gmail.com
xml_node::attributes() for C++11 range-based for loop git-svn-id: http://pugixml.googlecode.com/svn/trunk@889 99668b35-9821-0410-8761-19e4c4f06640
2012-03-27Write BOM as U+FEFF to buffered writer; this makes sure we don't have a very ↵arseny.kapoulkine@gmail.com
small unbuffered write with custom writer implementations git-svn-id: http://pugixml.googlecode.com/svn/trunk@887 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Added format_save_file_text flag for opening the file in text modearseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@883 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Fixed header-only compilationarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@882 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23xml_document::save_file now checks for file I/O errors, fixed compilationarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@881 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Extracted file saving into a separate function, fixed DMC compilation ↵arseny.kapoulkine@gmail.com
(set_value_buffer cast error) git-svn-id: http://pugixml.googlecode.com/svn/trunk@880 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Const-correctness 'fixes' (it's impossible to be const-correct here so ↵arseny.kapoulkine@gmail.com
remove redundant member) git-svn-id: http://pugixml.googlecode.com/svn/trunk@879 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Fixed member shadowing warnings for gccarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@878 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Added xml_text::data() (for regular xml_node operations, i.e. remove_child)arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@876 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Added xml_text &&/|| operators for Borland C++arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@874 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Moved default value selection logic into get_value functions, added ↵arseny.kapoulkine@gmail.com
xml_node::text() accessor git-svn-id: http://pugixml.googlecode.com/svn/trunk@873 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Implemented xml_text helper (work in progress)arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@872 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Extracted xml_attribute value setter/getter code to separate functions (for ↵arseny.kapoulkine@gmail.com
xml_text) git-svn-id: http://pugixml.googlecode.com/svn/trunk@871 99668b35-9821-0410-8761-19e4c4f06640
2012-03-20Fixed strict aliasing violation warning in output buffer conversion via ↵arseny.kapoulkine@gmail.com
union. Fixed BlackBerry NDK -O3 compilation in header-only wchar mode. git-svn-id: http://pugixml.googlecode.com/svn/trunk@869 99668b35-9821-0410-8761-19e4c4f06640
2012-03-20MinGW does not have _wfopen in strict ANSI mode (fixes mingw45 C++0x ↵arseny.kapoulkine@gmail.com
compilation) git-svn-id: http://pugixml.googlecode.com/svn/trunk@867 99668b35-9821-0410-8761-19e4c4f06640
2012-03-20Explicitly ignore fwrite result - nothing else can be done with the current ↵arseny.kapoulkine@gmail.com
writer interface, unfortunately git-svn-id: http://pugixml.googlecode.com/svn/trunk@866 99668b35-9821-0410-8761-19e4c4f06640
2012-03-20Fixed Borland C++ issues when compiling pugixml as header-onlyarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@864 99668b35-9821-0410-8761-19e4c4f06640
2012-03-15Intel C++ 11 has the same warning pop bug... Disable warning popping on all ↵arseny.kapoulkine@gmail.com
Intel C++ versions. Fixes Intel C++ 11 compilation in PUGIXML_NO_STL mode. git-svn-id: http://pugixml.googlecode.com/svn/trunk@862 99668b35-9821-0410-8761-19e4c4f06640
2012-03-14Added PUGIXML_MEMORY constants for tweaking memory behaviour; useful for ↵arseny.kapoulkine@gmail.com
embedded systems or for unusual cases (i.e. thousands of small documents in memory) git-svn-id: http://pugixml.googlecode.com/svn/trunk@860 99668b35-9821-0410-8761-19e4c4f06640
2012-03-14Dereferemce operators in both iterators are now const; this fixes iterator ↵arseny.kapoulkine@gmail.com
compatibility with parts of Boost Iterator (i.e. filter_iterator). It is now possible to damage the state of const_iterator by directly mutating internal handle - working around that introduces additional performance penalties and is generally extremely unlikely to be useful - constant iterator objects are rarely used. git-svn-id: http://pugixml.googlecode.com/svn/trunk@858 99668b35-9821-0410-8761-19e4c4f06640
2012-03-14Implemented optional header-only mode (still need to do a couple of fixes ↵arseny.kapoulkine@gmail.com
for rare compilers, but it seems to work on the majority of configurations). Tests work in header-only mode, but testing is not enabled yet (still a bit more work to be done, and compiling header-only tests is up to 4 times slower, so we can't test more than one-two configurations per toolset) git-svn-id: http://pugixml.googlecode.com/svn/trunk@855 99668b35-9821-0410-8761-19e4c4f06640
2012-03-10Fixed clang warningarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@854 99668b35-9821-0410-8761-19e4c4f06640
2012-03-06Fixed clang compilation warningarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@849 99668b35-9821-0410-8761-19e4c4f06640
2012-03-06Fix 'cast increases required alignment of target type' warning for ↵arseny.kapoulkine@gmail.com
BlackBerry NDK in PUGIXML_WCHAR_MODE (wchar_t is 4 bytes) git-svn-id: http://pugixml.googlecode.com/svn/trunk@842 99668b35-9821-0410-8761-19e4c4f06640
2012-03-06Fix 'cast increases required alignment of target type' warnings (some of ↵arseny.kapoulkine@gmail.com
them are fixed by handling different wchar_t sizes through overloading, others - by casting to void* since we know the alignment restrictions are not violated) git-svn-id: http://pugixml.googlecode.com/svn/trunk@838 99668b35-9821-0410-8761-19e4c4f06640
2012-03-06Removed setjmp from XML parsing; now pugixml does not require setjmp support ↵arseny.kapoulkine@gmail.com
(unless XPath is compiled in with PUGIXML_NO_EXCEPTIONS). Should improve compatibility with certain platforms (also makes pugixml clr:pure-compatible) git-svn-id: http://pugixml.googlecode.com/svn/trunk@837 99668b35-9821-0410-8761-19e4c4f06640
2012-02-19Define uintptr_t for WinCE if necessary (thankfully all MSVC versions seem ↵arseny.kapoulkine@gmail.com
to define _UINTPTR_T_DEFINED appropriately) git-svn-id: http://pugixml.googlecode.com/svn/trunk@833 99668b35-9821-0410-8761-19e4c4f06640
2011-12-20Introduced encoding_latin1 support (conversion on loading, conversion on ↵arseny.kapoulkine
saving, encoding name in declaration in document::save) git-svn-id: http://pugixml.googlecode.com/svn/trunk@829 99668b35-9821-0410-8761-19e4c4f06640