--- sal/cpprt/operators_new_delete.cxx.orig 2014-09-19 17:58:40 UTC +++ sal/cpprt/operators_new_delete.cxx @@ -68,7 +68,7 @@ struct AllocatorTraits { n = std::max(n, std::size_t(1)); #if OSL_DEBUG_LEVEL > 0 - n += sizeof(signature_type); + n += 2*sizeof(signature_type); #endif /* OSL_DEBUG_LEVEL */ return n; } @@ -77,7 +77,7 @@ struct AllocatorTraits { #if OSL_DEBUG_LEVEL > 0 memcpy (p, m_signature, sizeof(signature_type)); - p = static_cast(p) + sizeof(signature_type); + p = static_cast(p) + 2*sizeof(signature_type); #endif /* OSL_DEBUG_LEVEL */ return p; } @@ -85,7 +85,7 @@ struct AllocatorTraits void* fini (void * p) const SAL_THROW(()) { #if OSL_DEBUG_LEVEL > 0 - p = static_cast(p) - sizeof(signature_type); + p = static_cast(p) - 2*sizeof(signature_type); if (memcmp (p, m_signature, sizeof(signature_type)) != 0) { OSL_ENSURE(0, "operator delete mismatch"); --- sal/rtl/source/alloc_cache.c.orig 2016-06-21 21:57:07 UTC +++ sal/rtl/source/alloc_cache.c @@ -894,7 +894,9 @@ rtl_cache_activate ( if (objalign == 0) { /* determine default alignment */ - if (objsize >= RTL_MEMORY_ALIGNMENT_8) + if (objsize >= RTL_MEMORY_ALIGNMENT_16) + objalign = RTL_MEMORY_ALIGNMENT_16; + else if (objsize >= RTL_MEMORY_ALIGNMENT_8) objalign = RTL_MEMORY_ALIGNMENT_8; else objalign = RTL_MEMORY_ALIGNMENT_4; --- sal/rtl/source/alloc_global.c.orig 2016-06-21 21:57:06 UTC +++ sal/rtl/source/alloc_global.c @@ -75,8 +75,8 @@ static rtl_cache_type * g_alloc_caches[R 0, }; -#define RTL_MEMALIGN 8 -#define RTL_MEMALIGN_SHIFT 3 +#define RTL_MEMALIGN 16 +#define RTL_MEMALIGN_SHIFT 4 static rtl_cache_type * g_alloc_table[RTL_MEMORY_CACHED_LIMIT >> RTL_MEMALIGN_SHIFT] = { --- sal/rtl/source/alloc_impl.h.orig 2014-09-19 17:59:16 UTC +++ sal/rtl/source/alloc_impl.h @@ -45,6 +45,12 @@ extern "C" { #define RTL_MEMORY_ALIGNMENT_8 sizeof(void*) #endif /* SAL_TYPES_ALIGNMENT8 */ +#if defined(SAL_TYPES_ALIGNMENT16) && SAL_TYPES_ALIGNMENT16 > 1 +#define RTL_MEMORY_ALIGNMENT_16 SAL_TYPES_ALIGNMENT16 +#else +#define RTL_MEMORY_ALIGNMENT_16 16 +#endif /* SAL_TYPES_ALIGNMENT16 */ + #if 0 /* @@@ */ #define RTL_MEMORY_ALIGNMENT_1 8 #define RTL_MEMORY_ALIGNMENT_2 (sizeof(void*) * 2)