Commit Graph

362 Commits

Author SHA1 Message Date
arseny.kapoulkine
7b1560f4b2 XPath: Added out of memory handling during evaluation
git-svn-id: http://pugixml.googlecode.com/svn/trunk@727 99668b35-9821-0410-8761-19e4c4f06640
2010-09-14 05:28:55 +00:00
arseny.kapoulkine
628197f8c8 XPath: Minor speed/memory improvements
git-svn-id: http://pugixml.googlecode.com/svn/trunk@726 99668b35-9821-0410-8761-19e4c4f06640
2010-09-13 20:34:53 +00:00
arseny.kapoulkine
0f7684b567 XPath: Stack construction refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@725 99668b35-9821-0410-8761-19e4c4f06640
2010-09-13 20:02:04 +00:00
arseny.kapoulkine
0b60037afc XPath: Fixed MSVC7 compilation, removed redundant include
git-svn-id: http://pugixml.googlecode.com/svn/trunk@724 99668b35-9821-0410-8761-19e4c4f06640
2010-09-13 19:01:11 +00:00
arseny.kapoulkine
000b421873 XPath: Added xpath_node_set constructor, redesigned evaluation memory management (alternating stacks instead of heap)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@722 99668b35-9821-0410-8761-19e4c4f06640
2010-09-13 18:37:51 +00:00
arseny.kapoulkine
e25b73936e XPath: Fixed sorting bug
git-svn-id: http://pugixml.googlecode.com/svn/trunk@720 99668b35-9821-0410-8761-19e4c4f06640
2010-09-13 18:13:33 +00:00
arseny.kapoulkine
9f68dec787 XPath: Allocator refactoring: xpath_allocator now only consists of allocator state and can be copied
git-svn-id: http://pugixml.googlecode.com/svn/trunk@719 99668b35-9821-0410-8761-19e4c4f06640
2010-09-13 07:53:53 +00:00
arseny.kapoulkine
1332949522 XPath: self axis now preserves the original set order, optimized remove_duplicates calls
git-svn-id: http://pugixml.googlecode.com/svn/trunk@718 99668b35-9821-0410-8761-19e4c4f06640
2010-09-13 05:07:04 +00:00
arseny.kapoulkine
030e9da0d4 XPath: Minor ast_step processing refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@717 99668b35-9821-0410-8761-19e4c4f06640
2010-09-12 20:50:17 +00:00
arseny.kapoulkine
cae6c066b7 XPath: Minor lang() fix (use ASCII lowercase because language names are ASCII-only anyway)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@716 99668b35-9821-0410-8761-19e4c4f06640
2010-09-11 13:30:49 +00:00
arseny.kapoulkine
b67f104498 XPath: Minor refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@715 99668b35-9821-0410-8761-19e4c4f06640
2010-09-01 17:08:48 +00:00
arseny.kapoulkine
42517f26a9 XPath: Don't use longjmp at all if exceptions are enabled; this solves all problems with GCC SJLJ exceptions
git-svn-id: http://pugixml.googlecode.com/svn/trunk@714 99668b35-9821-0410-8761-19e4c4f06640
2010-09-01 17:01:55 +00:00
arseny.kapoulkine
bfbf61ba93 Added gcc 4.0.1 bogus warning workaround
git-svn-id: http://pugixml.googlecode.com/svn/trunk@710 99668b35-9821-0410-8761-19e4c4f06640
2010-08-30 05:17:21 +00:00
arseny.kapoulkine
fb0f5d8c94 XPath: Added a workaround for MSVC6 wcsstr bug
git-svn-id: http://pugixml.googlecode.com/svn/trunk@708 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 20:58:11 +00:00
arseny.kapoulkine
9266af0664 Fixed longjmp clobber warning in xml_parser::parse
git-svn-id: http://pugixml.googlecode.com/svn/trunk@706 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 19:29:35 +00:00
arseny.kapoulkine
61a94d6223 XPath: Fixed variable memory leaks for MSVC6
git-svn-id: http://pugixml.googlecode.com/svn/trunk@704 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 16:58:57 +00:00
arseny.kapoulkine
343653c916 Fixed BCC and MSVC6 compilation errors and warnings
git-svn-id: http://pugixml.googlecode.com/svn/trunk@703 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 16:28:38 +00:00
arseny.kapoulkine
589947da0b XPath: Minor xpath_string refactoring, minor xpath_string::append fix
git-svn-id: http://pugixml.googlecode.com/svn/trunk@701 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:54:18 +00:00
arseny.kapoulkine
88b4fbcff7 XPath: Fixed substring (3) implementation, optimized substring-after and substring for constant strings
git-svn-id: http://pugixml.googlecode.com/svn/trunk@699 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:53:05 +00:00
arseny.kapoulkine
b81027b00d XPath: Optimized concat (it's now O(n) instead of O(n^2) and there are less allocations)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@698 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:52:36 +00:00
arseny.kapoulkine
b33ac7477c XPath: Introduced optimized sort (quicksort with median of nine and recursion for smaller half, insertion sort for small chunks)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@697 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:52:06 +00:00
arseny.kapoulkine
b1939bd6f8 XPath: Document order comparator refactoring, document order is now a total order even for nodes from different documents
git-svn-id: http://pugixml.googlecode.com/svn/trunk@695 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:51:03 +00:00
arseny.kapoulkine
70115fa9ab Fixed missing attributes for some functions/classes, minor XPath error message changes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@694 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:50:28 +00:00
arseny.kapoulkine
012b712389 XPath: xpath_node attribute constructor now never constructs a non-attribute node
git-svn-id: http://pugixml.googlecode.com/svn/trunk@690 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:47:36 +00:00
arseny.kapoulkine
b75c5360f3 Minor refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@689 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:47:01 +00:00
arseny.kapoulkine
c1bc7a30c3 Removed more deprecated functionality (xpath_type_t type, format_write_bom_utf8 flag, precompute_document_order method)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@686 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:44:41 +00:00
arseny.kapoulkine
f3795e55dd Minor unspecified bool refactoring (removed redundant CW workaround)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@685 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:44:01 +00:00
arseny.kapoulkine
e7b0e52068 XPath: Fixed default variable values, minor algorithm refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@684 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:43:28 +00:00
arseny.kapoulkine
59e034149f XPath: Reworked variable reference parsing, '$ name' and '$foo:*' are now correctly rejected
git-svn-id: http://pugixml.googlecode.com/svn/trunk@682 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:40:38 +00:00
arseny.kapoulkine
23d84cdf7c XPath: Implemented variable support in queries
git-svn-id: http://pugixml.googlecode.com/svn/trunk@680 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:38:43 +00:00
arseny.kapoulkine
c66ffdf720 XPath: Several variable fixes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@678 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:37:03 +00:00
arseny.kapoulkine
1230502989 XPath: Minor refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@677 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:35:47 +00:00
arseny.kapoulkine
7b4141582d XPath: Added variable interface and implementation
git-svn-id: http://pugixml.googlecode.com/svn/trunk@676 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:35:22 +00:00
arseny.kapoulkine
1a59bf3992 XPath: Removed redundant internal function
git-svn-id: http://pugixml.googlecode.com/svn/trunk@674 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:33:40 +00:00
arseny.kapoulkine
86f9ea3c2c Refactoring: Merged two chartype tables
git-svn-id: http://pugixml.googlecode.com/svn/trunk@672 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:32:52 +00:00
arseny.kapoulkine
0e6d53c9e5 Refactoring: merged includes/warnings sections, moved string utilities to anonymous namespace, shared chartype implementation
git-svn-id: http://pugixml.googlecode.com/svn/trunk@671 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:32:24 +00:00
arseny.kapoulkine
9b337a176f XPath: Moved implementation to pugixml.cpp
git-svn-id: http://pugixml.googlecode.com/svn/trunk@670 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:31:55 +00:00
arseny.kapoulkine
fd6b419b2a Removed deprecated wildcard functions, removed deprecated all_elements_by_name
git-svn-id: http://pugixml.googlecode.com/svn/trunk@669 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:31:03 +00:00
arseny.kapoulkine
f711006e80 XPath: xpath_node_set now uses custom allocation functions, minor refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@667 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:29:45 +00:00
arseny.kapoulkine
f2509e0395 XPath: memory_block is now POD (no more offsetof warnings)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@666 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:28:59 +00:00
arseny.kapoulkine
7554e20688 XPath: Context node for evaluate is now an xpath_node (can use attribute contexts)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@663 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:27:29 +00:00
arseny.kapoulkine
91777e5c17 XPath: Fixed evaluate_string for wchar mode
git-svn-id: http://pugixml.googlecode.com/svn/trunk@660 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:24:00 +00:00
arseny.kapoulkine
053a4c0ea7 XPath: Introduced new evaluate_string API (without STL), enabled XPath without STL
git-svn-id: http://pugixml.googlecode.com/svn/trunk@659 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:22:54 +00:00
arseny.kapoulkine
0c5b9341bc XPath: Minor xpath_string refactoring, replaced STL algorithms with equivalent implementations (sort is quadratic for now)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@658 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:21:58 +00:00
arseny.kapoulkine
1e57d99484 XPath: Replaced std::string with xpath_string, refactored normalize_space, namespace_uri and translate
git-svn-id: http://pugixml.googlecode.com/svn/trunk@657 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:21:23 +00:00
arseny.kapoulkine
a33c030d60 Fixed null pointer deallocation
git-svn-id: http://pugixml.googlecode.com/svn/trunk@655 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:20:12 +00:00
arseny.kapoulkine
bc5901dd28 strcpy_insitu improvements: empty string forces deallocation, memory is reclaimed if waste is too great (small string is copied to the large buffer)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@654 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:19:22 +00:00
arseny.kapoulkine
9ec7db4c0c Reduced allocation header for strings from 8/16 to 4 bytes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@653 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:18:22 +00:00
arseny.kapoulkine
1f74bf1edc XPath: Correct out of memory handling for string to number conversion during parsing, added corresponding test
git-svn-id: http://pugixml.googlecode.com/svn/trunk@651 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:16:55 +00:00
arseny.kapoulkine
6a9d59e907 XPath: Final MinGW unwind workaround
git-svn-id: http://pugixml.googlecode.com/svn/trunk@650 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:16:02 +00:00
arseny.kapoulkine
3284cc2f1b XPath: Number to string conversion uses ecvt_s under MSVC8+ (major speedup), minor conversion refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@649 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:15:21 +00:00
arseny.kapoulkine
6b4a375ec3 XPath: Allocator now uses custom allocation functions and has single static page, added out of memory handling during parsing
git-svn-id: http://pugixml.googlecode.com/svn/trunk@647 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:14:15 +00:00
arseny.kapoulkine
56334ccd95 Minor comment fix
git-svn-id: http://pugixml.googlecode.com/svn/trunk@646 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:13:28 +00:00
arseny.kapoulkine
a3d3798726 XPath: Minor refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@645 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:13:05 +00:00
arseny.kapoulkine
84ff2fbd5e XPath: m_ prefix changed to _
git-svn-id: http://pugixml.googlecode.com/svn/trunk@644 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:12:27 +00:00
arseny.kapoulkine
d4d82366af XPath: Added workaround for MinGW4.5 unwind crash by removing unwind information from longjmp stack
git-svn-id: http://pugixml.googlecode.com/svn/trunk@643 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:11:51 +00:00
arseny.kapoulkine
4662bc9e74 XPath: Minor parsing refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@641 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:10:08 +00:00
arseny.kapoulkine
9b6dc1a585 Added workarounds for all instances of DMC overfetch bug
git-svn-id: http://pugixml.googlecode.com/svn/trunk@640 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:09:34 +00:00
arseny.kapoulkine
608d5bbd79 XPath: Added error offset reporting
git-svn-id: http://pugixml.googlecode.com/svn/trunk@639 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:08:33 +00:00
arseny.kapoulkine
12607d6047 tests: Extended XPath tests
git-svn-id: http://pugixml.googlecode.com/svn/trunk@638 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:07:18 +00:00
arseny.kapoulkine
9292096c56 tests: Added support for XPath without exceptions
git-svn-id: http://pugixml.googlecode.com/svn/trunk@637 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:05:50 +00:00
arseny.kapoulkine
849a5a081b XPath: Initial support for operation without exceptions
git-svn-id: http://pugixml.googlecode.com/svn/trunk@636 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:04:27 +00:00
arseny.kapoulkine
c779ee05ce Minor iterator refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@635 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:03:15 +00:00
arseny.kapoulkine
b88cf138f9 root and offset_debug are now O(1)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@634 99668b35-9821-0410-8761-19e4c4f06640
2010-08-29 15:02:32 +00:00
arseny.kapoulkine
a09d5c0b8e Added null pointer assertion to load_buffer, refactored get_buffer_encoding
git-svn-id: http://pugixml.googlecode.com/svn/trunk@633 99668b35-9821-0410-8761-19e4c4f06640
2010-08-09 13:40:24 +00:00
arseny.kapoulkine
241b998fa3 XPath: Minor refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@631 99668b35-9821-0410-8761-19e4c4f06640
2010-08-05 04:53:56 +00:00
arseny.kapoulkine
a8e5f0ecf0 Removed some redundant code from pugixml.cpp, added internal xml_document::reset() function
git-svn-id: http://pugixml.googlecode.com/svn/trunk@630 99668b35-9821-0410-8761-19e4c4f06640
2010-08-05 04:52:07 +00:00
arseny.kapoulkine
f8c18461e6 XPath: Removed redundant whitespace skipping
git-svn-id: http://pugixml.googlecode.com/svn/trunk@625 99668b35-9821-0410-8761-19e4c4f06640
2010-08-03 12:37:19 +00:00
arseny.kapoulkine
cab68ab328 XPath: Added a workaround for DMC bug
git-svn-id: http://pugixml.googlecode.com/svn/trunk@622 99668b35-9821-0410-8761-19e4c4f06640
2010-08-03 09:30:46 +00:00
arseny.kapoulkine
f533923f1f XPath: Fixed leaks in case query compilation failed
git-svn-id: http://pugixml.googlecode.com/svn/trunk@621 99668b35-9821-0410-8761-19e4c4f06640
2010-08-03 08:05:32 +00:00
arseny.kapoulkine
64d98cdcfc CDATA section is output as multiple sections if it contains ]]>
git-svn-id: http://pugixml.googlecode.com/svn/trunk@616 99668b35-9821-0410-8761-19e4c4f06640
2010-07-22 13:13:10 +00:00
arseny.kapoulkine
546a0f7561 xml_node::find_node is now not recursive
git-svn-id: http://pugixml.googlecode.com/svn/trunk@614 99668b35-9821-0410-8761-19e4c4f06640
2010-07-22 07:59:11 +00:00
arseny.kapoulkine
93bb5dcb43 XPath: Restored document order sorting optimization (it's now automatic for nodes that were loaded and not significantly altered), minor traversal optimizations
git-svn-id: http://pugixml.googlecode.com/svn/trunk@613 99668b35-9821-0410-8761-19e4c4f06640
2010-07-22 07:54:34 +00:00
arseny.kapoulkine
04085a8875 Fixed stream loading memory leaks in the unlikely case streams have exception mask set, better stream error handling.
git-svn-id: http://pugixml.googlecode.com/svn/trunk@610 99668b35-9821-0410-8761-19e4c4f06640
2010-07-22 05:09:25 +00:00
arseny.kapoulkine
7d24b9b565 Set svn:eol-style to native for all text files
git-svn-id: http://pugixml.googlecode.com/svn/trunk@607 99668b35-9821-0410-8761-19e4c4f06640
2010-07-19 09:57:32 +00:00
arseny.kapoulkine
fc88f09ac1 Fixed alignment padding warning for Xbox 360
git-svn-id: http://pugixml.googlecode.com/svn/trunk@601 99668b35-9821-0410-8761-19e4c4f06640
2010-07-15 09:27:58 +00:00
arseny.kapoulkine
d130e82aaa Changed version in headers
git-svn-id: http://pugixml.googlecode.com/svn/trunk@588 99668b35-9821-0410-8761-19e4c4f06640
2010-07-11 12:06:41 +00:00
arseny.kapoulkine
052a8f2fe0 XPath: Capitalized all error messages
git-svn-id: http://pugixml.googlecode.com/svn/trunk@582 99668b35-9821-0410-8761-19e4c4f06640
2010-07-10 16:53:59 +00:00
arseny.kapoulkine
f4cb6eb737 XPath: Out-of-bounds xpath_node_set access is now undefined
git-svn-id: http://pugixml.googlecode.com/svn/trunk@581 99668b35-9821-0410-8761-19e4c4f06640
2010-07-10 15:48:34 +00:00
arseny.kapoulkine
5811786ccd remove_child and remove_attribute now return operation result
git-svn-id: http://pugixml.googlecode.com/svn/trunk@572 99668b35-9821-0410-8761-19e4c4f06640
2010-07-07 20:10:48 +00:00
arseny.kapoulkine
9adf67be3a Fixed strequalrange so that it matches the description (this also fixes first_element_by_path prefix bug), added more first_element_by_path tests
git-svn-id: http://pugixml.googlecode.com/svn/trunk@570 99668b35-9821-0410-8761-19e4c4f06640
2010-07-07 17:10:51 +00:00
arseny.kapoulkine
e22d38a150 traverse() function is now foolproof against walkers that modify node handles
git-svn-id: http://pugixml.googlecode.com/svn/trunk@568 99668b35-9821-0410-8761-19e4c4f06640
2010-07-07 14:48:46 +00:00
arseny.kapoulkine
aac7a252bf Iterator fixes: added assertions, fixed past-the-end iterator behavior wrt to iterator invalidation and comparisons
git-svn-id: http://pugixml.googlecode.com/svn/trunk@566 99668b35-9821-0410-8761-19e4c4f06640
2010-07-06 20:44:54 +00:00
arseny.kapoulkine
8e0c64401f xml_node::all_elements_by_name is now deprecated
git-svn-id: http://pugixml.googlecode.com/svn/trunk@563 99668b35-9821-0410-8761-19e4c4f06640
2010-07-06 18:51:29 +00:00
arseny.kapoulkine
57564791a3 Minor traverse() refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@561 99668b35-9821-0410-8761-19e4c4f06640
2010-07-06 12:21:38 +00:00
arseny.kapoulkine
8f27f244d0 parse_wnorm_attribute is no longer deprecated (it's part of W3C recommendations, after all)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@557 99668b35-9821-0410-8761-19e4c4f06640
2010-07-01 18:01:12 +00:00
arseny.kapoulkine
8dc819a700 XPath: Argument parsing and position invariance refactoring, reduced AST node size, moved literal string->number conversion to compile time
git-svn-id: http://pugixml.googlecode.com/svn/trunk@549 99668b35-9821-0410-8761-19e4c4f06640
2010-06-28 06:47:08 +00:00
arseny.kapoulkine
819c54e3ae Defined a deprecated xpath_type_t for compatibility
git-svn-id: http://pugixml.googlecode.com/svn/trunk@547 99668b35-9821-0410-8761-19e4c4f06640
2010-06-27 21:11:30 +00:00
arseny.kapoulkine
aeaa1da161 Renamed encoding_t to xml_encoding, renamed xpath_type_t to xpath_value_type
git-svn-id: http://pugixml.googlecode.com/svn/trunk@544 99668b35-9821-0410-8761-19e4c4f06640
2010-06-27 20:05:06 +00:00
arseny.kapoulkine
c7a8f498a7 Renamed name parameter in load_file/save_file to path
git-svn-id: http://pugixml.googlecode.com/svn/trunk@540 99668b35-9821-0410-8761-19e4c4f06640
2010-06-27 11:56:50 +00:00
arseny.kapoulkine
34cbe32773 Added null pointer assertions to as_utf8 and as_wide
git-svn-id: http://pugixml.googlecode.com/svn/trunk@531 99668b35-9821-0410-8761-19e4c4f06640
2010-06-23 17:06:42 +00:00
arseny.kapoulkine
b515d52061 Spelling fixes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@528 99668b35-9821-0410-8761-19e4c4f06640
2010-06-20 08:12:31 +00:00
arseny.kapoulkine
e618138b67 Fixed deprecation warnings for IntelC
git-svn-id: http://pugixml.googlecode.com/svn/trunk@527 99668b35-9821-0410-8761-19e4c4f06640
2010-06-19 18:30:24 +00:00
arseny.kapoulkine
0e84a0b5f4 Replaced _CRT_SECURE macros with #pragma to avoid warnings because of multiple macro definitions/forced includes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@526 99668b35-9821-0410-8761-19e4c4f06640
2010-06-19 18:08:18 +00:00
arseny.kapoulkine
44134f448d Fixed SNC warnings
git-svn-id: http://pugixml.googlecode.com/svn/trunk@525 99668b35-9821-0410-8761-19e4c4f06640
2010-06-19 18:06:14 +00:00
arseny.kapoulkine
7b419ad9ec Automatically disable XPath when either PUGIXML_NO_STL or PUGIXML_NO_EXCEPTIONS is defined
git-svn-id: http://pugixml.googlecode.com/svn/trunk@524 99668b35-9821-0410-8761-19e4c4f06640
2010-06-16 07:48:45 +00:00
arseny.kapoulkine
4394a588c2 XPath: Rewritten number->string conversion using CRT scientific format (much better XPath REC compliance)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@523 99668b35-9821-0410-8761-19e4c4f06640
2010-06-14 18:03:50 +00:00
arseny.kapoulkine
30fbb3e328 Fixed MSVC x64 warning
git-svn-id: http://pugixml.googlecode.com/svn/trunk@522 99668b35-9821-0410-8761-19e4c4f06640
2010-06-13 20:41:12 +00:00
arseny.kapoulkine
ab72b14d17 Internal XML parsing error handling is done via setjmp/longjmp, all allocation errors are now handled correctly (parser returns status_out_of_memory, modification functions return errors); added tests for some out of memory situations
git-svn-id: http://pugixml.googlecode.com/svn/trunk@520 99668b35-9821-0410-8761-19e4c4f06640
2010-06-13 19:24:20 +00:00
arseny.kapoulkine
ce94228629 Fixed IntelC warnings, removed unnecessary hack for BCC
git-svn-id: http://pugixml.googlecode.com/svn/trunk@518 99668b35-9821-0410-8761-19e4c4f06640
2010-06-12 11:09:47 +00:00
arseny.kapoulkine
a562014cc2 Declaration nodes improvements (they now automatically get name "xml", they can't be inserted as a non-document child, document saving prints declaration only if there is none present in the document)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@517 99668b35-9821-0410-8761-19e4c4f06640
2010-06-12 09:04:52 +00:00
arseny.kapoulkine
0ed895d79c Refactored PI/declaration parsing, now non top-level declarations result in parsing errors
git-svn-id: http://pugixml.googlecode.com/svn/trunk@515 99668b35-9821-0410-8761-19e4c4f06640
2010-06-12 07:30:13 +00:00
arseny.kapoulkine
624b5702d7 Rewritten numeric character reference parsing (fixed &#; and &#x; parsing), added more character reference tests
git-svn-id: http://pugixml.googlecode.com/svn/trunk@512 99668b35-9821-0410-8761-19e4c4f06640
2010-06-11 20:39:57 +00:00
arseny.kapoulkine
141d26d3af Minor refactoring (moved unicode utilities to anonymous namespace, moved decode functions to templated class to work around function instantiation bugs, removed optN_to_type)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@511 99668b35-9821-0410-8761-19e4c4f06640
2010-06-11 19:01:40 +00:00
arseny.kapoulkine
45a0392656 Replaced charN_t types with uintN_t (C++0x compatibility)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@504 99668b35-9821-0410-8761-19e4c4f06640
2010-06-06 19:06:15 +00:00
arseny.kapoulkine
9fa82b15f5 Optimized attribute parsing; behavior of parse_wconv changed, it now assumes that parse_eol is set
git-svn-id: http://pugixml.googlecode.com/svn/trunk@503 99668b35-9821-0410-8761-19e4c4f06640
2010-06-04 18:50:26 +00:00
arseny.kapoulkine
f9c7855143 Minor strcpy_insitu optimization for large strings, removed now redundant impl::strcpy
git-svn-id: http://pugixml.googlecode.com/svn/trunk@502 99668b35-9821-0410-8761-19e4c4f06640
2010-06-03 07:12:51 +00:00
arseny.kapoulkine
f8e9905339 Removed redundant function
git-svn-id: http://pugixml.googlecode.com/svn/trunk@491 99668b35-9821-0410-8761-19e4c4f06640
2010-06-01 06:39:55 +00:00
arseny.kapoulkine
a248138ced Constant deprecation is disabled only on old IntelC, removed deprecation warnings with appropriate define instead of disabling warning via pragma
git-svn-id: http://pugixml.googlecode.com/svn/trunk@489 99668b35-9821-0410-8761-19e4c4f06640
2010-06-01 05:40:03 +00:00
arseny.kapoulkine
1f8ba5aa60 XPath: Added check for fpclassify presence before use
git-svn-id: http://pugixml.googlecode.com/svn/trunk@488 99668b35-9821-0410-8761-19e4c4f06640
2010-05-31 17:33:55 +00:00
arseny.kapoulkine
88bdad514c XPath: Slightly optimized lexer
git-svn-id: http://pugixml.googlecode.com/svn/trunk@487 99668b35-9821-0410-8761-19e4c4f06640
2010-05-31 16:57:51 +00:00
arseny.kapoulkine
4c0e67ae92 XPath: Replaced backtracking with lookahead in absolute path parsing
git-svn-id: http://pugixml.googlecode.com/svn/trunk@485 99668b35-9821-0410-8761-19e4c4f06640
2010-05-31 16:53:13 +00:00
arseny.kapoulkine
18848ef589 Fixed DMC compilation
git-svn-id: http://pugixml.googlecode.com/svn/trunk@484 99668b35-9821-0410-8761-19e4c4f06640
2010-05-31 16:12:16 +00:00
arseny.kapoulkine
a2433c90a2 XPath: Removed separate semantics checking pass, types are verified during parsing
git-svn-id: http://pugixml.googlecode.com/svn/trunk@482 99668b35-9821-0410-8761-19e4c4f06640
2010-05-31 11:45:03 +00:00
arseny.kapoulkine
f1bfe4cc64 Simplified fp specials handling in XPath (using common faster implementation for both MSVC and BCC)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@480 99668b35-9821-0410-8761-19e4c4f06640
2010-05-31 07:56:13 +00:00
arseny.kapoulkine
51bb70cdcf Changed fp specials handling in XPath (using fpclassify/fpclass where possible, NaN generation is based on float QNaN, removed magic double constants/byte arrays)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@479 99668b35-9821-0410-8761-19e4c4f06640
2010-05-31 07:41:54 +00:00
arseny.kapoulkine
555a184f4f Fixed XPath parsing (numbers of the form \d+\. are now parsed correctly, stray colon does not act as eof token)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@476 99668b35-9821-0410-8761-19e4c4f06640
2010-05-30 20:44:15 +00:00
arseny.kapoulkine
d582a3f374 Fixed node tests for attributes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@472 99668b35-9821-0410-8761-19e4c4f06640
2010-05-30 07:53:06 +00:00
arseny.kapoulkine
c436c32e6c Fixed descendant-or-self axis for attributes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@468 99668b35-9821-0410-8761-19e4c4f06640
2010-05-29 22:52:40 +00:00
arseny.kapoulkine
1c567decca Fixed following:: and preceding:: axes for attribute nodes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@466 99668b35-9821-0410-8761-19e4c4f06640
2010-05-29 20:11:36 +00:00
arseny.kapoulkine
d3419f2f4b Added round_nearest_nzero explanation
git-svn-id: http://pugixml.googlecode.com/svn/trunk@462 99668b35-9821-0410-8761-19e4c4f06640
2010-05-29 13:12:46 +00:00
arseny.kapoulkine
f262cbb6be XPath round() is now fully compliant
git-svn-id: http://pugixml.googlecode.com/svn/trunk@461 99668b35-9821-0410-8761-19e4c4f06640
2010-05-29 13:11:32 +00:00
arseny.kapoulkine
c3f4423e98 Very minor XPath refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@459 99668b35-9821-0410-8761-19e4c4f06640
2010-05-29 09:02:33 +00:00
arseny.kapoulkine
7e94e0c5ef Removed redundant template
git-svn-id: http://pugixml.googlecode.com/svn/trunk@457 99668b35-9821-0410-8761-19e4c4f06640
2010-05-26 05:17:13 +00:00
arseny.kapoulkine
cd9bc5fa83 Added support for Sun C++ compiler
git-svn-id: http://pugixml.googlecode.com/svn/trunk@452 99668b35-9821-0410-8761-19e4c4f06640
2010-05-25 21:46:07 +00:00
arseny.kapoulkine
75a0d2379a Updated version, updated changelog, minor Doxygen fixes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@449 99668b35-9821-0410-8761-19e4c4f06640
2010-05-25 19:24:32 +00:00
arseny.kapoulkine
c88b4ca2c2 Internal charN_t types now use fixed size uintN_t types
git-svn-id: http://pugixml.googlecode.com/svn/trunk@448 99668b35-9821-0410-8761-19e4c4f06640
2010-05-25 17:27:29 +00:00
arseny.kapoulkine
6e2521830f Optimized utf8 decoding
git-svn-id: http://pugixml.googlecode.com/svn/trunk@447 99668b35-9821-0410-8761-19e4c4f06640
2010-05-25 16:50:03 +00:00
arseny.kapoulkine
1046fe1f7b Optimized utf8 -> wchar_t conversion, replaced assert with static assert
git-svn-id: http://pugixml.googlecode.com/svn/trunk@446 99668b35-9821-0410-8761-19e4c4f06640
2010-05-25 13:47:37 +00:00
arseny.kapoulkine
ece9147611 Changed memory management so that the document node lives inside document; this way a default-constructed document does not allocate any dynamic memory
git-svn-id: http://pugixml.googlecode.com/svn/trunk@445 99668b35-9821-0410-8761-19e4c4f06640
2010-05-25 07:55:44 +00:00
arseny.kapoulkine
4e05568c4d Fixed BCC and MSVC6 compilation
git-svn-id: http://pugixml.googlecode.com/svn/trunk@444 99668b35-9821-0410-8761-19e4c4f06640
2010-05-25 07:54:36 +00:00
arseny.kapoulkine
7c01cf8df3 Nodes/attributes with empty names now are printed as :anonymous
git-svn-id: http://pugixml.googlecode.com/svn/trunk@441 99668b35-9821-0410-8761-19e4c4f06640
2010-05-21 05:50:53 +00:00
arseny.kapoulkine
e31d977c80 Optimized debug mode parsing/saving by order of magnitude
git-svn-id: http://pugixml.googlecode.com/svn/trunk@440 99668b35-9821-0410-8761-19e4c4f06640
2010-05-20 22:15:23 +00:00
arseny.kapoulkine
4c7d82fa5b More compare_eq/rel refactoring
git-svn-id: http://pugixml.googlecode.com/svn/trunk@439 99668b35-9821-0410-8761-19e4c4f06640
2010-05-20 22:11:19 +00:00
arseny.kapoulkine
ba1b2017db as_* functions now all use strto*/wcsto* functions; this unifies the behavior and fixes large unsigned integer parsing in as_uint
git-svn-id: http://pugixml.googlecode.com/svn/trunk@438 99668b35-9821-0410-8761-19e4c4f06640
2010-05-20 20:35:49 +00:00
arseny.kapoulkine
1f5be930d0 Assume that all compilers (except Microsoft) have stdint.h
git-svn-id: http://pugixml.googlecode.com/svn/trunk@437 99668b35-9821-0410-8761-19e4c4f06640
2010-05-20 20:18:59 +00:00
arseny.kapoulkine
31c4cb2d8b XPath refactoring (ast_filter/filter_posinv/predicates use the same function, removed greater* specializations for compare_rel, starts_with is used more extensively, const-correctness fixes)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@425 99668b35-9821-0410-8761-19e4c4f06640
2010-05-17 06:54:06 +00:00
arseny.kapoulkine
697a5de5db Fixed GCC build
git-svn-id: http://pugixml.googlecode.com/svn/trunk@419 99668b35-9821-0410-8761-19e4c4f06640
2010-05-12 21:36:22 +00:00
arseny.kapoulkine
544a527abd Fixed incorrect allocator pointer in pages during parsing
git-svn-id: http://pugixml.googlecode.com/svn/trunk@415 99668b35-9821-0410-8761-19e4c4f06640
2010-05-11 06:55:07 +00:00
arseny.kapoulkine
157f720e12 Various test compilation fixes
git-svn-id: http://pugixml.googlecode.com/svn/trunk@414 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10 21:36:05 +00:00
arseny.kapoulkine
7bda2cb529 Implemented better DOCTYPE parsing, added more DOCTYPE tests
git-svn-id: http://pugixml.googlecode.com/svn/trunk@409 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10 19:15:44 +00:00
arseny.kapoulkine
a6dc5ff70b Optimized memory consumption (removed last_child and last_attribute, sibling/attribute lists are now one-way cyclic)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@405 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10 16:38:22 +00:00
arseny.kapoulkine
4a90b861d9 Minor allocation refactoring and optimization
git-svn-id: http://pugixml.googlecode.com/svn/trunk@404 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10 14:58:28 +00:00
arseny.kapoulkine
9441757ef6 Internal iterator constructors are now private, added empty document test
git-svn-id: http://pugixml.googlecode.com/svn/trunk@403 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10 13:31:38 +00:00
arseny.kapoulkine
14bda69d0d Optimized xml_document::destroy
git-svn-id: http://pugixml.googlecode.com/svn/trunk@402 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10 12:21:51 +00:00
arseny.kapoulkine
47c23efe62 Reworked DOM memory allocation scheme (name/value allocations use the same pages as node/attribute structures, pages are now deallocated when completely free)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@401 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10 08:59:48 +00:00
arseny.kapoulkine
5ff56a6d68 Removed document order optimization (it helps on a tiny percentage of queries), XPath tests now compute their own order
git-svn-id: http://pugixml.googlecode.com/svn/trunk@400 99668b35-9821-0410-8761-19e4c4f06640
2010-05-09 20:37:49 +00:00
arseny.kapoulkine
464d0f4ff9 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
2010-05-09 17:53:59 +00:00
arseny.kapoulkine
427714178e Minor loading functions refactoring, fixed XPath append_node for MSVC10
git-svn-id: http://pugixml.googlecode.com/svn/trunk@395 99668b35-9821-0410-8761-19e4c4f06640
2010-05-09 17:25:35 +00:00
arseny.kapoulkine
3a9d992883 Removed std::string and contents_push from XPath parsing
git-svn-id: http://pugixml.googlecode.com/svn/trunk@393 99668b35-9821-0410-8761-19e4c4f06640
2010-05-09 10:20:17 +00:00