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: