From 9429c8ff83c531c713bedb087ecd50fed7080e6c Mon Sep 17 00:00:00 2001 From: John Date: Thu, 21 Nov 2019 22:21:57 +0800 Subject: [PATCH] improve gd.Model.Clone --- database/gdb/gdb_model.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/database/gdb/gdb_model.go b/database/gdb/gdb_model.go index 238a46f4d..3e74c574e 100644 --- a/database/gdb/gdb_model.go +++ b/database/gdb/gdb_model.go @@ -113,6 +113,15 @@ func (md *Model) Clone() *Model { newModel = md.db.Table(md.tablesInit) } *newModel = *md + // Deep copy slice attributes. + if n := len(md.whereArgs); n > 0 { + newModel.whereArgs = make([]interface{}, n) + copy(newModel.whereArgs, md.whereArgs) + } + if n := len(md.whereHolder); n > 0 { + newModel.whereHolder = make([]*whereHolder, n) + copy(newModel.whereHolder, md.whereHolder) + } return newModel }