From 5d8a2199b6c8dc5f75b529a39d196c6cb14c98c2 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 21 Aug 2025 00:18:50 +0900 Subject: container/init: op interface valid method Check ops early and eliminate duplicate checks. Signed-off-by: Ophestra --- container/initproc.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'container/initproc.go') diff --git a/container/initproc.go b/container/initproc.go index d3c37535..9b9769cd 100644 --- a/container/initproc.go +++ b/container/initproc.go @@ -16,15 +16,11 @@ func (f *Ops) Proc(target *Absolute) *Ops { } // MountProcOp mounts a new instance of [FstypeProc] on container path Target. -type MountProcOp struct { - Target *Absolute -} +type MountProcOp struct{ Target *Absolute } +func (p *MountProcOp) Valid() bool { return p != nil && p.Target != nil } func (p *MountProcOp) early(*setupState) error { return nil } func (p *MountProcOp) apply(state *setupState) error { - if p.Target == nil { - return EBADE - } target := toSysroot(p.Target.String()) if err := os.MkdirAll(target, state.ParentPerm); err != nil { return wrapErrSelf(err) @@ -35,8 +31,8 @@ func (p *MountProcOp) apply(state *setupState) error { func (p *MountProcOp) Is(op Op) bool { vp, ok := op.(*MountProcOp) - return ok && ((p == nil && vp == nil) || - (p.Target != nil && vp.Target != nil && p.Target.Is(vp.Target))) + return ok && p.Valid() && vp.Valid() && + p.Target.Is(vp.Target) } func (*MountProcOp) prefix() string { return "mounting" } func (p *MountProcOp) String() string { return fmt.Sprintf("proc on %q", p.Target) } -- cgit v1.3.1