Merge branch 'feature/sunanzhi/1.6' into 'main'

fix: resolve duplicate linked list data in model caused by updating vendor

See merge request apipark/APIPark!246
This commit is contained in:
孙安智
2025-03-07 20:09:21 +08:00
+16 -12
View File
@@ -278,6 +278,7 @@ func (p *Provider) Logo() string {
}
func (r *ModelRegistry) addModel(m IModel, isDefault bool) {
_, exist := r.models.Get(m.ID())
r.models.Set(m.ID(), m)
// get lock
@@ -285,20 +286,23 @@ func (r *ModelRegistry) addModel(m IModel, isDefault bool) {
shard.Lock()
defer shard.Unlock()
// create model node
node := &modelNode{
model: m,
typeKey: m.ModelType(),
if exist {
if node, exist := r.reverseMap[m.ID()]; exist {
node.model = m
}
} else {
node := &modelNode{
model: m,
typeKey: m.ModelType(),
}
if head := r.typeIndex[m.ModelType()]; head != nil {
node.next = head
head.prev = node
}
r.typeIndex[m.ModelType()] = node
r.reverseMap[m.ID()] = node
}
// update index
if head := r.typeIndex[m.ModelType()]; head != nil {
node.next = head
head.prev = node
}
r.typeIndex[m.ModelType()] = node
r.reverseMap[m.ID()] = node
// default model
if isDefault {
r.defaultModels.Set(m.ModelType(), m)