From a1d2c114cf2e9f3a7e54c58d4073c87d0afa76af Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Tue, 24 Jun 2014 13:48:12 +0200 Subject: [PATCH] Fixed BlockInfo initialization. Now cBlockInfo is initialized in the getter, instead of "at any time during startup", which included "after it was already needed". --- src/BlockInfo.cpp | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/BlockInfo.cpp b/src/BlockInfo.cpp index 32fdec905..b084d0915 100644 --- a/src/BlockInfo.cpp +++ b/src/BlockInfo.cpp @@ -9,6 +9,7 @@ cBlockInfo cBlockInfo::ms_Info[256]; +static bool g_IsBlockInfoInitialized = false; @@ -43,6 +44,11 @@ cBlockInfo::~cBlockInfo() cBlockInfo & cBlockInfo::Get(BLOCKTYPE a_Type) { + if (!g_IsBlockInfoInitialized) + { + cBlockInfo::Initialize(); + g_IsBlockInfoInitialized = true; + } return ms_Info[a_Type]; } @@ -448,18 +454,3 @@ void cBlockInfo::Initialize(void) - -// This is actually just some code that needs to run at program startup, so it is wrapped into a global var's constructor: -class cBlockInfoInitializer -{ -public: - cBlockInfoInitializer(void) - { - cBlockInfo::Initialize(); - } -} BlockInfoInitializer; - - - - -