java.lang.Object
java.lang.invoke.CallSite
java.lang.invoke.MutableCallSite
jdk.dynalink.support.AbstractRelinkableCallSite
jdk.dynalink.support.SimpleRelinkableCallSite
- すべての実装されたインタフェース:
RelinkableCallSite
public class SimpleRelinkableCallSite extends AbstractRelinkableCallSite
単相インライン・キャッシュ戦略を実装する再リンク可能なコール・サイトであり、常に単一の
GuardedInvocation
にのみリンクされます。 その1回の呼出しのガードが失敗した場合、無効化されたスイッチ・ポイントがある場合、または無効な例外がトリガーされた場合、コール・サイトはそれを破棄し、関連するDynamicLinker
に再リンクするように要求します。 -
コンストラクタのサマリー
コンストラクタ説明SimpleRelinkableCallSite
(CallSiteDescriptor descriptor) 単相インライン・キャッシュ方式で新しいコール・サイトを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明void
relink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) このメソッドは、呼び出しサイトが再リンクされるたびに動的リンカーによって呼び出されます。(例外についてはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
を参照してください)。void
resetAndRelink
(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) このメソッドは、コール・サイトが再リンクされるたびにダイナミック・リンカーによって呼び出され、リンカーはコール・サイトが以前のリンケージ・ステート(それはRelinkableCallSite.relink(GuardedInvocation, MethodHandle)
とどのように違うのですか?)を破棄することを望みます。クラスjdk.dynalink.support.AbstractRelinkableCallSiteで宣言されたメソッド
getDescriptor, initialize
クラスjava.lang.invoke.MutableCallSiteで宣言されたメソッド
dynamicInvoker, getTarget, setTarget, syncAll
-
コンストラクタの詳細
-
SimpleRelinkableCallSite
public SimpleRelinkableCallSite(CallSiteDescriptor descriptor) 単相インライン・キャッシュ方式で新しいコール・サイトを作成します。- パラメータ:
descriptor
- この呼び出しサイトの記述子
-
-
メソッドの詳細
-
relink
public void relink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) インタフェース:RelinkableCallSite
からコピーされた説明このメソッドは、呼び出しサイトが再リンクされるたびに動的リンカーによって呼び出されます。(例外についてはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
を参照してください)。 コール・サイトがターゲット・メソッド・ハンドルに組み込む必要があるGuardedInvocation
が渡されます。 このメソッドが呼び出されると、コール・サイトは、多相インライン・キャッシュの実装のために他の非検証呼出しを保持し、それらをこの呼出しで構成して最終ターゲットを形成できます。- パラメータ:
guardedInvocation
- コール・サイトがターゲット・メソッド・ハンドルに組み込む必要があるガード付き呼出し。relinkAndInvoke
- 再リンクおよび呼出しメソッド・ハンドル。 これは、DynamicLinker
によってコールバックとして提供されるコール・サイトのメソッド・タイプと一致するメソッド・ハンドルです。 このコール・サイトでは、渡された引数でターゲットを起動できない場合、最終的なフォールバックとして使用する必要があります。 フォールバック・メソッドは、コール時に、その呼出しに対して適切なターゲットGuardedInvocation
を取得し、その後RelinkableCallSite.relink(GuardedInvocation, MethodHandle)
またはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
を起動し、最後にターゲットを起動するようなものです。
-
resetAndRelink
public void resetAndRelink(GuardedInvocation guardedInvocation, MethodHandle relinkAndInvoke) インタフェース:RelinkableCallSite
からコピーされた説明このメソッドは、コール・サイトが再リンクされるたびにダイナミック・リンカーによって呼び出され、リンカーはコール・サイトが以前のリンケージ・ステート(それはRelinkableCallSite.relink(GuardedInvocation, MethodHandle)
とどのように違うのですか?)を破棄することを望みます。 コール・サイトが新しいターゲット・メソッド・ハンドルの構築に使用するGuardedInvocation
が渡されます。 このメソッドが呼び出されると、コール・サイトは以前の状態を保持しないことを推奨され、現在の呼出しのみをリンクします。- パラメータ:
guardedInvocation
- コール・サイトがターゲット・メソッド・ハンドルの構築に使用するガード付き呼出し。relinkAndInvoke
- 再リンクおよび呼出しメソッド・ハンドル。 これは、DynamicLinker
によってコールバックとして提供されるコール・サイトのメソッド・タイプと一致するメソッド・ハンドルです。 このコール・サイトでは、渡された引数でターゲットを起動できない場合、最終的なフォールバックとして使用する必要があります。 フォールバック・メソッドは、コール時に、その呼出しに対して適切なターゲットGuardedInvocation
を取得し、その後RelinkableCallSite.relink(GuardedInvocation, MethodHandle)
またはRelinkableCallSite.resetAndRelink(GuardedInvocation, MethodHandle)
を起動し、最後にターゲットを起動するようなものです。
-