MiKTeX 26.5-next
A scalable TeX distribution
Loading...
Searching...
No Matches
ETeXMemoryHandlerImpl.h
Go to the documentation of this file.
1
13
14#pragma once
15
16#include <miktex/TeXAndFriends/config.h>
17
19
20MIKTEX_TEXMF_BEGIN_NAMESPACE;
21
22template<class PROGRAM_CLASS> class ETeXMemoryHandlerImpl :
23 public TeXMemoryHandlerImpl<PROGRAM_CLASS>
24{
25
26public:
27
28 ETeXMemoryHandlerImpl(PROGRAM_CLASS& program, TeXMFApp& texmfapp) :
29 TeXMemoryHandlerImpl<PROGRAM_CLASS>(program, texmfapp)
30 {
31 }
32
33 void Allocate(const std::unordered_map<std::string, int>& userParams) override
34 {
35 TeXMemoryHandlerImpl<PROGRAM_CLASS>::Allocate(userParams);
36 this->AllocateArray("eofseen", this->program.eofseen, this->program.maxinopen);
37 this->AllocateArray("grpstack", this->program.grpstack, this->program.maxinopen);
38 this->AllocateArray("ifstack", this->program.ifstack, this->program.maxinopen);
39 }
40
41 void Free() override
42 {
43 TeXMemoryHandlerImpl<PROGRAM_CLASS>::Free();
44 this->FreeArray("eofseen", this->program.eofseen);
45 this->FreeArray("grpstack", this->program.grpstack);
46 this->FreeArray("ifstack", this->program.ifstack);
47 }
48
49 void Check() override
50 {
51 TeXMemoryHandlerImpl<PROGRAM_CLASS>::Check();
52 MIKTEX_ASSERT_VALID_HEAP_POINTER_OR_NIL(this->program.eofseen);
53 MIKTEX_ASSERT_VALID_HEAP_POINTER_OR_NIL(this->program.grpstack);
54 MIKTEX_ASSERT_VALID_HEAP_POINTER_OR_NIL(this->program.ifstack);
55 }
56};
57
58MIKTEX_TEXMF_END_NAMESPACE;
MiKTeX TeX memory handler implementation.
Definition TeXMFApp.h:75