@@ -241,13 +241,6 @@ func (doc *T) addCallbackToSpec(c *CallbackRef, refNameResolver RefNameResolver,
241241 return false
242242 }
243243 name := refNameResolver (c .Ref )
244-
245- if doc .Components == nil {
246- doc .Components = & Components {}
247- }
248- if doc .Components .Callbacks == nil {
249- doc .Components .Callbacks = & Callbacks {}
250- }
251244 c .Ref = "#/components/callbacks/" + name
252245 doc .Components .Callbacks .Set (name , & CallbackRef {Value : c .Value })
253246 return true
@@ -354,6 +347,13 @@ func (doc *T) derefPaths(paths *orderedmap.OrderedMap[string, *PathItem], refNam
354347 if op .RequestBody != nil && op .RequestBody .Value != nil {
355348 doc .derefRequestBody (* op .RequestBody .Value , refNameResolver , pathIsExternal || isExternal )
356349 }
350+
351+ if doc .Components == nil {
352+ doc .Components = & Components {}
353+ }
354+ if doc .Components .Callbacks == nil {
355+ doc .Components .Callbacks = NewCallbacksWithCapacity (op .Callbacks .Len ())
356+ }
357357 for pair := op .Callbacks .Iter (); pair != nil ; pair = pair .Next () {
358358 cb := pair .Value
359359 isExternal := doc .addCallbackToSpec (cb , refNameResolver , pathIsExternal )
@@ -362,6 +362,7 @@ func (doc *T) derefPaths(paths *orderedmap.OrderedMap[string, *PathItem], refNam
362362 doc .derefPaths (cbValue , refNameResolver , pathIsExternal || isExternal )
363363 }
364364 }
365+
365366 doc .derefResponses (op .Responses , refNameResolver , pathIsExternal )
366367 for _ , param := range op .Parameters {
367368 isExternal := doc .addParameterToSpec (param , refNameResolver , pathIsExternal )
@@ -425,6 +426,12 @@ func (doc *T) InternalizeRefs(ctx context.Context, refNameResolver func(ref stri
425426 doc .derefExamples (components .Examples , refNameResolver , false )
426427 doc .derefLinks (components .Links , refNameResolver , false )
427428
429+ if doc .Components == nil {
430+ doc .Components = & Components {}
431+ }
432+ if doc .Components .Callbacks == nil {
433+ doc .Components .Callbacks = NewCallbacksWithCapacity (components .Callbacks .Len ())
434+ }
428435 for pair := components .Callbacks .Iter (); pair != nil ; pair = pair .Next () {
429436 cb := pair .Value
430437 isExternal := doc .addCallbackToSpec (cb , refNameResolver , false )
0 commit comments