From a4c5d37803ff571b27649b4447479376a8167167 Mon Sep 17 00:00:00 2001
From: DarkGod <darkgod@te4.org>
Date: Wed, 16 Apr 2014 12:43:54 +0200
Subject: [PATCH] test

---
 src/web-cef3/web.cpp | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/src/web-cef3/web.cpp b/src/web-cef3/web.cpp
index b218fa023f..93e4efe2e7 100644
--- a/src/web-cef3/web.cpp
+++ b/src/web-cef3/web.cpp
@@ -88,9 +88,9 @@ class BrowserClient;
 
 class WebViewOpaque {
 public:
-	RenderHandler *render;
-	CefBrowser *browser;
-	BrowserClient *view;
+	CefRefPtr<RenderHandler> render;
+	CefRefPtr<CefBrowser> browser;
+	CefRefPtr<BrowserClient> view;
 };
 
 static std::map<BrowserClient*, bool> all_browsers;
@@ -271,10 +271,6 @@ public:
 	}
 
 	virtual void OnBeforeClose(CefRefPtr<CefBrowser> browser) {
-		this->opaque->render->Release();
-		this->opaque->view->Release();
-		this->opaque->browser->Release();
-
 		this->opaque->render = NULL;
 		this->opaque->view = NULL;
 		this->opaque->browser = NULL;
@@ -315,11 +311,7 @@ void te4_web_new(web_view_type *view, int w, int h) {
 	opaque->render = new RenderHandler(w, h);
 	opaque->view = new BrowserClient(opaque, opaque->render, view->handlers);
 	CefString curl("");
-	opaque->browser = CefBrowserHost::CreateBrowserSync(window_info, opaque->view, curl, browserSettings);
-
-	opaque->render->AddRef();
-	opaque->view->AddRef();
-	opaque->browser->AddRef();
+	opaque->browser = CefBrowserHost::CreateBrowserSync(window_info, opaque->view.get(), curl, browserSettings);
 
 	view->w = w;
 	view->h = h;
-- 
GitLab