Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-09-01 06:46:34 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-09-01 06:46:34 +0400
commit9ad5f32fc0e0396257cfdace04c4f12490cdb926 (patch)
tree3419f54355beba0963694829488ab747f5c26ff3 /intern/guardedalloc
parent2924a02a3561eed7899d5087f2a7a6c31529e18f (diff)
use strict flags for guarded alloc
Diffstat (limited to 'intern/guardedalloc')
-rw-r--r--intern/guardedalloc/MEM_guardedalloc.h6
-rw-r--r--intern/guardedalloc/intern/mallocn.c46
2 files changed, 29 insertions, 23 deletions
diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h
index 0939fe1cf86..d5ba2f5bd68 100644
--- a/intern/guardedalloc/MEM_guardedalloc.h
+++ b/intern/guardedalloc/MEM_guardedalloc.h
@@ -190,7 +190,7 @@ extern "C" {
* Are the start/end block markers still correct ?
*
* @retval 0 for correct memory, 1 for corrupted memory. */
- int MEM_check_memory_integrity(void);
+ bool MEM_check_memory_integrity(void);
/** Set thread locking functions for safe memory allocation from multiple
* threads, pass NULL pointers to disable thread locking again. */
@@ -207,13 +207,13 @@ extern "C" {
/** Get mapped memory usage. */
uintptr_t MEM_get_mapped_memory_in_use(void);
/** Get amount of memory blocks in use. */
- int MEM_get_memory_blocks_in_use(void);
+ unsigned int MEM_get_memory_blocks_in_use(void);
/** Reset the peak memory statistic to zero. */
void MEM_reset_peak_memory(void);
/** Get the peak memory usage in bytes, including mmap allocations. */
- uintptr_t MEM_get_peak_memory(void)
+ size_t MEM_get_peak_memory(void)
#if MEM_GNU_ATTRIBUTES
__attribute__((warn_unused_result))
#endif
diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c
index 34e8c79f2fd..380ca98ba27 100644
--- a/intern/guardedalloc/intern/mallocn.c
+++ b/intern/guardedalloc/intern/mallocn.c
@@ -37,6 +37,9 @@
#include <stdarg.h>
#include <sys/types.h>
+/* to ensure strict conversions */
+#include "../../source/blender/blenlib/BLI_strict_flags.h"
+
/* mmap exception */
#if defined(WIN32)
# include "mmap_win.h"
@@ -61,15 +64,6 @@
#include "atomic_ops.h"
-/* Blame Microsoft for LLP64 and no inttypes.h, quick workaround needed: */
-#if defined(WIN64)
-# define SIZET_FORMAT "%I64u"
-# define SIZET_ARG(a) ((unsigned long long)(a))
-#else
-# define SIZET_FORMAT "%lu"
-# define SIZET_ARG(a) ((unsigned long)(a))
-#endif
-
/* Only for debugging:
* store original buffer's name when doing MEM_dupallocN
* helpful to profile issues with non-freed "dup_alloc" buffers,
@@ -118,6 +112,18 @@ static void memcount_raise(const char *name)
}
#endif
+/* Blame Microsoft for LLP64 and no inttypes.h, quick workaround needed: */
+#if defined(WIN64)
+# define SIZET_FORMAT "%I64u"
+# define SIZET_ARG(a) ((unsigned long long)(a))
+#else
+# define SIZET_FORMAT "%lu"
+# define SIZET_ARG(a) ((unsigned long)(a))
+#endif
+
+#define SIZET_ALIGN_4(len) ((len + 3) & ~(size_t)3)
+
+
/* --------------------------------------------------------------------- */
/* Data definition */
/* --------------------------------------------------------------------- */
@@ -227,7 +233,7 @@ static void (*error_callback)(const char *) = NULL;
static void (*thread_lock_callback)(void) = NULL;
static void (*thread_unlock_callback)(void) = NULL;
-static int malloc_debug_memset = 0;
+static bool malloc_debug_memset = false;
#ifdef malloc
#undef malloc
@@ -298,7 +304,7 @@ static void mem_unlock_thread(void)
thread_unlock_callback();
}
-int MEM_check_memory_integrity(void)
+bool MEM_check_memory_integrity(void)
{
const char *err_val = NULL;
MemHead *listend;
@@ -325,7 +331,7 @@ void MEM_set_lock_callback(void (*lock)(void), void (*unlock)(void))
void MEM_set_memory_debug(void)
{
- malloc_debug_memset = 1;
+ malloc_debug_memset = true;
}
size_t MEM_allocN_len(const void *vmemh)
@@ -518,7 +524,7 @@ void *MEM_mallocN(size_t len, const char *str)
{
MemHead *memh;
- len = (len + 3) & ~3; /* allocate in units of 4 */
+ len = SIZET_ALIGN_4(len);
memh = (MemHead *)malloc(len + sizeof(MemHead) + sizeof(MemTail));
@@ -543,7 +549,7 @@ void *MEM_callocN(size_t len, const char *str)
{
MemHead *memh;
- len = (len + 3) & ~3; /* allocate in units of 4 */
+ len = SIZET_ALIGN_4(len);
memh = (MemHead *)calloc(len + sizeof(MemHead) + sizeof(MemTail), 1);
@@ -566,7 +572,7 @@ void *MEM_mapallocN(size_t len, const char *str)
{
MemHead *memh;
- len = (len + 3) & ~3; /* allocate in units of 4 */
+ len = SIZET_ALIGN_4(len);
#if defined(WIN32)
/* our windows mmap implementation is not thread safe */
@@ -632,7 +638,7 @@ void MEM_printmemlist_stats(void)
{
MemHead *membl;
MemPrintBlock *pb, *printblock;
- int totpb, a, b;
+ unsigned int totpb, a, b;
#ifdef HAVE_MALLOC_H
size_t mem_in_use_slop;
#endif
@@ -1078,9 +1084,9 @@ static const char *check_memlist(MemHead *memh)
return(name);
}
-uintptr_t MEM_get_peak_memory(void)
+size_t MEM_get_peak_memory(void)
{
- uintptr_t _peak_mem;
+ size_t _peak_mem;
mem_lock_thread();
_peak_mem = peak_mem;
@@ -1118,9 +1124,9 @@ uintptr_t MEM_get_mapped_memory_in_use(void)
return _mmap_in_use;
}
-int MEM_get_memory_blocks_in_use(void)
+unsigned int MEM_get_memory_blocks_in_use(void)
{
- int _totblock;
+ unsigned int _totblock;
mem_lock_thread();
_totblock = totblock;