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
...
@@ -56,7 +56,7 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
// from simultaneous creation and destruction
// from simultaneous creation and destruction
// reduces possibility of deadlock, compared to
// reduces possibility of deadlock, compared to
// synchronizing to the class instance
// synchronizing to the class instance
private
Object
traRecLock
=
new
Object
();
private
final
Object
traRecLock
=
new
Object
();
// DEVICE ATTRIBUTES
// DEVICE ATTRIBUTES
...
@@ -474,7 +474,7 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
...
@@ -474,7 +474,7 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
This is necessary for Receivers retrieved via MidiSystem.getReceiver()
This is necessary for Receivers retrieved via MidiSystem.getReceiver()
(which opens the device implicitely).
(which opens the device implicitely).
*/
*/
protected
abstract
class
AbstractReceiver
implements
MidiDeviceReceiver
{
abstract
class
AbstractReceiver
implements
MidiDeviceReceiver
{
private
boolean
open
=
true
;
private
boolean
open
=
true
;
...
@@ -483,24 +483,24 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
...
@@ -483,24 +483,24 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
Receiver. Therefore, subclasses should not override this method.
Receiver. Therefore, subclasses should not override this method.
Instead, they should implement implSend().
Instead, they should implement implSend().
*/
*/
public
synchronized
void
send
(
MidiMessage
message
,
long
timeStamp
)
{
@Override
if
(
open
)
{
public
final
synchronized
void
send
(
final
MidiMessage
message
,
implSend
(
message
,
timeStamp
);
final
long
timeStamp
)
{
}
else
{
if
(!
open
)
{
throw
new
IllegalStateException
(
"Receiver is not open"
);
throw
new
IllegalStateException
(
"Receiver is not open"
);
}
}
implSend
(
message
,
timeStamp
);
}
}
abstract
void
implSend
(
MidiMessage
message
,
long
timeStamp
);
protected
abstract
void
implSend
(
MidiMessage
message
,
long
timeStamp
);
/** Close the Receiver.
/** Close the Receiver.
* Here, the call to the magic method closeInternal() takes place.
* Here, the call to the magic method closeInternal() takes place.
* Therefore, subclasses that override this method must call
* Therefore, subclasses that override this method must call
* 'super.close()'.
* 'super.close()'.
*/
*/
public
void
close
()
{
@Override
public
final
void
close
()
{
open
=
false
;
open
=
false
;
synchronized
(
AbstractMidiDevice
.
this
.
traRecLock
)
{
synchronized
(
AbstractMidiDevice
.
this
.
traRecLock
)
{
AbstractMidiDevice
.
this
.
getReceiverList
().
remove
(
this
);
AbstractMidiDevice
.
this
.
getReceiverList
().
remove
(
this
);
...
@@ -508,11 +508,12 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
...
@@ -508,11 +508,12 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
AbstractMidiDevice
.
this
.
closeInternal
(
this
);
AbstractMidiDevice
.
this
.
closeInternal
(
this
);
}
}
public
MidiDevice
getMidiDevice
()
{
@Override
public
final
MidiDevice
getMidiDevice
()
{
return
AbstractMidiDevice
.
this
;
return
AbstractMidiDevice
.
this
;
}
}
protected
boolean
isOpen
()
{
final
boolean
isOpen
()
{
return
open
;
return
open
;
}
}
...
...
src/share/classes/com/sun/media/sound/FastShortMessage.java
浏览文件 @
33bc2428
...
@@ -32,7 +32,7 @@ import javax.sound.midi.*;
...
@@ -32,7 +32,7 @@ import javax.sound.midi.*;
*
*
* @author Florian Bomers
* @author Florian Bomers
*/
*/
class
FastShortMessage
extends
ShortMessage
{
final
class
FastShortMessage
extends
ShortMessage
{
private
int
packedMsg
;
private
int
packedMsg
;
public
FastShortMessage
(
int
packedMsg
)
throws
InvalidMidiDataException
{
public
FastShortMessage
(
int
packedMsg
)
throws
InvalidMidiDataException
{
...
...
src/share/classes/com/sun/media/sound/FastSysexMessage.java
浏览文件 @
33bc2428
...
@@ -32,7 +32,7 @@ import javax.sound.midi.*;
...
@@ -32,7 +32,7 @@ import javax.sound.midi.*;
*
*
* @author Florian Bomers
* @author Florian Bomers
*/
*/
class
FastSysexMessage
extends
SysexMessage
{
final
class
FastSysexMessage
extends
SysexMessage
{
FastSysexMessage
(
byte
[]
data
)
throws
InvalidMidiDataException
{
FastSysexMessage
(
byte
[]
data
)
throws
InvalidMidiDataException
{
super
(
data
);
super
(
data
);
...
...
src/share/classes/com/sun/media/sound/MidiOutDevice.java
浏览文件 @
33bc2428
...
@@ -103,9 +103,9 @@ class MidiOutDevice extends AbstractMidiDevice {
...
@@ -103,9 +103,9 @@ class MidiOutDevice extends AbstractMidiDevice {
class
MidiOutReceiver
extends
AbstractReceiver
{
class
MidiOutReceiver
extends
AbstractReceiver
{
protected
void
implSend
(
MidiMessage
message
,
long
timeStamp
)
{
void
implSend
(
final
MidiMessage
message
,
final
long
timeStamp
)
{
int
length
=
message
.
getLength
();
final
int
length
=
message
.
getLength
();
int
status
=
message
.
getStatus
();
final
int
status
=
message
.
getStatus
();
if
(
length
<=
3
&&
status
!=
0xF0
&&
status
!=
0xF7
)
{
if
(
length
<=
3
&&
status
!=
0xF0
&&
status
!=
0xF7
)
{
int
packedMsg
;
int
packedMsg
;
if
(
message
instanceof
ShortMessage
)
{
if
(
message
instanceof
ShortMessage
)
{
...
@@ -140,11 +140,15 @@ class MidiOutDevice extends AbstractMidiDevice {
...
@@ -140,11 +140,15 @@ class MidiOutDevice extends AbstractMidiDevice {
}
}
nSendShortMessage
(
id
,
packedMsg
,
timeStamp
);
nSendShortMessage
(
id
,
packedMsg
,
timeStamp
);
}
else
{
}
else
{
final
byte
[]
data
;
if
(
message
instanceof
FastSysexMessage
)
{
if
(
message
instanceof
FastSysexMessage
)
{
nSendLongMessage
(
id
,
((
FastSysexMessage
)
message
).
getReadOnlyMessage
(),
data
=
((
FastSysexMessage
)
message
).
getReadOnlyMessage
();
length
,
timeStamp
);
}
else
{
}
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
...
@@ -1026,7 +1026,7 @@ class RealTimeSequencer extends AbstractMidiDevice implements Sequencer, AutoCon
class
SequencerReceiver
extends
AbstractReceiver
{
class
SequencerReceiver
extends
AbstractReceiver
{
protected
void
implSend
(
MidiMessage
message
,
long
timeStamp
)
{
void
implSend
(
MidiMessage
message
,
long
timeStamp
)
{
if
(
recording
)
{
if
(
recording
)
{
long
tickPos
=
0
;
long
tickPos
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录