Annotation of parser3/src/classes/memory.C, revision 1.6
1.2 paf 1: /** @file
2: Parser: @b memory parser class.
3:
1.6 ! paf 4: Copyright(c) 2001-2004 ArtLebedev Group(http://www.artlebedev.com)
1.2 paf 5: Author: Alexandr Petrosian <paf@design.ru>(http://paf.design.ru)
6: */
7:
1.6 ! paf 8: static const char * const IDENT_MATH_C="$Date: 2003/11/20 16:34:23 $";
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.4 paf 31: static void _compact(Request& r, MethodParams&) {
1.2 paf 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: