diff options
-rw-r--r-- | src/pugixml.cpp | 78 | ||||
-rw-r--r-- | src/pugixpath.cpp | 4 |
2 files changed, 46 insertions, 36 deletions
diff --git a/src/pugixml.cpp b/src/pugixml.cpp index 3f871f1..51b7791 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -47,6 +47,10 @@ # pragma warn -8066 // unreachable code
#endif
+#ifdef __SNC__
+# pragma diag_suppress=178 // function waS declared but never referenced
+#endif
+
// uintptr_t
#if !defined(_MSC_VER) || _MSC_VER >= 1600
# include <stdint.h>
@@ -309,42 +313,7 @@ namespace pugi global_deallocate(page->memory);
}
- PUGIXML_NO_INLINE void* allocate_memory_oob(size_t size, xml_memory_page*& out_page)
- {
- const size_t large_allocation_threshold = xml_memory_page_size / 4;
-
- xml_memory_page* page = allocate_page(size <= large_allocation_threshold ? xml_memory_page_size : size);
- if (!page) return 0;
-
- if (size <= large_allocation_threshold)
- {
- _root->busy_size = _busy_size;
-
- // insert page at the end of linked list
- page->prev = _root;
- _root->next = page;
- _root = page;
-
- _busy_size = size;
- }
- else
- {
- // insert page before the end of linked list
- assert(_root->prev);
-
- page->prev = _root->prev;
- page->next = _root;
-
- _root->prev->next = page;
- _root->prev = page;
- }
-
- // allocate inside page
- page->busy_size = size;
-
- out_page = page;
- return page->data;
- }
+ void* allocate_memory_oob(size_t size, xml_memory_page*& out_page);
void* allocate_memory(size_t size, xml_memory_page*& out_page)
{
@@ -427,6 +396,43 @@ namespace pugi size_t _busy_size;
};
+ PUGIXML_NO_INLINE void* xml_allocator::allocate_memory_oob(size_t size, xml_memory_page*& out_page)
+ {
+ const size_t large_allocation_threshold = xml_memory_page_size / 4;
+
+ xml_memory_page* page = allocate_page(size <= large_allocation_threshold ? xml_memory_page_size : size);
+ if (!page) return 0;
+
+ if (size <= large_allocation_threshold)
+ {
+ _root->busy_size = _busy_size;
+
+ // insert page at the end of linked list
+ page->prev = _root;
+ _root->next = page;
+ _root = page;
+
+ _busy_size = size;
+ }
+ else
+ {
+ // insert page before the end of linked list
+ assert(_root->prev);
+
+ page->prev = _root->prev;
+ page->next = _root;
+
+ _root->prev->next = page;
+ _root->prev = page;
+ }
+
+ // allocate inside page
+ page->busy_size = size;
+
+ out_page = page;
+ return page->data;
+ }
+
/// A 'name=value' XML attribute structure.
struct xml_attribute_struct
{
diff --git a/src/pugixpath.cpp b/src/pugixpath.cpp index dfc5637..17674fb 100644 --- a/src/pugixpath.cpp +++ b/src/pugixpath.cpp @@ -44,6 +44,10 @@ typedef __int32 int32_t; # pragma warning(disable: 4127) // conditional expression is constant
#endif
+#ifdef __SNC__
+# pragma diag_suppress=237 // controlling expression is constant
+#endif
+
#include <algorithm>
#include <string>
|