From 58510c2cc4688ecea7e36607384dda41f5ec67f7 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 31 Jul 2012 13:13:39 -0600 Subject: [PATCH] Release compiled oniguruma regex in destructor of user data object --- Atom/src/OnigRegexpExtension.mm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Atom/src/OnigRegexpExtension.mm b/Atom/src/OnigRegexpExtension.mm index 2ecb84ae0..2a1a2bc06 100644 --- a/Atom/src/OnigRegexpExtension.mm +++ b/Atom/src/OnigRegexpExtension.mm @@ -14,6 +14,10 @@ public: m_regex = [[OnigRegexp compile:sourceString] retain]; } + ~OnigRegexpUserData() { + [m_regex release]; + } + CefRefPtr Search(CefRefPtr string, CefRefPtr index) { OnigResult *result = [m_regex search:stringFromCefV8Value(string) start:index->GetIntValue()]; @@ -36,10 +40,8 @@ public: OnigRegexp *m_regex; IMPLEMENT_REFCOUNTING(OnigRegexpUserData); - }; - OnigRegexpExtension::OnigRegexpExtension() : CefV8Handler() { NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"src/stdlib/onig-reg-exp-extension.js"]; NSString *extensionCode = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; @@ -51,7 +53,6 @@ bool OnigRegexpExtension::Execute(const CefString& name, const CefV8ValueList& arguments, CefRefPtr& retval, CefString& exception) { - if (name == "buildOnigRegExp") { CefRefPtr userData = new OnigRegexpUserData(arguments[0]); retval = CefV8Value::CreateObject(userData, NULL);