diff options
| author | Jeff Carr <[email protected]> | 2025-10-17 14:33:09 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-17 14:33:09 -0500 |
| commit | 6fb037663859bc50ac1d5bac1fdbfc722b1ab23d (patch) | |
| tree | d2df0eb57d8e62be685731bdb60e27924132d911 | |
| parent | 923ab262f624bd50c543062c4f3f2db9e577d5fb (diff) | |
still panics (maybe?)
| -rw-r--r-- | generateAppend.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/generateAppend.go b/generateAppend.go index d011ea9..fd7bdfe 100644 --- a/generateAppend.go +++ b/generateAppend.go @@ -19,12 +19,16 @@ func (msg *MsgName) simpleAppend(w io.Writer, FRUIT, APPLES, APPLE string) strin // log.Printf("\t\t(x %s) APPEND(%s)\n", FRUIT, APPLE) // append -- no check at all fmt.Fprintln(w, "// a Append() shortcut (that does Clone() with a mutex) notsure if it really works") + fmt.Fprintln(w, "// doesn't allow nil") fmt.Fprintln(w, funcdef, "{") fmt.Fprintln(w, " "+LOCK+".Lock()") fmt.Fprintln(w, " defer "+LOCK+".Unlock()") fmt.Fprintln(w, "") fmt.Fprintln(w, " // append was doing Clone() and that was poorly named.") fmt.Fprintln(w, " // now autogenpb makes Clone() for that") + fmt.Fprintln(w, " if y == nil {") + fmt.Fprintln(w, " return") + fmt.Fprintln(w, " }") fmt.Fprintln(w, " // z := proto.Clone(y).(*"+APPLE+")") fmt.Fprintln(w, " x."+APPLES+" = append(x."+APPLES+", y)") fmt.Fprintln(w, "") @@ -47,6 +51,9 @@ func (msg *MsgName) simpleAppendBy(w io.Writer, STRUCT, FUNCNAME, STRUCTVAR, VAR fmt.Fprintln(w, " "+LOCK+".Lock()") fmt.Fprintln(w, " defer "+LOCK+".Unlock()") fmt.Fprintln(w, "") + fmt.Fprintln(w, " if y == nil {") + fmt.Fprintln(w, " return false") + fmt.Fprintln(w, " }") fmt.Fprintln(w, " for _, p := range x."+STRUCTVAR+" {") fmt.Fprintln(w, " if p."+VARNAME+" == y."+VARNAME+" {") fmt.Fprintln(w, " return false") @@ -77,6 +84,9 @@ func (msg *MsgName) simpleClone(w io.Writer, FRUIT, APPLES, APPLE string) string fmt.Fprintln(w, " "+LOCK+".Lock()") fmt.Fprintln(w, " defer "+LOCK+".Unlock()") fmt.Fprintln(w, "") + fmt.Fprintln(w, " if y == nil {") + fmt.Fprintln(w, " return y") + fmt.Fprintln(w, " }") fmt.Fprintln(w, " z := proto.Clone(y).(*"+APPLE+")") fmt.Fprintln(w, " x."+APPLES+" = append(x."+APPLES+", z)") fmt.Fprintln(w, "") @@ -99,6 +109,9 @@ func (msg *MsgName) simpleCloneBy(w io.Writer, STRUCT, FUNCNAME, STRUCTVAR, VARN fmt.Fprintln(w, " "+LOCK+".Lock()") fmt.Fprintln(w, " defer "+LOCK+".Unlock()") fmt.Fprintln(w, "") + fmt.Fprintln(w, " if y == nil {") + fmt.Fprintln(w, " return false") + fmt.Fprintln(w, " }") fmt.Fprintln(w, " for _, p := range x."+STRUCTVAR+" {") fmt.Fprintln(w, " if p."+VARNAME+" == y."+VARNAME+" {") fmt.Fprintln(w, " return false") |
