Annotation of parser3/src/classes/memory.C, revision 1.3

1.2       paf         1: /** @file
                      2:        Parser: @b memory parser class.
                      3: 
                      4:        Copyright(c) 2001-2003 ArtLebedev Group(http://www.artlebedev.com)
                      5:        Author: Alexandr Petrosian <paf@design.ru>(http://paf.design.ru)
                      6: */
                      7: 
1.3     ! paf         8: static const char* IDENT_MATH_C="$Date: 2003/07/24 11:31:20 $";
1.2       paf         9: 
                     10: #include "pa_common.h"
                     11: #include "pa_vmemory.h"
                     12: #include "pa_request.h"
                     13: 
                     14: class MMemory: public Methoded {
                     15: public:
                     16:        MMemory();
                     17: 
                     18: public: // Methoded
                     19:        bool used_directly() { return false; }
                     20: };
                     21: 
                     22: // global variables
                     23: 
                     24: DECLARE_CLASS_VAR(memory, 0 /*fictive*/, new MMemory);
                     25: 
1.3     ! paf        26: #ifdef GC_DEBUG
        !            27: extern "C" GC_API void GC_print_backtrace(void *);
        !            28: void *debug_print_backtrace=0;
        !            29: #endif
        !            30: 
1.2       paf        31: static void _compact(Request& r, MethodParams& params) {
                     32:        r.wipe_unused_execution_stack();
                     33: #ifndef PA_DEBUG_DISABLE_GC
1.3     ! paf        34:        {
        !            35:                int saved=GC_dont_gc;
        !            36:                GC_dont_gc=0;
        !            37:                GC_gcollect();
        !            38:                GC_dont_gc=saved;
        !            39:        }
        !            40: #ifdef GC_DEBUG
        !            41:        if(debug_print_backtrace)
        !            42:                GC_print_backtrace(debug_print_backtrace);
        !            43: #endif
1.2       paf        44: #endif
1.3     ! paf        45:        }
1.2       paf        46: 
                     47: // constructor
                     48: 
                     49: MMemory::MMemory(): Methoded("memory") {
                     50:        // ^compact[]
                     51:        add_native_method("compact", Method::CT_STATIC, _compact, 0, 0);
                     52: }

E-mail: