Annotation of parser3/src/doc/memory.dox, revision 1.3

1.3     ! paf         1: /**    @page Memory  Memory: work with memory
1.2       paf         2: 
1.3     ! paf         3: Parser in it's work with memory relies on garbage collection. See  http://www.hpl.hp.com/personal/Hans_Boehm/gc
1.2       paf         4: 
1.3     ! paf         5: Work with memory goes like this:
        !             6: all allocations are in the end get to  pa_malloc pa_malloc_atomic, pa_realloc, pa_free functions; 
        !             7: For C++ corresponding new operators are overloaded.
        !             8: To allocate a memory in C++ style not for objects one should specify,
        !             9: will the block to-be-allocated contain pointers,
        !            10: new(UseGC) when "it will". new(PointerFreeGC) when "it will not".
1.2       paf        11: 
1.3     ! paf        12: For convinient memory allocation for objects there is root class PA_Object, 
        !            13: overriding new operator, implementing it with pa_malloc, 
        !            14: and providing wrappers for malloc/malloc_atomic/realloc/free.
        !            15: It is recommended, where it is possible, to allocate memory in C++ style [using new operator],
        !            16: exception can be made for a case where realloc is needed:
        !            17: on many platforms new-operator changes the pointer, returned by new-operator-implementation allocator.
        !            18: that is new+realloc / realloc+delete are not allowed.
1.2       paf        19: */

E-mail: