Annotation of parser3/src/classes/memory.C, revision 1.7.8.1
1.2 paf 1: /** @file
2: Parser: @b memory parser class.
3:
1.7.8.1 ! paf 4: Copyright(c) 2001-2005 ArtLebedev Group(http://www.artlebedev.com)
1.2 paf 5: Author: Alexandr Petrosian <paf@design.ru>(http://paf.design.ru)
6: */
7:
1.7.8.1 ! paf 8: static const char * const IDENT_MATH_C="$Date: 2004/06/22 14:12:57 $";
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.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: