diff options
author | Luca Bonavita <mindrones@gmail.com> | 2010-10-13 18:44:22 +0400 |
---|---|---|
committer | Luca Bonavita <mindrones@gmail.com> | 2010-10-13 18:44:22 +0400 |
commit | 9f05cc59fab2cd3e82be759e46bf4dacd2dbad05 (patch) | |
tree | 416b4c46535acc804fb80ce9d953bc94bf04aecc /doc/guides/blender-guardedalloc.txt | |
parent | a81be2075f6304c18838fa2d26380342ba2f7894 (diff) |
== docs ==
- moved files in proper directories and adapted paths where needed
- deleted doc/oldbugs.txt (asked confirmation to jesterking a week ago in irc)
- still working on doxygen files, for now I'll leave them in doc/
- NOTE: while checking if other files were referring to these files, I noted that
"GPL-license.txt" is also used in the files below:
- release/windows/installer/00.sconsblender.nsi
- release/windows/specific.sh
but these files should't be affected by this commit, but please check :)
Diffstat (limited to 'doc/guides/blender-guardedalloc.txt')
-rw-r--r-- | doc/guides/blender-guardedalloc.txt | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/doc/guides/blender-guardedalloc.txt b/doc/guides/blender-guardedalloc.txt new file mode 100644 index 00000000000..44a9722a4e4 --- /dev/null +++ b/doc/guides/blender-guardedalloc.txt @@ -0,0 +1,57 @@ +MEMORY MANAGEMENT IN BLENDER (guardedalloc) +------------------------------------------- + +NOTE: This file does not cover memutil and smart pointers and rerefence counted + garbage collection, which are contained in the memutil module. + +Blender takes care of dynamic memory allocation using a set of own functions +which are recognizeable through their MEM_ prefix. All memory allocation and +deallocation in blender is done through these functions. + +The following functions are available through MEM_guardedalloc.h: + +For normal operation: +--------------------- + +void *MEM_[mc]allocN(unsigned int len, char * str); + +- nearest ANSI counterpart: malloc() +- str must be a static string describing the memory block (used for debugging +memory management problems) +- returns a memory block of length len +- MEM_callocN clears the memory block to 0 + +void *MEM_dupallocN(void *vmemh); + +- nearest ANSI counterpart: combination malloc() and memcpy() +- returns a pointer to a copy of the given memory area + +short MEM_freeN(void *vmemh); + +- nearest ANSI counterpart: free() +- frees the memory area given by the pointer +- returns 0 on success and !=0 on error + +int MEM_allocN_len(void *vmemh); + +- nearest ANSI counterpart: none known +- returns the length of the given memory area + +For debugging: +-------------- + +void MEM_set_error_stream(FILE*); + +- this sets the file the memory manager should use to output debugging messages +- if the parameter is NULL the messages are suppressed +- default is that messages are suppressed + +void MEM_printmemlist(void); + +- if err_stream is set by MEM_set_error_stream() this function dumps a list of all +currently allocated memory blocks with length and name to the stream + +int MEM_check_memory_integrity(void); + +- this function tests if the internal structures of the memory manager are intact +- returns 0 on success and !=0 on error |