File tree Expand file tree Collapse file tree 1 file changed +12
-5
lines changed Expand file tree Collapse file tree 1 file changed +12
-5
lines changed Original file line number Diff line number Diff line change @@ -3119,11 +3119,18 @@ internal func _walkKeyPathPattern<W: KeyPathPatternVisitor>(
3119
3119
as: Int32 . self)
3120
3120
let descriptor =
3121
3121
_resolveRelativeIndirectableAddress ( descriptorBase, descriptorOffset)
3122
- let descriptorHeader =
3123
- descriptor. load ( as: RawKeyPathComponent . Header. self)
3124
- if descriptorHeader. isTrivialPropertyDescriptor {
3125
- // If the descriptor is trivial, then use the local candidate.
3126
- // Skip the external generic parameter accessors to get to it.
3122
+ let descriptorHeader : RawKeyPathComponent . Header
3123
+ if descriptor != UnsafeRawPointer ( bitPattern: 0 ) {
3124
+ descriptorHeader = descriptor. load ( as: RawKeyPathComponent . Header. self)
3125
+ if descriptorHeader. isTrivialPropertyDescriptor {
3126
+ // If the descriptor is trivial, then use the local candidate.
3127
+ // Skip the external generic parameter accessors to get to it.
3128
+ _ = _pop ( from: & buffer, as: Int32 . self, count: genericParamCount)
3129
+ continue
3130
+ }
3131
+ } else {
3132
+ // If the external property descriptor is nil, skip it to access
3133
+ // the local candidate header.
3127
3134
_ = _pop ( from: & buffer, as: Int32 . self, count: genericParamCount)
3128
3135
continue
3129
3136
}
You can’t perform that action at this time.
0 commit comments