Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
33bc2428
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看板
提交
33bc2428
编写于
2月 15, 2013
作者:
S
serb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8004261: Improve input validation
Reviewed-by: art, mschoene, amenkov
上级
246c9a48
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
26 addition
and
21 deletion
+26
-21
src/share/classes/com/sun/media/sound/AbstractMidiDevice.java
...share/classes/com/sun/media/sound/AbstractMidiDevice.java
+13
-12
src/share/classes/com/sun/media/sound/FastShortMessage.java
src/share/classes/com/sun/media/sound/FastShortMessage.java
+1
-1
src/share/classes/com/sun/media/sound/FastSysexMessage.java
src/share/classes/com/sun/media/sound/FastSysexMessage.java
+1
-1
src/share/classes/com/sun/media/sound/MidiOutDevice.java
src/share/classes/com/sun/media/sound/MidiOutDevice.java
+10
-6
src/share/classes/com/sun/media/sound/RealTimeSequencer.java
src/share/classes/com/sun/media/sound/RealTimeSequencer.java
+1
-1
未找到文件。
src/share/classes/com/sun/media/sound/AbstractMidiDevice.java
浏览文件 @
33bc2428
...
...
@@ -56,7 +56,7 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
// from simultaneous creation and destruction
// reduces possibility of deadlock, compared to
// synchronizing to the class instance
private
Object
traRecLock
=
new
Object
();
private
final
Object
traRecLock
=
new
Object
();
// DEVICE ATTRIBUTES
...
...
@@ -474,7 +474,7 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
This is necessary for Receivers retrieved via MidiSystem.getReceiver()
(which opens the device implicitely).
*/
protected
abstract
class
AbstractReceiver
implements
MidiDeviceReceiver
{
abstract
class
AbstractReceiver
implements
MidiDeviceReceiver
{
private
boolean
open
=
true
;
...
...
@@ -483,24 +483,24 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
Receiver. Therefore, subclasses should not override this method.
Instead, they should implement implSend().
*/
public
synchronized
void
send
(
MidiMessage
message
,
long
timeStamp
)
{
if
(
open
)
{
implSend
(
message
,
timeStamp
);
}
else
{
@Override
public
final
synchronized
void
send
(
final
MidiMessage
message
,
final
long
timeStamp
)
{
if
(!
open
)
{
throw
new
IllegalStateException
(
"Receiver is not open"
);
}
implSend
(
message
,
timeStamp
);
}
protected
abstract
void
implSend
(
MidiMessage
message
,
long
timeStamp
);
abstract
void
implSend
(
MidiMessage
message
,
long
timeStamp
);
/** Close the Receiver.
* Here, the call to the magic method closeInternal() takes place.
* Therefore, subclasses that override this method must call
* 'super.close()'.
*/
public
void
close
()
{
@Override
public
final
void
close
()
{
open
=
false
;
synchronized
(
AbstractMidiDevice
.
this
.
traRecLock
)
{
AbstractMidiDevice
.
this
.
getReceiverList
().
remove
(
this
);
...
...
@@ -508,11 +508,12 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
AbstractMidiDevice
.
this
.
closeInternal
(
this
);
}
public
MidiDevice
getMidiDevice
()
{
@Override
public
final
MidiDevice
getMidiDevice
()
{
return
AbstractMidiDevice
.
this
;
}
protected
boolean
isOpen
()
{
final
boolean
isOpen
()
{
return
open
;
}
...
...
src/share/classes/com/sun/media/sound/FastShortMessage.java
浏览文件 @
33bc2428
...
...
@@ -32,7 +32,7 @@ import javax.sound.midi.*;
*
* @author Florian Bomers
*/
class
FastShortMessage
extends
ShortMessage
{
final
class
FastShortMessage
extends
ShortMessage
{
private
int
packedMsg
;
public
FastShortMessage
(
int
packedMsg
)
throws
InvalidMidiDataException
{
...
...
src/share/classes/com/sun/media/sound/FastSysexMessage.java
浏览文件 @
33bc2428
...
...
@@ -32,7 +32,7 @@ import javax.sound.midi.*;
*
* @author Florian Bomers
*/
class
FastSysexMessage
extends
SysexMessage
{
final
class
FastSysexMessage
extends
SysexMessage
{
FastSysexMessage
(
byte
[]
data
)
throws
InvalidMidiDataException
{
super
(
data
);
...
...
src/share/classes/com/sun/media/sound/MidiOutDevice.java
浏览文件 @
33bc2428
...
...
@@ -103,9 +103,9 @@ class MidiOutDevice extends AbstractMidiDevice {
class
MidiOutReceiver
extends
AbstractReceiver
{
protected
void
implSend
(
MidiMessage
message
,
long
timeStamp
)
{
int
length
=
message
.
getLength
();
int
status
=
message
.
getStatus
();
void
implSend
(
final
MidiMessage
message
,
final
long
timeStamp
)
{
final
int
length
=
message
.
getLength
();
final
int
status
=
message
.
getStatus
();
if
(
length
<=
3
&&
status
!=
0xF0
&&
status
!=
0xF7
)
{
int
packedMsg
;
if
(
message
instanceof
ShortMessage
)
{
...
...
@@ -140,11 +140,15 @@ class MidiOutDevice extends AbstractMidiDevice {
}
nSendShortMessage
(
id
,
packedMsg
,
timeStamp
);
}
else
{
final
byte
[]
data
;
if
(
message
instanceof
FastSysexMessage
)
{
nSendLongMessage
(
id
,
((
FastSysexMessage
)
message
).
getReadOnlyMessage
(),
length
,
timeStamp
);
data
=
((
FastSysexMessage
)
message
).
getReadOnlyMessage
();
}
else
{
nSendLongMessage
(
id
,
message
.
getMessage
(),
length
,
timeStamp
);
data
=
message
.
getMessage
();
}
final
int
dataLength
=
Math
.
min
(
length
,
data
.
length
);
if
(
dataLength
>
0
)
{
nSendLongMessage
(
id
,
data
,
dataLength
,
timeStamp
);
}
}
}
...
...
src/share/classes/com/sun/media/sound/RealTimeSequencer.java
浏览文件 @
33bc2428
...
...
@@ -1026,7 +1026,7 @@ class RealTimeSequencer extends AbstractMidiDevice implements Sequencer, AutoCon
class
SequencerReceiver
extends
AbstractReceiver
{
protected
void
implSend
(
MidiMessage
message
,
long
timeStamp
)
{
void
implSend
(
MidiMessage
message
,
long
timeStamp
)
{
if
(
recording
)
{
long
tickPos
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录