Make 2 singleton "new-less"

Make WcharMbcsConvertor & FileManager "new-less"
This commit is contained in:
Don HO 2019-08-11 01:17:53 +02:00
parent 3dbb2c4b8e
commit 3643a1875b
No known key found for this signature in database
GPG Key ID: 6C429F1D8D84F46E
6 changed files with 8 additions and 15 deletions

View File

@ -38,8 +38,6 @@
#include "../Utf8.h"
#include <Parameters.h>
WcharMbcsConvertor* WcharMbcsConvertor::_pSelf = new WcharMbcsConvertor;
void printInt(int int2print)
{
TCHAR str[32];

View File

@ -96,8 +96,10 @@ bool matchInList(const TCHAR *fileName, const std::vector<generic_string> & patt
class WcharMbcsConvertor final
{
public:
static WcharMbcsConvertor * getInstance() {return _pSelf;}
static void destroyInstance() {delete _pSelf;}
static WcharMbcsConvertor* getInstance() {
static WcharMbcsConvertor instance;
return &instance;
}
const wchar_t * char2wchar(const char *mbStr, UINT codepage, int lenIn=-1, int *pLenOut=NULL, int *pBytesNotProcessed=NULL);
const wchar_t * char2wchar(const char *mbcs2Convert, UINT codepage, int *mstart, int *mend);
@ -120,8 +122,6 @@ protected:
WcharMbcsConvertor(const WcharMbcsConvertor&) = delete;
WcharMbcsConvertor& operator= (const WcharMbcsConvertor&) = delete;
static WcharMbcsConvertor* _pSelf;
template <class T>
class StringBuffer final
{

View File

@ -184,8 +184,6 @@ Notepad_plus::~Notepad_plus()
// its children windows' handles will be destroyed automatically!
(NppParameters::getInstance())->destroyInstance();
MainFileManager->destroyInstance();
(WcharMbcsConvertor::getInstance())->destroyInstance();
delete _pTrayIco;
delete _pAnsiCharPanel;

View File

@ -38,8 +38,6 @@
#include "uchardet.h"
#include "LongRunningOperation.h"
FileManager * FileManager::_pSelf = new FileManager();
static const int blockSize = 128 * 1024 + 4;
static const int CR = 0x0D;
static const int LF = 0x0A;

View File

@ -106,8 +106,10 @@ public:
bool deleteFile(BufferID id);
bool moveFile(BufferID id, const TCHAR * newFilename);
bool createEmptyFile(const TCHAR * path);
static FileManager * getInstance() {return _pSelf;};
void destroyInstance() { delete _pSelf; };
static FileManager * getInstance() {
static FileManager instance;
return &instance;
};
int getFileNameFromBuffer(BufferID id, TCHAR * fn2copy);
int docLength(Buffer * buffer) const;
size_t nextUntitledNewNumber() const;
@ -127,8 +129,6 @@ private:
private:
static FileManager *_pSelf;
Notepad_plus* _pNotepadPlus = nullptr;
ScintillaEditView* _pscratchTilla = nullptr;
Document _scratchDocDefault;

View File

@ -479,7 +479,6 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int)
{
// First of all, destroy static object NppParameters
pNppParameters->destroyInstance();
MainFileManager->destroyInstance();
int sw = 0;