@@ -58,6 +58,7 @@ CefRefPtr<CefContextMenuHandler> ClientHandler::GetContextMenuHandler() {
5858 result = new ContextMenuHandler (env, handler);
5959 SetCefForJNIObject (env, handler, result.get (), " CefContextMenuHandler" );
6060 }
61+ env->DeleteLocalRef (handler);
6162 }
6263 END_ENV (env)
6364 return result;
@@ -76,6 +77,7 @@ CefRefPtr<CefDialogHandler> ClientHandler::GetDialogHandler() {
7677 result = new DialogHandler (env, handler);
7778 SetCefForJNIObject (env, handler, result.get (), " CefDialogHandler" );
7879 }
80+ env->DeleteLocalRef (handler);
7981 }
8082 END_ENV (env)
8183 return result;
@@ -94,6 +96,7 @@ CefRefPtr<CefDisplayHandler> ClientHandler::GetDisplayHandler() {
9496 result = new DisplayHandler (env, handler);
9597 SetCefForJNIObject (env, handler, result.get (), " CefDisplayHandler" );
9698 }
99+ env->DeleteLocalRef (handler);
97100 }
98101 END_ENV (env)
99102 return result;
@@ -112,6 +115,7 @@ CefRefPtr<CefDownloadHandler> ClientHandler::GetDownloadHandler() {
112115 result = new DownloadHandler (env, handler);
113116 SetCefForJNIObject (env, handler, result.get (), " CefDownloadHandler" );
114117 }
118+ env->DeleteLocalRef (handler);
115119 }
116120 END_ENV (env)
117121 return result;
@@ -130,6 +134,7 @@ CefRefPtr<CefDragHandler> ClientHandler::GetDragHandler() {
130134 result = new DragHandler (env, handler);
131135 SetCefForJNIObject (env, handler, result.get (), " CefDragHandler" );
132136 }
137+ env->DeleteLocalRef (handler);
133138 }
134139 END_ENV (env)
135140 return result;
@@ -148,6 +153,7 @@ CefRefPtr<CefFocusHandler> ClientHandler::GetFocusHandler() {
148153 result = new FocusHandler (env, handler);
149154 SetCefForJNIObject (env, handler, result.get (), " CefFocusHandler" );
150155 }
156+ env->DeleteLocalRef (handler);
151157 }
152158 END_ENV (env)
153159 return result;
@@ -166,6 +172,7 @@ CefRefPtr<CefJSDialogHandler> ClientHandler::GetJSDialogHandler() {
166172 result = new JSDialogHandler (env, handler);
167173 SetCefForJNIObject (env, handler, result.get (), " CefJSDialogHandler" );
168174 }
175+ env->DeleteLocalRef (handler);
169176 }
170177 END_ENV (env)
171178 return result;
@@ -184,6 +191,7 @@ CefRefPtr<CefKeyboardHandler> ClientHandler::GetKeyboardHandler() {
184191 result = new KeyboardHandler (env, handler);
185192 SetCefForJNIObject (env, handler, result.get (), " CefKeyboardHandler" );
186193 }
194+ env->DeleteLocalRef (handler);
187195 }
188196 END_ENV (env)
189197 return result;
@@ -202,6 +210,7 @@ CefRefPtr<CefLifeSpanHandler> ClientHandler::GetLifeSpanHandler() {
202210 result = new LifeSpanHandler (env, handler);
203211 SetCefForJNIObject (env, handler, result.get (), " CefLifeSpanHandler" );
204212 }
213+ env->DeleteLocalRef (handler);
205214 }
206215 END_ENV (env)
207216 return result;
@@ -220,6 +229,7 @@ CefRefPtr<CefLoadHandler> ClientHandler::GetLoadHandler() {
220229 result = new LoadHandler (env, handler);
221230 SetCefForJNIObject (env, handler, result.get (), " CefLoadHandler" );
222231 }
232+ env->DeleteLocalRef (handler);
223233 }
224234 END_ENV (env)
225235 return result;
@@ -238,6 +248,7 @@ CefRefPtr<CefRenderHandler> ClientHandler::GetRenderHandler() {
238248 result = new RenderHandler (env, handler);
239249 SetCefForJNIObject (env, handler, result.get (), " CefRenderHandler" );
240250 }
251+ env->DeleteLocalRef (handler);
241252 }
242253 END_ENV (env)
243254 return result;
@@ -256,6 +267,7 @@ CefRefPtr<CefRequestHandler> ClientHandler::GetRequestHandler() {
256267 result = new RequestHandler (env, handler);
257268 SetCefForJNIObject (env, handler, result.get (), " CefRequestHandler" );
258269 }
270+ env->DeleteLocalRef (handler);
259271 }
260272 END_ENV (env)
261273 return result;
@@ -290,6 +302,7 @@ CefRefPtr<WindowHandler> ClientHandler::GetWindowHandler() {
290302 result = new WindowHandler (env, handler);
291303 SetCefForJNIObject (env, handler, result.get (), " WindowHandler" );
292304 }
305+ env->DeleteLocalRef (handler);
293306 }
294307 END_ENV (env)
295308 return result;
@@ -328,10 +341,12 @@ void ClientHandler::AddMessageRouter(JNIEnv* env, jobject jmessageRouter) {
328341 jobject jbrowser = env->GetObjectArrayElement (jbrowserArray, i);
329342 CefRefPtr<CefBrowser> browser =
330343 GetCefFromJNIObject<CefBrowser>(env, jbrowser, " CefBrowser" );
344+ env->DeleteLocalRef (jbrowser);
331345 if (!browser.get ())
332346 continue ;
333347 browser->SendProcessMessage (PID_RENDERER, message);
334348 }
349+ env->DeleteLocalRef (jbrowserArray);
335350}
336351
337352void ClientHandler::RemoveMessageRouter (JNIEnv* env, jobject jmessageRouter) {
@@ -367,10 +382,12 @@ void ClientHandler::RemoveMessageRouter(JNIEnv* env, jobject jmessageRouter) {
367382 jobject jbrowser = env->GetObjectArrayElement (jbrowserArray, i);
368383 CefRefPtr<CefBrowser> browser =
369384 GetCefFromJNIObject<CefBrowser>(env, jbrowser, " CefBrowser" );
385+ env->DeleteLocalRef (jbrowser);
370386 if (!browser.get ())
371387 continue ;
372388 browser->SendProcessMessage (PID_RENDERER, message);
373389 }
390+ env->DeleteLocalRef (jbrowserArray);
374391}
375392
376393void ClientHandler::OnAfterCreated () {}
0 commit comments