mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-08 20:47:43 +00:00
A few small bugfixes discovered from online users of openapi-changes
someone caused a panic, exposed an untested bug. Signed-off-by: quobix <dave@quobix.com>
This commit is contained in:
@@ -823,6 +823,9 @@ func AreEqual(l, r Hashable) bool {
|
||||
if l == nil || r == nil {
|
||||
return false
|
||||
}
|
||||
if reflect.ValueOf(l).IsNil() || reflect.ValueOf(r).IsNil() {
|
||||
return false
|
||||
}
|
||||
return l.Hash() == r.Hash()
|
||||
}
|
||||
|
||||
|
||||
@@ -154,7 +154,7 @@ func (p *Paths) Build(ctx context.Context, _, root *yaml.Node, idx *index.SpecIn
|
||||
err := path.Build(ctx, cNode, pNode, idx)
|
||||
|
||||
if err != nil {
|
||||
if idx.GetLogger() != nil {
|
||||
if idx != nil && idx.GetLogger() != nil {
|
||||
idx.GetLogger().Error(fmt.Sprintf("error building path item '%s'", err.Error()))
|
||||
}
|
||||
//return buildResult{}, err
|
||||
|
||||
@@ -146,12 +146,17 @@ func ComparePaths(l, r any) *PathsChanges {
|
||||
|
||||
lKeys := make(map[string]low.ValueReference[*v3.PathItem])
|
||||
rKeys := make(map[string]low.ValueReference[*v3.PathItem])
|
||||
|
||||
if lPath != nil {
|
||||
for k := range lPath.PathItems {
|
||||
lKeys[k.Value] = lPath.PathItems[k]
|
||||
}
|
||||
}
|
||||
if rPath != nil {
|
||||
for k := range rPath.PathItems {
|
||||
rKeys[k.Value] = rPath.PathItems[k]
|
||||
}
|
||||
}
|
||||
|
||||
// run every comparison in a thread.
|
||||
var mLock sync.Mutex
|
||||
@@ -199,7 +204,15 @@ func ComparePaths(l, r any) *PathsChanges {
|
||||
pc.PathItemsChanges = pathChanges
|
||||
}
|
||||
|
||||
pc.ExtensionChanges = CompareExtensions(lPath.Extensions, rPath.Extensions)
|
||||
var lExt, rExt map[low.KeyReference[string]]low.ValueReference[any]
|
||||
if lPath != nil {
|
||||
lExt = lPath.Extensions
|
||||
}
|
||||
if rPath != nil {
|
||||
rExt = rPath.Extensions
|
||||
}
|
||||
|
||||
pc.ExtensionChanges = CompareExtensions(lExt, rExt)
|
||||
}
|
||||
pc.PropertyChanges = NewPropertyChanges(changes)
|
||||
return pc
|
||||
|
||||
Reference in New Issue
Block a user