summaryrefslogtreecommitdiffstats
path: root/mobile/android/geckoview/src/main/java/org/mozilla/gecko/mozglue/JNIObject.java
blob: 3b0f8cc96bea59bc2c577111cf4a2575ee98d639 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.mozilla.gecko.mozglue;

// Class that all classes with native methods extend from.
public abstract class JNIObject {
  // Pointer that references the native object. This is volatile because it may be accessed
  // by multiple threads simultaneously.
  private volatile long mHandle;

  // Dispose of any reference to a native object.
  //
  // If the native instance is destroyed from the native side, this should never be
  // called, so you should throw an UnsupportedOperationException. If instead you
  // want to destroy the native side from the Java end, make override this with
  // a native call, and the right thing will be done in the native code.
  protected abstract void disposeNative();
}