Throw IllegalStateException if native objects are used after dispose.
This makes it easier to debug issues related to double dispose / use after dispose. Bug: webrtc:7566, webrtc:8297 Change-Id: I07429b2b794deabb62b5f3ea1cf92eea6f66a149 Reviewed-on: https://webrtc-review.googlesource.com/102540 Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Paulina Hensman <phensman@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24894}
This commit is contained in:

committed by
Commit Bot

parent
dca5a2ca73
commit
ee05e90297
@ -12,20 +12,30 @@ package org.webrtc;
|
||||
|
||||
/** Java wrapper for a C++ TurnCustomizer. */
|
||||
public class TurnCustomizer {
|
||||
final long nativeTurnCustomizer;
|
||||
private long nativeTurnCustomizer;
|
||||
|
||||
public TurnCustomizer(long nativeTurnCustomizer) {
|
||||
this.nativeTurnCustomizer = nativeTurnCustomizer;
|
||||
}
|
||||
|
||||
public void dispose() {
|
||||
checkTurnCustomizerExists();
|
||||
nativeFreeTurnCustomizer(nativeTurnCustomizer);
|
||||
nativeTurnCustomizer = 0;
|
||||
}
|
||||
|
||||
private static native void nativeFreeTurnCustomizer(long turnCustomizer);
|
||||
|
||||
/** Return a pointer to webrtc::TurnCustomizer. */
|
||||
@CalledByNative
|
||||
long getNativeTurnCustomizer() {
|
||||
checkTurnCustomizerExists();
|
||||
return nativeTurnCustomizer;
|
||||
}
|
||||
|
||||
private void checkTurnCustomizerExists() {
|
||||
if (nativeTurnCustomizer == 0) {
|
||||
throw new IllegalStateException("TurnCustomizer has been disposed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user