op, internal/ops: cleanups

Remove unnecessary fill when starting a recording in op.Record.
Have the exact number of possible stack kinds in ops.Ops.

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
This commit is contained in:
Pierre Curto
2022-01-18 08:12:13 +01:00
committed by Elias Naur
parent 1de8c9f3b0
commit 9a2fee1c0e
2 changed files with 7 additions and 13 deletions
+4 -6
View File
@@ -26,7 +26,7 @@ type Ops struct {
multipOp bool
macroStack stack
stacks [5]stack
stacks [_StackKind]stack
}
type OpType byte
@@ -80,7 +80,7 @@ type StackID struct {
prev int
}
// StateOp represents a saved operation snapshop to be restored
// StateOp represents a saved operation snapshot to be restored
// later.
type StateOp struct {
id int
@@ -108,7 +108,7 @@ const (
ClipStack StackKind = iota
TransStack
PassStack
MetaStack
_StackKind
)
const (
@@ -180,9 +180,7 @@ func (op *ClipOp) Decode(data []byte) {
func Reset(o *Ops) {
o.macroStack = stack{}
for i := range o.stacks {
o.stacks[i] = stack{}
}
o.stacks = [_StackKind]stack{}
// Leave references to the GC.
for i := range o.refs {
o.refs[i] = nil
+3 -7
View File
@@ -153,8 +153,8 @@ func Record(o *Ops) MacroOp {
pc: ops.PCFor(&o.Internal),
}
// Reserve room for a macro definition. Updated in Stop.
ops.Write(m.ops, ops.TypeMacroLen)
m.fill()
data := ops.Write(m.ops, ops.TypeMacroLen)
data[0] = byte(ops.TypeMacro)
return m
}
@@ -162,17 +162,13 @@ func Record(o *Ops) MacroOp {
// operation for replaying it.
func (m MacroOp) Stop() CallOp {
ops.PopMacro(m.ops, m.id)
m.fill()
ops.FillMacro(m.ops, m.pc)
return CallOp{
ops: m.ops,
pc: m.pc,
}
}
func (m MacroOp) fill() {
ops.FillMacro(m.ops, m.pc)
}
// Add the recorded list of operations. Add
// panics if the Ops containing the recording
// has been reset.