mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
internal/ops: avoid bounds check in OpType.Size()
Signed-off-by: Egon Elbre <egonelbre@gmail.com>
This commit is contained in:
+43
-41
@@ -380,48 +380,50 @@ func DecodeLoad(data []byte) int {
|
||||
return int(bo.Uint32(data[1:]))
|
||||
}
|
||||
|
||||
var opSize = [0x100]byte{
|
||||
TypeMacro: TypeMacroLen,
|
||||
TypeCall: TypeCallLen,
|
||||
TypeDefer: TypeDeferLen,
|
||||
TypePushTransform: TypePushTransformLen,
|
||||
TypeTransform: TypeTransformLen,
|
||||
TypePopTransform: TypePopTransformLen,
|
||||
TypeInvalidate: TypeRedrawLen,
|
||||
TypeImage: TypeImageLen,
|
||||
TypePaint: TypePaintLen,
|
||||
TypeColor: TypeColorLen,
|
||||
TypeLinearGradient: TypeLinearGradientLen,
|
||||
TypePass: TypePassLen,
|
||||
TypePopPass: TypePopPassLen,
|
||||
TypePointerInput: TypePointerInputLen,
|
||||
TypeClipboardRead: TypeClipboardReadLen,
|
||||
TypeClipboardWrite: TypeClipboardWriteLen,
|
||||
TypeSource: TypeSourceLen,
|
||||
TypeTarget: TypeTargetLen,
|
||||
TypeOffer: TypeOfferLen,
|
||||
TypeKeyInput: TypeKeyInputLen,
|
||||
TypeKeyFocus: TypeKeyFocusLen,
|
||||
TypeKeySoftKeyboard: TypeKeySoftKeyboardLen,
|
||||
TypeSave: TypeSaveLen,
|
||||
TypeLoad: TypeLoadLen,
|
||||
TypeAux: TypeAuxLen,
|
||||
TypeClip: TypeClipLen,
|
||||
TypePopClip: TypePopClipLen,
|
||||
TypeProfile: TypeProfileLen,
|
||||
TypeCursor: TypeCursorLen,
|
||||
TypePath: TypePathLen,
|
||||
TypeStroke: TypeStrokeLen,
|
||||
TypeSemanticLabel: TypeSemanticLabelLen,
|
||||
TypeSemanticDesc: TypeSemanticDescLen,
|
||||
TypeSemanticClass: TypeSemanticClassLen,
|
||||
TypeSemanticSelected: TypeSemanticSelectedLen,
|
||||
TypeSemanticDisabled: TypeSemanticDisabledLen,
|
||||
TypeSnippet: TypeSnippetLen,
|
||||
TypeSelection: TypeSelectionLen,
|
||||
TypeActionInput: TypeActionInputLen,
|
||||
}
|
||||
|
||||
func (t OpType) Size() int {
|
||||
return [...]int{
|
||||
TypeMacroLen,
|
||||
TypeCallLen,
|
||||
TypeDeferLen,
|
||||
TypePushTransformLen,
|
||||
TypeTransformLen,
|
||||
TypePopTransformLen,
|
||||
TypeRedrawLen,
|
||||
TypeImageLen,
|
||||
TypePaintLen,
|
||||
TypeColorLen,
|
||||
TypeLinearGradientLen,
|
||||
TypePassLen,
|
||||
TypePopPassLen,
|
||||
TypePointerInputLen,
|
||||
TypeClipboardReadLen,
|
||||
TypeClipboardWriteLen,
|
||||
TypeSourceLen,
|
||||
TypeTargetLen,
|
||||
TypeOfferLen,
|
||||
TypeKeyInputLen,
|
||||
TypeKeyFocusLen,
|
||||
TypeKeySoftKeyboardLen,
|
||||
TypeSaveLen,
|
||||
TypeLoadLen,
|
||||
TypeAuxLen,
|
||||
TypeClipLen,
|
||||
TypePopClipLen,
|
||||
TypeProfileLen,
|
||||
TypeCursorLen,
|
||||
TypePathLen,
|
||||
TypeStrokeLen,
|
||||
TypeSemanticLabelLen,
|
||||
TypeSemanticDescLen,
|
||||
TypeSemanticClassLen,
|
||||
TypeSemanticSelectedLen,
|
||||
TypeSemanticDisabledLen,
|
||||
TypeSnippetLen,
|
||||
TypeSelectionLen,
|
||||
TypeActionInputLen,
|
||||
}[t-firstOpIndex]
|
||||
return int(opSize[t])
|
||||
}
|
||||
|
||||
func (t OpType) NumRefs() int {
|
||||
|
||||
Reference in New Issue
Block a user