Files @ 6bcb69712a0e
Branch filter:

Location: EI/VirtualLeaf/lib/libxml2/include/libxml/xmlmemory.h - annotation

Roeland Merks
In response to referee's comment:

"However, (although it is probably not important for model developers), I was
still unable to load the model ‘Meinhardt 1976 with growth’ example from the
‘Models’ drop down menu, I got the ‘Fatal error’ message ‘stepwise underflow in

rkqs, with h=0.000000 and htry = 0.100000’. The model did work when I selected
the Meinhardt model in both the Models and the File -> Read leaf menus together,
it would be preferable if the models loaded from the Models menu worked

automatically. I am not sure that the update referred to in the author’s
response permits the loading of ‘My First Model in Virtual Leaf’ from the
‘Models’ drop down menu; I only got a cell that wiggled."

I made the following changes:

- meinhardt_plugin now reads "meinhardt_init.xml" by default
- changed the name of 'My First Model in Virtual Leaf’ to '0: Empty model template (does nothing)' to make it clear that the wiggle cell is the intended behavior for this model example.
- Added default parameter files for Tutorial1A-D and Tutorial2 to prevent variable behavior depending on the last parameter settings used.


--
user: Roeland Merks <roeland.merks@cwi.nl>
branch 'default'
added data/leaves/tutorial1_init.xml
added data/leaves/tutorial2_init.xml
changed data/leaves/auxin_growth.xml
changed data/leaves/meinhardt_init.xml
changed src/TutorialCode/Tutorial0/tutorial0.cpp
changed src/TutorialCode/Tutorial1A/tutorial1A.h
changed src/TutorialCode/Tutorial1B/tutorial1B.h
changed src/TutorialCode/Tutorial1C/tutorial1C.h
changed src/TutorialCode/Tutorial1D/tutorial1D.h
changed src/TutorialCode/Tutorial2/tutorial2.h
changed src/build_models/meinhardtplugin.h
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
bc383c25c970
/*
 * Summary: interface for the memory allocator
 * Description: provides interfaces for the memory allocator,
 *              including debugging capabilities.
 *
 * Copy: See Copyright for the status of this software.
 *
 * Author: Daniel Veillard
 */


#ifndef __DEBUG_MEMORY_ALLOC__
#define __DEBUG_MEMORY_ALLOC__

#include <stdio.h>
#include <libxml/xmlversion.h>

/**
 * DEBUG_MEMORY:
 *
 * DEBUG_MEMORY replaces the allocator with a collect and debug
 * shell to the libc allocator.
 * DEBUG_MEMORY should only be activated when debugging
 * libxml i.e. if libxml has been configured with --with-debug-mem too.
 */
/* #define DEBUG_MEMORY_FREED */
/* #define DEBUG_MEMORY_LOCATION */

#ifdef DEBUG
#ifndef DEBUG_MEMORY
#define DEBUG_MEMORY
#endif
#endif

/**
 * DEBUG_MEMORY_LOCATION:
 *
 * DEBUG_MEMORY_LOCATION should be activated only when debugging
 * libxml i.e. if libxml has been configured with --with-debug-mem too.
 */
#ifdef DEBUG_MEMORY_LOCATION
#endif

#ifdef __cplusplus
extern "C" {
#endif

/*
 * The XML memory wrapper support 4 basic overloadable functions.
 */
/**
 * xmlFreeFunc:
 * @mem: an already allocated block of memory
 *
 * Signature for a free() implementation.
 */
typedef void (XMLCALL *xmlFreeFunc)(void *mem);
/**
 * xmlMallocFunc:
 * @size:  the size requested in bytes
 *
 * Signature for a malloc() implementation.
 *
 * Returns a pointer to the newly allocated block or NULL in case of error.
 */
typedef void *(LIBXML_ATTR_ALLOC_SIZE(1) XMLCALL *xmlMallocFunc)(size_t size);

/**
 * xmlReallocFunc:
 * @mem: an already allocated block of memory
 * @size:  the new size requested in bytes
 *
 * Signature for a realloc() implementation.
 *
 * Returns a pointer to the newly reallocated block or NULL in case of error.
 */
typedef void *(XMLCALL *xmlReallocFunc)(void *mem, size_t size);

/**
 * xmlStrdupFunc:
 * @str: a zero terminated string
 *
 * Signature for an strdup() implementation.
 *
 * Returns the copy of the string or NULL in case of error.
 */
typedef char *(XMLCALL *xmlStrdupFunc)(const char *str);

/*
 * The 4 interfaces used for all memory handling within libxml.
LIBXML_DLL_IMPORT xmlFreeFunc xmlFree;
LIBXML_DLL_IMPORT xmlMallocFunc xmlMalloc;
LIBXML_DLL_IMPORT xmlMallocFunc xmlMallocAtomic;
LIBXML_DLL_IMPORT xmlReallocFunc xmlRealloc;
LIBXML_DLL_IMPORT xmlStrdupFunc xmlMemStrdup;
 */

/*
 * The way to overload the existing functions.
 * The xmlGc function have an extra entry for atomic block
 * allocations useful for garbage collected memory allocators
 */
XMLPUBFUN int XMLCALL
	xmlMemSetup	(xmlFreeFunc freeFunc,
			 xmlMallocFunc mallocFunc,
			 xmlReallocFunc reallocFunc,
			 xmlStrdupFunc strdupFunc);
XMLPUBFUN int XMLCALL
	xmlMemGet	(xmlFreeFunc *freeFunc,
			 xmlMallocFunc *mallocFunc,
			 xmlReallocFunc *reallocFunc,
			 xmlStrdupFunc *strdupFunc);
XMLPUBFUN int XMLCALL
	xmlGcMemSetup	(xmlFreeFunc freeFunc,
			 xmlMallocFunc mallocFunc,
			 xmlMallocFunc mallocAtomicFunc,
			 xmlReallocFunc reallocFunc,
			 xmlStrdupFunc strdupFunc);
XMLPUBFUN int XMLCALL
	xmlGcMemGet	(xmlFreeFunc *freeFunc,
			 xmlMallocFunc *mallocFunc,
			 xmlMallocFunc *mallocAtomicFunc,
			 xmlReallocFunc *reallocFunc,
			 xmlStrdupFunc *strdupFunc);

/*
 * Initialization of the memory layer.
 */
XMLPUBFUN int XMLCALL
	xmlInitMemory	(void);

/*
 * Cleanup of the memory layer.
 */
XMLPUBFUN void XMLCALL
                xmlCleanupMemory        (void);
/*
 * These are specific to the XML debug memory wrapper.
 */
XMLPUBFUN int XMLCALL
	xmlMemUsed	(void);
XMLPUBFUN int XMLCALL
	xmlMemBlocks	(void);
XMLPUBFUN void XMLCALL
	xmlMemDisplay	(FILE *fp);
XMLPUBFUN void XMLCALL
	xmlMemDisplayLast(FILE *fp, long nbBytes);
XMLPUBFUN void XMLCALL
	xmlMemShow	(FILE *fp, int nr);
XMLPUBFUN void XMLCALL
	xmlMemoryDump	(void);
XMLPUBFUN void * XMLCALL
	xmlMemMalloc	(size_t size) LIBXML_ATTR_ALLOC_SIZE(1);
XMLPUBFUN void * XMLCALL
	xmlMemRealloc	(void *ptr,size_t size);
XMLPUBFUN void XMLCALL
	xmlMemFree	(void *ptr);
XMLPUBFUN char * XMLCALL
	xmlMemoryStrdup	(const char *str);
XMLPUBFUN void * XMLCALL
	xmlMallocLoc	(size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1);
XMLPUBFUN void * XMLCALL
	xmlReallocLoc	(void *ptr, size_t size, const char *file, int line);
XMLPUBFUN void * XMLCALL
	xmlMallocAtomicLoc (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1);
XMLPUBFUN char * XMLCALL
	xmlMemStrdupLoc	(const char *str, const char *file, int line);


#ifdef DEBUG_MEMORY_LOCATION
/**
 * xmlMalloc:
 * @size:  number of bytes to allocate
 *
 * Wrapper for the malloc() function used in the XML library.
 *
 * Returns the pointer to the allocated area or NULL in case of error.
 */
#define xmlMalloc(size) xmlMallocLoc((size), __FILE__, __LINE__)
/**
 * xmlMallocAtomic:
 * @size:  number of bytes to allocate
 *
 * Wrapper for the malloc() function used in the XML library for allocation
 * of block not containing pointers to other areas.
 *
 * Returns the pointer to the allocated area or NULL in case of error.
 */
#define xmlMallocAtomic(size) xmlMallocAtomicLoc((size), __FILE__, __LINE__)
/**
 * xmlRealloc:
 * @ptr:  pointer to the existing allocated area
 * @size:  number of bytes to allocate
 *
 * Wrapper for the realloc() function used in the XML library.
 *
 * Returns the pointer to the allocated area or NULL in case of error.
 */
#define xmlRealloc(ptr, size) xmlReallocLoc((ptr), (size), __FILE__, __LINE__)
/**
 * xmlMemStrdup:
 * @str:  pointer to the existing string
 *
 * Wrapper for the strdup() function, xmlStrdup() is usually preferred.
 *
 * Returns the pointer to the allocated area or NULL in case of error.
 */
#define xmlMemStrdup(str) xmlMemStrdupLoc((str), __FILE__, __LINE__)

#endif /* DEBUG_MEMORY_LOCATION */

#ifdef __cplusplus
}
#endif /* __cplusplus */

#ifndef __XML_GLOBALS_H
#ifndef __XML_THREADS_H__
#include <libxml/threads.h>
#include <libxml/globals.h>
#endif
#endif

#endif  /* __DEBUG_MEMORY_ALLOC__ */