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

1.2       paf         1: /** @file
                      2:        Parser: @b memory parser class.
                      3: 
1.12    ! moko        4:        Copyright (c) 2001-2017 Art. Lebedev Studio (http://www.artlebedev.com)
1.2       paf         5:        Author: Alexandr Petrosian <paf@design.ru>(http://paf.design.ru)
                      6: */
                      7: 
                      8: #include "pa_common.h"
                      9: #include "pa_vmemory.h"
                     10: #include "pa_request.h"
                     11: 
1.12    ! moko       12: volatile const char * IDENT_MEMORY_C="$Id: memory.C,v 1.11 2016/03/31 21:46:20 moko Exp $" IDENT_PA_VMEMORY_H;
1.9       moko       13: 
1.2       paf        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: 
1.11      moko       24: DECLARE_CLASS_VAR(memory, new MMemory);
1.2       paf        25: 
1.7       paf        26: #undef GC_DEBUG
1.3       paf        27: #ifdef GC_DEBUG
                     28: extern "C" GC_API void GC_print_backtrace(void *);
                     29: void *debug_print_backtrace=0;
                     30: #endif
                     31: 
1.4       paf        32: static void _compact(Request& r, MethodParams&) {
1.2       paf        33:        r.wipe_unused_execution_stack();
                     34: #ifndef PA_DEBUG_DISABLE_GC
1.3       paf        35:        {
                     36:                int saved=GC_dont_gc;
                     37:                GC_dont_gc=0;
                     38:                GC_gcollect();
                     39:                GC_dont_gc=saved;
                     40:        }
                     41: #ifdef GC_DEBUG
                     42:        if(debug_print_backtrace)
                     43:                GC_print_backtrace(debug_print_backtrace);
                     44: #endif
1.2       paf        45: #endif
1.3       paf        46:        }
1.2       paf        47: 
                     48: // constructor
                     49: 
                     50: MMemory::MMemory(): Methoded("memory") {
                     51:        // ^compact[]
                     52:        add_native_method("compact", Method::CT_STATIC, _compact, 0, 0);
                     53: }

E-mail: