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 @@ -3116,11 +3116,18 @@ internal func _walkKeyPathPattern<W: KeyPathPatternVisitor>(
3116
3116
as: Int32 . self)
3117
3117
let descriptor =
3118
3118
_resolveRelativeIndirectableAddress ( descriptorBase, descriptorOffset)
3119
- let descriptorHeader =
3120
- descriptor. load ( as: RawKeyPathComponent . Header. self)
3121
- if descriptorHeader. isTrivialPropertyDescriptor {
3122
- // If the descriptor is trivial, then use the local candidate.
3123
- // Skip the external generic parameter accessors to get to it.
3119
+ let descriptorHeader : RawKeyPathComponent . Header
3120
+ if descriptor != UnsafeRawPointer ( bitPattern: 0 ) {
3121
+ descriptorHeader = descriptor. load ( as: RawKeyPathComponent . Header. self)
3122
+ if descriptorHeader. isTrivialPropertyDescriptor {
3123
+ // If the descriptor is trivial, then use the local candidate.
3124
+ // Skip the external generic parameter accessors to get to it.
3125
+ _ = _pop ( from: & buffer, as: Int32 . self, count: genericParamCount)
3126
+ continue
3127
+ }
3128
+ } else {
3129
+ // If the external property descriptor is nil, skip it to access
3130
+ // the local candidate header.
3124
3131
_ = _pop ( from: & buffer, as: Int32 . self, count: genericParamCount)
3125
3132
continue
3126
3133
}
You can’t perform that action at this time.
0 commit comments