Skip to content

Commit a0db2e7

Browse files
committed
Code cleanup
1 parent 7fa953e commit a0db2e7

File tree

4 files changed

+24
-36
lines changed

4 files changed

+24
-36
lines changed

instructions/comparisons/cmp.go

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,55 +17,58 @@ type LCMP struct{ base.NoOperandsInstruction }
1717
func (instr *LCMP) Execute(frame *rtda.Frame) {
1818
v2 := frame.PopLong()
1919
v1 := frame.PopLong()
20-
if v1 > v2 {
20+
switch {
21+
case v1 > v2:
2122
frame.PushInt(1)
22-
} else if v1 == v2 {
23+
case v1 == v2:
2324
frame.PushInt(0)
24-
} else {
25+
default:
2526
frame.PushInt(-1)
2627
}
2728
}
2829

2930
// Compare float
3031
type FCMP struct {
3132
base.NoOperandsInstruction
32-
g bool // long or double
33+
g bool
3334
}
3435

3536
func (instr *FCMP) Execute(frame *rtda.Frame) {
3637
v2 := frame.PopFloat()
3738
v1 := frame.PopFloat()
38-
if v1 > v2 {
39+
switch {
40+
case v1 > v2:
3941
frame.PushInt(1)
40-
} else if v1 == v2 {
42+
case v1 == v2:
4143
frame.PushInt(0)
42-
} else if v1 < v2 {
44+
case v1 < v2:
4345
frame.PushInt(-1)
44-
} else if instr.g {
46+
case instr.g:
4547
frame.PushInt(1)
46-
} else {
48+
default:
4749
frame.PushInt(-1)
4850
}
4951
}
5052

5153
// Compare double
5254
type DCMP struct {
5355
base.NoOperandsInstruction
54-
g bool // long or double
56+
g bool
5557
}
5658

5759
func (instr *DCMP) Execute(frame *rtda.Frame) {
5860
v2 := frame.PopDouble()
5961
v1 := frame.PopDouble()
60-
if v1 > v2 {
62+
switch {
63+
case v1 > v2:
6164
frame.PushInt(1)
62-
} else if v1 == v2 {
65+
case v1 == v2:
6366
frame.PushInt(0)
64-
} else if v1 < v2 {
67+
case v1 < v2:
6568
frame.PushInt(-1)
66-
} else if instr.g {
69+
case instr.g:
6770
frame.PushInt(1)
68-
} else {
71+
default:
6972
frame.PushInt(-1)
7073
}
7174
}

rtda/heap/class_loader.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,6 @@ func (loader *ClassLoader) getRefArrayClassByName(arrClassName string) *Class {
109109
return loader.loadArrayClass(arrClassName)
110110
}
111111

112-
func (loader *ClassLoader) ClassPath() *classpath.ClassPath {
113-
return loader.classPath
114-
}
115-
116112
func (loader *ClassLoader) JLObjectClass() *Class {
117113
return loader.jlObjectClass
118114
}

rtda/heap/method_vtable.go

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ func createVtable(class *Class) {
1818
if i := indexOf(class.vtable, m); i > -1 {
1919
class.vtable[i] = m // override
2020
} else {
21-
addVmethod(class, m)
21+
class.vtable = append(class.vtable, m)
2222
}
2323
}
2424
}
2525

26-
_eachInterfaceMethod(class, func(m *Method) {
26+
forEachInterfaceMethod(class, func(m *Method) {
2727
if i := indexOf(class.vtable, m); i < 0 {
28-
addVmethod(class, m)
28+
class.vtable = append(class.vtable, m)
2929
}
3030
})
3131
}
@@ -57,21 +57,10 @@ func indexOf(vtable []*Method, m *Method) int {
5757
return -1
5858
}
5959

60-
func addVmethod(class *Class, m *Method) {
61-
_len := len(class.vtable)
62-
if _len == cap(class.vtable) {
63-
newVtable := make([]*Method, _len, _len+8)
64-
copy(newVtable, class.vtable)
65-
class.vtable = newVtable
66-
}
67-
68-
class.vtable = append(class.vtable, m)
69-
}
70-
7160
// visit all interface methods
72-
func _eachInterfaceMethod(class *Class, f func(*Method)) {
61+
func forEachInterfaceMethod(class *Class, f func(*Method)) {
7362
for _, iface := range class.Interfaces {
74-
_eachInterfaceMethod(iface, f)
63+
forEachInterfaceMethod(iface, f)
7564
for _, m := range iface.Methods {
7665
f(m)
7766
}

rtda/heap/object_array.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func newPrimitiveArray(arrClass *Class, count uint) *Object {
4040
return newObj(arrClass, make([]int16, count), nil)
4141
case "[I":
4242
return newObj(arrClass, make([]int32, count), nil)
43-
case "[L":
43+
case "[J":
4444
return newObj(arrClass, make([]int64, count), nil)
4545
case "[F":
4646
return newObj(arrClass, make([]float32, count), nil)

0 commit comments

Comments
 (0)