diff --git a/extensions/regex/CRegEx.cpp b/extensions/regex/CRegEx.cpp index c1c70436..6405a3a0 100644 --- a/extensions/regex/CRegEx.cpp +++ b/extensions/regex/CRegEx.cpp @@ -13,7 +13,7 @@ RegEx::RegEx() mSubStrings = 0; } -void RegEx::Clear() +void RegEx::Clear () { mErrorOffset = 0; mError = NULL; diff --git a/extensions/regex/extension.cpp b/extensions/regex/extension.cpp index 94fbb615..4849b3ce 100644 --- a/extensions/regex/extension.cpp +++ b/extensions/regex/extension.cpp @@ -32,7 +32,6 @@ #include "extension.h" #include -#include #include "pcre.h" #include "CRegEx.h" using namespace SourceHook; @@ -50,21 +49,6 @@ RegexHandler g_RegexHandler; HandleType_t g_RegexHandle=0; -SourceHook::CVector PEL; - -int GetPEL() -{ - for (int i=0; i<(int)PEL.size(); i++) - { - if (PEL[i]->isFree()) - return i; - } - - RegEx *x = new RegEx(); - PEL.push_back(x); - - return (int)PEL.size() - 1; -} bool RegexExtension::SDK_OnLoad(char *error, size_t err_max, bool late) { @@ -76,15 +60,7 @@ bool RegexExtension::SDK_OnLoad(char *error, size_t err_max, bool late) void RegexExtension::SDK_OnUnload() { g_pHandleSys->RemoveType(g_RegexHandle, myself->GetIdentity()); - for(int i=0; i<(int)PEL.size(); i++) - { - if(PEL[i]) - { - delete PEL[i]; - PEL[i] = 0; - } - } - PEL.clear(); + } static cell_t CompileRegex(IPluginContext *pCtx, const cell_t *params) @@ -92,8 +68,7 @@ static cell_t CompileRegex(IPluginContext *pCtx, const cell_t *params) char *regex; pCtx->LocalToString(params[1], ®ex); - int id = GetPEL(); - RegEx *x = PEL[id]; + RegEx *x = new RegEx(); if (x->Compile(regex, params[2]) == 0) { @@ -201,6 +176,7 @@ void RegexHandler::OnHandleDestroy(HandleType_t type, void *object) RegEx *x = (RegEx *)object; x->Clear(); + delete x; } const sp_nativeinfo_t regex_natives[] = diff --git a/extensions/regex/msvc8/sdk.sln b/extensions/regex/msvc8/sdk.sln index a7b266be..90618048 100644 --- a/extensions/regex/msvc8/sdk.sln +++ b/extensions/regex/msvc8/sdk.sln @@ -1,18 +1,24 @@  Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sdk", "sdk.vcproj", "{B3E797CF-4E77-4C9D-B8A8-7589B6902206}" +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regex", "sdk.vcproj", "{B3E797CF-4E77-4C9D-B8A8-7589B6902206}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 + Debug - Episode 1|Win32 = Debug - Episode 1|Win32 + Debug - Orange Box|Win32 = Debug - Orange Box|Win32 + Release - Episode 1|Win32 = Release - Episode 1|Win32 + Release - Orange Box|Win32 = Release - Orange Box|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug|Win32.ActiveCfg = Debug|Win32 - {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug|Win32.Build.0 = Debug|Win32 - {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release|Win32.ActiveCfg = Release|Win32 - {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release|Win32.Build.0 = Release|Win32 + {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Episode 1|Win32.ActiveCfg = Debug|Win32 + {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Episode 1|Win32.Build.0 = Debug|Win32 + {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box|Win32.ActiveCfg = Debug - Orange Box|Win32 + {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box|Win32.Build.0 = Debug - Orange Box|Win32 + {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Episode 1|Win32.ActiveCfg = Release|Win32 + {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Episode 1|Win32.Build.0 = Release|Win32 + {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box|Win32.ActiveCfg = Release - Orange Box|Win32 + {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box|Win32.Build.0 = Release - Orange Box|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/extensions/regex/msvc8/sdk.vcproj b/extensions/regex/msvc8/sdk.vcproj index 29eec79e..ec06e64e 100644 --- a/extensions/regex/msvc8/sdk.vcproj +++ b/extensions/regex/msvc8/sdk.vcproj @@ -40,7 +40,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +