96 |
96 |
97 private final CallSiteDescriptor callSiteDescriptor; |
97 private final CallSiteDescriptor callSiteDescriptor; |
98 private final Object callSiteToken; |
98 private final Object callSiteToken; |
99 private final Object[] arguments; |
99 private final Object[] arguments; |
100 private final boolean callSiteUnstable; |
100 private final boolean callSiteUnstable; |
|
101 private final int linkCount; |
101 |
102 |
102 /** |
103 /** |
103 * Creates a new link request. |
104 * Creates a new link request. |
104 * |
105 * |
105 * @param callSiteDescriptor the descriptor for the call site being linked |
106 * @param callSiteDescriptor the descriptor for the call site being linked |
106 * @param callSiteToken the opaque token for the call site being linked. |
107 * @param callSiteToken the opaque token for the call site being linked. |
|
108 * @param linkCount how many times this callsite has been linked/relinked |
107 * @param callSiteUnstable true if the call site being linked is considered unstable |
109 * @param callSiteUnstable true if the call site being linked is considered unstable |
108 * @param arguments the arguments for the invocation |
110 * @param arguments the arguments for the invocation |
109 */ |
111 */ |
110 public LinkRequestImpl(CallSiteDescriptor callSiteDescriptor, Object callSiteToken, boolean callSiteUnstable, Object... arguments) { |
112 public LinkRequestImpl(CallSiteDescriptor callSiteDescriptor, Object callSiteToken, int linkCount, boolean callSiteUnstable, Object... arguments) { |
111 this.callSiteDescriptor = callSiteDescriptor; |
113 this.callSiteDescriptor = callSiteDescriptor; |
112 this.callSiteToken = callSiteToken; |
114 this.callSiteToken = callSiteToken; |
|
115 this.linkCount = linkCount; |
113 this.callSiteUnstable = callSiteUnstable; |
116 this.callSiteUnstable = callSiteUnstable; |
114 this.arguments = arguments; |
117 this.arguments = arguments; |
115 } |
118 } |
116 |
119 |
117 @Override |
120 @Override |
138 public boolean isCallSiteUnstable() { |
141 public boolean isCallSiteUnstable() { |
139 return callSiteUnstable; |
142 return callSiteUnstable; |
140 } |
143 } |
141 |
144 |
142 @Override |
145 @Override |
|
146 public int getLinkCount() { |
|
147 return linkCount; |
|
148 } |
|
149 |
|
150 @Override |
143 public LinkRequest withoutRuntimeContext() { |
151 public LinkRequest withoutRuntimeContext() { |
144 return this; |
152 return this; |
145 } |
153 } |
146 |
154 |
147 @Override |
155 @Override |
148 public LinkRequest replaceArguments(CallSiteDescriptor newCallSiteDescriptor, Object[] newArguments) { |
156 public LinkRequest replaceArguments(CallSiteDescriptor newCallSiteDescriptor, Object[] newArguments) { |
149 return new LinkRequestImpl(newCallSiteDescriptor, callSiteToken, callSiteUnstable, newArguments); |
157 return new LinkRequestImpl(newCallSiteDescriptor, callSiteToken, linkCount, callSiteUnstable, newArguments); |
150 } |
158 } |
151 } |
159 } |