Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
54e01b75
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
54e01b75
编写于
8月 25, 2015
作者:
I
igerasim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8134356: {@code} tag contains < and > sequences
Reviewed-by: martin
上级
5827b450
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
49 addition
and
49 deletion
+49
-49
src/share/classes/java/lang/Character.java
src/share/classes/java/lang/Character.java
+1
-1
src/share/classes/java/lang/invoke/MemberName.java
src/share/classes/java/lang/invoke/MemberName.java
+2
-2
src/share/classes/java/lang/invoke/MethodHandleInfo.java
src/share/classes/java/lang/invoke/MethodHandleInfo.java
+1
-1
src/share/classes/java/lang/invoke/Stable.java
src/share/classes/java/lang/invoke/Stable.java
+1
-1
src/share/classes/java/lang/invoke/SwitchPoint.java
src/share/classes/java/lang/invoke/SwitchPoint.java
+39
-39
src/share/classes/java/time/chrono/ChronoLocalDate.java
src/share/classes/java/time/chrono/ChronoLocalDate.java
+2
-2
src/share/classes/javax/swing/event/ListSelectionEvent.java
src/share/classes/javax/swing/event/ListSelectionEvent.java
+2
-2
src/share/classes/sun/invoke/util/BytecodeName.java
src/share/classes/sun/invoke/util/BytecodeName.java
+1
-1
未找到文件。
src/share/classes/java/lang/Character.java
浏览文件 @
54e01b75
...
...
@@ -6647,7 +6647,7 @@ class Character implements java.io.Serializable, Comparable<Character> {
* <td>{@code FORM FEED}</td></tr>
* <tr><td>{@code '\r'}</td> <td>{@code U+000D}</td>
* <td>{@code CARRIAGE RETURN}</td></tr>
* <tr><td>{@code '
'}</td>
<td>{@code U+0020}</td>
* <tr><td>{@code '
'}</td>
<td>{@code U+0020}</td>
* <td>{@code SPACE}</td></tr>
* </table>
*
...
...
src/share/classes/java/lang/invoke/MemberName.java
浏览文件 @
54e01b75
...
...
@@ -93,7 +93,7 @@ import java.util.Objects;
/** Return the simple name of this member.
* For a type, it is the same as {@link Class#getSimpleName}.
* For a method or field, it is the simple name of the member.
* For a constructor, it is always {@code "
<init>
"}.
* For a constructor, it is always {@code "
<init>
"}.
*/
public
String
getName
()
{
if
(
name
==
null
)
{
...
...
@@ -727,7 +727,7 @@ import java.util.Objects;
}
/** Create a method or constructor name from the given components:
* Declaring class, name, type, reference kind.
* It will be a constructor if and only if the name is {@code "
<init>
"}.
* It will be a constructor if and only if the name is {@code "
<init>
"}.
* The declaring class may be supplied as null if this is to be a bare name and type.
* The last argument is optional, a boolean which requests REF_invokeSpecial.
* The resulting name will in an unresolved state.
...
...
src/share/classes/java/lang/invoke/MethodHandleInfo.java
浏览文件 @
54e01b75
...
...
@@ -155,7 +155,7 @@ interface MethodHandleInfo {
/**
* Returns the name of the cracked method handle's underlying member.
* This is {@code "
<init>
"} if the underlying member was a constructor,
* This is {@code "
<init>
"} if the underlying member was a constructor,
* else it is a simple method name or field name.
* @return the simple name of the underlying member
*/
...
...
src/share/classes/java/lang/invoke/Stable.java
浏览文件 @
54e01b75
...
...
@@ -51,7 +51,7 @@ import java.lang.annotation.*;
* If the field is an array type, then both the field value and
* all the components of the field value (if the field value is non-null)
* are indicated to be stable.
* If the field type is an array type with rank {@code N
>
1},
* If the field type is an array type with rank {@code N
>
1},
* then each component of the field value (if the field value is non-null),
* is regarded as a stable array of rank {@code N-1}.
* <p>
...
...
src/share/classes/java/lang/invoke/SwitchPoint.java
浏览文件 @
54e01b75
...
...
@@ -55,20 +55,20 @@ package java.lang.invoke;
* At that point {@code guardWithTest} may ignore {@code T} and return {@code F}.
* <p>
* Here is an example of a switch point in action:
* <
blockquote><
pre>{@code
MethodHandle MH_strcat = MethodHandles.lookup()
.findVirtual(String.class, "concat", MethodType.methodType(String.class, String.class));
SwitchPoint spt = new SwitchPoint();
assert(!spt.hasBeenInvalidated());
// the following steps may be repeated to re-use the same switch point:
MethodHandle worker1 = MH_strcat;
MethodHandle worker2 = MethodHandles.permuteArguments(MH_strcat, MH_strcat.type(), 1, 0);
MethodHandle worker = spt.guardWithTest(worker1, worker2);
assertEquals("method", (String) worker.invokeExact("met", "hod"));
SwitchPoint.invalidateAll(new SwitchPoint[]{ spt });
assert(spt.hasBeenInvalidated());
assertEquals("hodmet", (String) worker.invokeExact("met", "hod"));
* }</pre>
</blockquote>
* <pre>{@code
*
MethodHandle MH_strcat = MethodHandles.lookup()
*
.findVirtual(String.class, "concat", MethodType.methodType(String.class, String.class));
*
SwitchPoint spt = new SwitchPoint();
*
assert(!spt.hasBeenInvalidated());
*
// the following steps may be repeated to re-use the same switch point:
*
MethodHandle worker1 = MH_strcat;
*
MethodHandle worker2 = MethodHandles.permuteArguments(MH_strcat, MH_strcat.type(), 1, 0);
*
MethodHandle worker = spt.guardWithTest(worker1, worker2);
*
assertEquals("method", (String) worker.invokeExact("met", "hod"));
*
SwitchPoint.invalidateAll(new SwitchPoint[]{ spt });
*
assert(spt.hasBeenInvalidated());
*
assertEquals("hodmet", (String) worker.invokeExact("met", "hod"));
* }</pre>
* <p style="font-size:smaller;">
* <em>Discussion:</em>
* Switch points are useful without subclassing. They may also be subclassed.
...
...
@@ -82,31 +82,31 @@ assertEquals("hodmet", (String) worker.invokeExact("met", "hod"));
* <em>Implementation Note:</em>
* A switch point behaves as if implemented on top of {@link MutableCallSite},
* approximately as follows:
* <
blockquote><
pre>{@code
public class SwitchPoint {
private static final MethodHandle
K_true = MethodHandles.constant(boolean.class, true),
K_false = MethodHandles.constant(boolean.class, false);
private final MutableCallSite mcs;
private final MethodHandle mcsInvoker;
public SwitchPoint() {
this.mcs = new MutableCallSite(K_true);
this.mcsInvoker = mcs.dynamicInvoker();
}
public MethodHandle guardWithTest(
MethodHandle target, MethodHandle fallback) {
// Note: mcsInvoker is of type ()boolean.
// Target and fallback may take any arguments, but must have the same type.
return MethodHandles.guardWithTest(this.mcsInvoker, target, fallback);
}
public static void invalidateAll(SwitchPoint[] spts) {
List<MutableCallSite> mcss = new ArrayList<>
();
for (SwitchPoint spt : spts) mcss.add(spt.mcs);
for (MutableCallSite mcs : mcss) mcs.setTarget(K_false);
MutableCallSite.syncAll(mcss.toArray(new MutableCallSite[0]));
}
}
* }</pre>
</blockquote>
* <pre>{@code
*
public class SwitchPoint {
*
private static final MethodHandle
*
K_true = MethodHandles.constant(boolean.class, true),
*
K_false = MethodHandles.constant(boolean.class, false);
*
private final MutableCallSite mcs;
*
private final MethodHandle mcsInvoker;
*
public SwitchPoint() {
*
this.mcs = new MutableCallSite(K_true);
*
this.mcsInvoker = mcs.dynamicInvoker();
*
}
*
public MethodHandle guardWithTest(
*
MethodHandle target, MethodHandle fallback) {
*
// Note: mcsInvoker is of type ()boolean.
*
// Target and fallback may take any arguments, but must have the same type.
*
return MethodHandles.guardWithTest(this.mcsInvoker, target, fallback);
*
}
*
public static void invalidateAll(SwitchPoint[] spts) {
* List<MutableCallSite> mcss = new ArrayList<>
();
*
for (SwitchPoint spt : spts) mcss.add(spt.mcs);
*
for (MutableCallSite mcs : mcss) mcs.setTarget(K_false);
*
MutableCallSite.syncAll(mcss.toArray(new MutableCallSite[0]));
*
}
*
}
* }</pre>
* @author Remi Forax, JSR 292 EG
*/
public
class
SwitchPoint
{
...
...
src/share/classes/java/time/chrono/ChronoLocalDate.java
浏览文件 @
54e01b75
...
...
@@ -715,7 +715,7 @@ public interface ChronoLocalDate
* only compares the underlying date and not the chronology.
* This allows dates in different calendar systems to be compared based
* on the time-line position.
* This is equivalent to using {@code date1.toEpochDay()
>
date2.toEpochDay()}.
* This is equivalent to using {@code date1.toEpochDay()
>
date2.toEpochDay()}.
* <p>
* This default implementation performs the comparison based on the epoch-day.
*
...
...
@@ -733,7 +733,7 @@ public interface ChronoLocalDate
* only compares the underlying date and not the chronology.
* This allows dates in different calendar systems to be compared based
* on the time-line position.
* This is equivalent to using {@code date1.toEpochDay()
<
date2.toEpochDay()}.
* This is equivalent to using {@code date1.toEpochDay()
<
date2.toEpochDay()}.
* <p>
* This default implementation performs the comparison based on the epoch-day.
*
...
...
src/share/classes/javax/swing/event/ListSelectionEvent.java
浏览文件 @
54e01b75
...
...
@@ -78,7 +78,7 @@ public class ListSelectionEvent extends EventObject
/**
* Returns the index of the first row whose selection may have changed.
* {@code getFirstIndex()
<
= getLastIndex()}
* {@code getFirstIndex()
<
= getLastIndex()}
*
* @return the first row whose selection value may have changed,
* where zero is the first row
...
...
@@ -87,7 +87,7 @@ public class ListSelectionEvent extends EventObject
/**
* Returns the index of the last row whose selection may have changed.
* {@code getLastIndex()
>
= getFirstIndex()}
* {@code getLastIndex()
>
= getFirstIndex()}
*
* @return the last row whose selection value may have changed,
* where zero is the first row
...
...
src/share/classes/sun/invoke/util/BytecodeName.java
浏览文件 @
54e01b75
...
...
@@ -295,7 +295,7 @@ public class BytecodeName {
* (The safe name might possibly be mangled to hide further dangerous characters.)
* For example, the qualified class name {@code java/lang/String}
* will be parsed into the array {@code {"java", '/', "lang", '/', "String"}}.
* The name {@code
<init>} will be parsed into { '<', "init", '>'}}
* The name {@code
<init>} will be parsed into {@code {'<', "init", '>'}}.
* The name {@code foo/bar$:baz} will be parsed into
* {@code {"foo", '/', "bar", '$', ':', "baz"}}.
* The name {@code ::\=:foo:\=bar\!baz} will be parsed into
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录