Skip to content

Commit

Permalink
fix(android): memory leak in WebSocketModule
Browse files Browse the repository at this point in the history
  • Loading branch information
iPel authored and zealotchen0 committed Aug 7, 2023
1 parent 11d41eb commit 4136f5a
Showing 1 changed file with 6 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import com.tencent.mtt.hippy.websocket.Header;
import com.tencent.mtt.hippy.websocket.WebSocketClient;

import java.lang.ref.WeakReference;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -215,28 +216,29 @@ private static class HippyWebSocketListener implements WebSocketClient.WebSocket


private final int mWebSocketId;
private final HippyEngineContext mContext;
private final WeakReference<HippyEngineContext> mContextRef;
private final WebSocketModule mWebSocketModule;
private boolean mDisconnected;

public HippyWebSocketListener(int websocketID, HippyEngineContext context,
WebSocketModule socketModule) {
mWebSocketId = websocketID;
mContext = context;
mContextRef = new WeakReference<>(context);
mWebSocketModule = socketModule;
mDisconnected = false;
}

private void sendWebSocketEvent(String eventType, HippyMap data) {
if (mDisconnected) {
final HippyEngineContext context;
if (mDisconnected || (context = mContextRef.get()) == null) {
return;
}

HippyMap eventParams = new HippyMap();
eventParams.pushInt(PARAM_KEY_SOCKET_ID, mWebSocketId);
eventParams.pushString(PARAM_KEY_TYPE, eventType);
eventParams.pushObject(PARAM_KEY_DATA, data);
mContext.getModuleManager().getJavaScriptModule(EventDispatcher.class)
context.getModuleManager().getJavaScriptModule(EventDispatcher.class)
.receiveNativeEvent(WEB_SOCKET_EVENT_NAME, eventParams);
}

Expand Down

0 comments on commit 4136f5a

Please sign in to comment.