Skip to content

Commit f946177

Browse files
committed
Merge remote-tracking branch 'origin/main' into rebranch
2 parents bbc6b61 + dfc9647 commit f946177

File tree

2 files changed

+53
-51
lines changed

2 files changed

+53
-51
lines changed

.github/CODEOWNERS

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@
8282
/include/swift/AST/DiagnosticsClangImporter.def @zoecarver @egorzhdan @beccadax @ian-twilightcoder @Xazax-hun @j-hui @fahadnayyar @susmonteiro
8383
/include/swift/AST/DiagnosticsDriver.def @artemcm
8484
/include/swift/AST/DiagnosticsFrontend.def @artemcm @tshortli
85-
/include/swift/AST/DiagnosticsIDE.def @ahoppen @bnbarham @hamishknight @rintaro
85+
/include/swift/AST/DiagnosticsIDE.def @bnbarham @hamishknight @rintaro
8686
/include/swift/AST/DiagnosticsIRGen.def @rjmccall
8787
/include/swift/AST/DiagnosticsModuleDiffer.def @nkcsgexi
88-
/include/swift/AST/DiagnosticsParse.def @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
89-
/include/swift/AST/DiagnosticsRefactoring.def @ahoppen @bnbarham @hamishknight @rintaro
88+
/include/swift/AST/DiagnosticsParse.def @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
89+
/include/swift/AST/DiagnosticsRefactoring.def @bnbarham @hamishknight @rintaro
9090
/include/swift/AST/DiagnosticsSIL.def @jckarter
9191
/include/swift/AST/Evaluator* @CodaFi @slavapestov
9292
/include/swift/Basic/ @DougGregor
@@ -95,21 +95,21 @@
9595
/include/swift/DependencyScan @artemcm @cachemeifyoucan
9696
/include/swift/Driver*/ @artemcm
9797
/include/swift/Frontend*/ @artemcm @tshortli
98-
/include/swift/IDE/ @ahoppen @bnbarham @hamishknight @rintaro
98+
/include/swift/IDE/ @bnbarham @hamishknight @rintaro
9999
/include/swift/IRGen/ @rjmccall
100-
/include/swift/Index/ @ahoppen @bnbarham @hamishknight @rintaro
100+
/include/swift/Index/ @bnbarham @hamishknight @rintaro
101101
/include/swift/Markup/ @nkcsgexi
102102
/include/swift/Migrator/ @nkcsgexi
103103
/include/swift/Option/*Options* @tshortli
104-
/include/swift/Parse/ @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
104+
/include/swift/Parse/ @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
105105
/include/swift/PrintAsClang @zoecarver @egorzhdan @Xazax-hun @j-hui @fahadnayyar @susmonteiro
106-
/include/swift/Refactoring @ahoppen @bnbarham @hamishknight @rintaro
106+
/include/swift/Refactoring @bnbarham @hamishknight @rintaro
107107
/include/swift/Runtime/ @rjmccall @compnerd
108108
/include/swift/SIL/ @jckarter
109-
/include/swift/SIL/*Coverage* @ahoppen @bnbarham @hamishknight @rintaro
109+
/include/swift/SIL/*Coverage* @bnbarham @hamishknight @rintaro
110110
/include/swift/SIL/*DebugInfo* @adrian-prantl
111111
/include/swift/SIL/SILDebug* @adrian-prantl
112-
/include/swift/SIL/SILProfiler.h @ahoppen @bnbarham @hamishknight @rintaro
112+
/include/swift/SIL/SILProfiler.h @bnbarham @hamishknight @rintaro
113113
/include/swift/SILOptimizer/ @eeckstein
114114
/include/swift/SILOptimizer/Utils/Distributed* @ktoso
115115
/include/swift/Sema/ @hborla @slavapestov @xedin
@@ -134,7 +134,7 @@
134134
/lib/AST/Evaluator* @CodaFi @slavapestov
135135
/lib/AST/ModuleLoader.cpp @artemcm
136136
/lib/AST/RequirementMachine/ @slavapestov
137-
/lib/ASTGen/ @ahoppen @bnbarham @CodaFi @hamishknight @rintaro
137+
/lib/ASTGen/ @bnbarham @CodaFi @hamishknight @rintaro
138138
/lib/Basic/ @DougGregor
139139
/lib/Basic/Windows @compnerd
140140
/lib/ClangImporter @zoecarver @egorzhdan @beccadax @ian-twilightcoder @Xazax-hun @j-hui @fahadnayyar @susmonteiro
@@ -146,25 +146,25 @@
146146
/lib/DriverTool/sil_opt* @eeckstein
147147
/lib/DriverTool/swift_symbolgraph_extract_main.cpp @QuietMisdreavus
148148
/lib/Frontend*/ @artemcm @tshortli
149-
/lib/IDE/ @ahoppen @bnbarham @hamishknight @rintaro
150-
/lib/IDETool/ @ahoppen @bnbarham @hamishknight @rintaro
149+
/lib/IDE/ @bnbarham @hamishknight @rintaro
150+
/lib/IDETool/ @bnbarham @hamishknight @rintaro
151151
/lib/IRGen/ @rjmccall
152-
/lib/IRGen/*Coverage* @ahoppen @bnbarham @hamishknight @rintaro
152+
/lib/IRGen/*Coverage* @bnbarham @hamishknight @rintaro
153153
/lib/IRGen/*Debug* @adrian-prantl
154154
/lib/IRGen/*Distributed* @ktoso
155-
/lib/Index/ @ahoppen @bnbarham @hamishknight @rintaro
155+
/lib/Index/ @bnbarham @hamishknight @rintaro
156156
/lib/Macros/Sources/SwiftMacros/Swiftify* @hnrklssn @Xazax-hun
157157
/lib/Markup/ @nkcsgexi
158158
/lib/Migrator/ @nkcsgexi
159-
/lib/Parse/ @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
159+
/lib/Parse/ @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
160160
/lib/PrintAsClang @zoecarver @egorzhdan @Xazax-hun @j-hui @fahadnayyar @susmonteiro
161-
/lib/Refactoring/ @ahoppen @bnbarham @hamishknight @rintaro
161+
/lib/Refactoring/ @bnbarham @hamishknight @rintaro
162162
/lib/SIL/ @jckarter
163163
/lib/SIL/**/*DebugInfo* @adrian-prantl
164-
/lib/SIL/IR/*Coverage* @ahoppen @bnbarham @hamishknight @rintaro
164+
/lib/SIL/IR/*Coverage* @bnbarham @hamishknight @rintaro
165165
/lib/SIL/IR/SILDebug* @adrian-prantl
166166
/lib/SIL/IR/SILLocation* @adrian-prantl
167-
/lib/SIL/IR/SILProfiler.cpp @ahoppen @bnbarham @hamishknight @rintaro
167+
/lib/SIL/IR/SILProfiler.cpp @bnbarham @hamishknight @rintaro
168168
/lib/SILGen/ @jckarter
169169
/lib/SILGen/*Distributed* @ktoso
170170
/lib/SILOptimizer/ @eeckstein
@@ -213,7 +213,7 @@
213213

214214
# test
215215
/test/*Demangl*/ @rjmccall
216-
/test/ASTGen/ @ahoppen @bnbarham @CodaFi @hamishknight @rintaro
216+
/test/ASTGen/ @bnbarham @CodaFi @hamishknight @rintaro
217217
/test/Concurrency/ @ktoso
218218
/test/Constraints/ @hborla @xedin
219219
/test/DebugInfo/ @adrian-prantl
@@ -223,14 +223,14 @@
223223
/test/Frontend/ @artemcm @tshortli
224224
/test/Generics/ @hborla @slavapestov
225225
/test/Generics/inverse* @kavon
226-
/test/IDE/ @ahoppen @bnbarham @hamishknight @rintaro
226+
/test/IDE/ @bnbarham @hamishknight @rintaro
227227
/test/IRGen/ @AnthonyLatsis @rjmccall
228-
/test/Index/ @ahoppen @bnbarham @hamishknight @rintaro
228+
/test/Index/ @bnbarham @hamishknight @rintaro
229229
/test/Interop/ @zoecarver @egorzhdan @Xazax-hun @j-hui @fahadnayyar @susmonteiro @hnrklssn
230230
/test/Macros/SwiftifyImport @hnrklssn @Xazax-hun
231231
/test/Migrator/ @nkcsgexi
232-
/test/Parse/ @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
233-
/test/Profiler @ahoppen @bnbarham @hamishknight @rintaro
232+
/test/Parse/ @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
233+
/test/Profiler @bnbarham @hamishknight @rintaro
234234
/test/Reflection/ @slavapestov
235235
/test/Runtime/ @rjmccall
236236
/test/SIL/ @jckarter
@@ -242,15 +242,15 @@
242242
/test/Sema/ @hborla @slavapestov @xedin
243243
/test/Sema/moveonly* @kavon
244244
/test/Serialization/ @xymus
245-
/test/SourceKit/ @ahoppen @bnbarham @hamishknight @rintaro
245+
/test/SourceKit/ @bnbarham @hamishknight @rintaro
246246
/test/SymbolGraph/ @QuietMisdreavus
247247
/test/abi/ @swiftlang/standard-librarians
248248
/test/decl/ @hborla @slavapestov
249249
/test/decl/protocol/ @AnthonyLatsis @hborla @slavapestov
250250
# FIXME: This file could have a dedicated directory.
251251
/test/decl/protocol/special/DistributedActor.swift @ktoso
252252
/test/expr/ @hborla @slavapestov @xedin
253-
/test/refactoring/ @ahoppen @bnbarham @hamishknight @rintaro
253+
/test/refactoring/ @bnbarham @hamishknight @rintaro
254254
/test/sil* @jckarter
255255
/test/sil-opt* @eeckstein
256256
/test/stdlib/ @swiftlang/standard-librarians
@@ -260,25 +260,25 @@
260260
# tools
261261
# TODO: /tools
262262
/tools/*reflection/ @slavapestov
263-
/tools/SourceKit @ahoppen @bnbarham @hamishknight @rintaro
263+
/tools/SourceKit @bnbarham @hamishknight @rintaro
264264
/tools/driver/ @artemcm
265265
/tools/lldb-moduleimport-test/ @adrian-prantl
266266
/tools/swift-demangle* @rjmccall
267-
/tools/swift-ide-test @ahoppen @bnbarham @hamishknight @rintaro
267+
/tools/swift-ide-test @bnbarham @hamishknight @rintaro
268268
/tools/swift-inspect @mikeash @al45tair @compnerd
269-
/tools/swift-refactor @ahoppen @bnbarham @hamishknight @rintaro
269+
/tools/swift-refactor @bnbarham @hamishknight @rintaro
270270

271271
# unittests
272272
/unittests/*Demangl*/ @rjmccall
273273
/unittests/AST/ @hborla @slavapestov @xedin
274274
/unittests/AST/*Evaluator* @CodaFi @slavapestov
275275
/unittests/DependencyScan/ @artemcm @cachemeifyoucan
276276
/unittests/Frontend*/ @artemcm @tshortli
277-
/unittests/Parse/ @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
277+
/unittests/Parse/ @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
278278
/unittests/Reflection/ @slavapestov
279279
/unittests/SIL/ @jckarter
280280
/unittests/Sema/ @hborla @xedin
281-
/unittests/SourceKit/ @ahoppen @bnbarham @rintaro @hamishknight
281+
/unittests/SourceKit/ @bnbarham @rintaro @hamishknight
282282
/unittests/runtime/ @rjmccall
283283

284284
# userdocs
@@ -288,25 +288,25 @@
288288
/utils/*windows* @compnerd
289289
/utils/build_swift/ @etcwilde @justice-adams-apple @shahmishal
290290
/utils/generate-xcode @hamishknight
291-
/utils/gyb_sourcekit_support/ @ahoppen @bnbarham @hamishknight @rintaro
292-
/utils/sourcekit_fuzzer/ @ahoppen @bnbarham @hamishknight @rintaro
291+
/utils/gyb_sourcekit_support/ @bnbarham @hamishknight @rintaro
292+
/utils/sourcekit_fuzzer/ @bnbarham @hamishknight @rintaro
293293
/utils/swift-xcodegen/ @hamishknight
294294
/utils/swift_build_support/ @etcwilde @justice-adams-apple @shahmishal
295-
/utils/swift_build_support/products/earlyswiftsyntax.py @ahoppen @bnbarham @hamishknight @rintaro
296-
/utils/swift_build_support/products/skstresstester.py @ahoppen @bnbarham @hamishknight @rintaro
297-
/utils/swift_build_support/products/sourcekitlsp.py @ahoppen @bnbarham @hamishknight @rintaro
298-
/utils/swift_build_support/products/swiftformat.py @ahoppen @allevato @bnbarham @hamishknight @rintaro
299-
/utils/swift_build_support/products/swiftsyntax.py @ahoppen @bnbarham @hamishknight @rintaro
295+
/utils/swift_build_support/products/earlyswiftsyntax.py @bnbarham @hamishknight @rintaro
296+
/utils/swift_build_support/products/skstresstester.py @bnbarham @hamishknight @rintaro
297+
/utils/swift_build_support/products/sourcekitlsp.py @bnbarham @hamishknight @rintaro
298+
/utils/swift_build_support/products/swiftformat.py @allevato @bnbarham @hamishknight @rintaro
299+
/utils/swift_build_support/products/swiftsyntax.py @bnbarham @hamishknight @rintaro
300300
/utils/update-checkout* @etcwilde @justice-adams-apple @shahmishal
301301
/utils/update_checkout/ @etcwilde @justice-adams-apple @shahmishal
302302
/utils/update_checkout/update-checkout-config.json @shahmishal
303303
/utils/vim/ @compnerd
304304

305305
# validation-test
306306
/validation-test/Driver/ @artemcm
307-
/validation-test/IDE/ @ahoppen @bnbarham @rintaro @hamishknight
307+
/validation-test/IDE/ @bnbarham @rintaro @hamishknight
308308
/validation-test/IRGen/ @rjmccall
309-
/validation-test/Parse/ @ahoppen @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
309+
/validation-test/Parse/ @bnbarham @CodaFi @DougGregor @hamishknight @rintaro
310310
/validation-test/Reflection/ @slavapestov
311311
/validation-test/Runtime/ @rjmccall
312312
/validation-test/SIL/ @jckarter

stdlib/public/runtime/HeapObject.cpp

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,16 @@ HeapObject *swift::swift_unownedRetain(HeapObject *object) {
547547
#endif
548548
}
549549

550+
// Assert that the metadata is a class or ErrorObject, for unowned operations.
551+
// Other types of metadata are not supposed to be used with unowned.
552+
static void checkMetadataForUnownedRR(HeapObject *object) {
553+
assert(object->metadata->isClassObject() ||
554+
object->metadata->getKind() == MetadataKind::ErrorObject);
555+
if (object->metadata->isClassObject())
556+
assert(
557+
static_cast<const ClassMetadata *>(object->metadata)->isTypeMetadata());
558+
}
559+
550560
void swift::swift_unownedRelease(HeapObject *object) {
551561
#ifdef SWIFT_THREADING_NONE
552562
swift_nonatomic_unownedRelease(object);
@@ -555,9 +565,7 @@ void swift::swift_unownedRelease(HeapObject *object) {
555565
if (!isValidPointerForNativeRetain(object))
556566
return;
557567

558-
// Only class objects can be unowned-retained and unowned-released.
559-
assert(object->metadata->isClassObject());
560-
assert(static_cast<const ClassMetadata*>(object->metadata)->isTypeMetadata());
568+
checkMetadataForUnownedRR(object);
561569

562570
if (object->refCounts.decrementUnownedShouldFree(1)) {
563571
auto classMetadata = static_cast<const ClassMetadata*>(object->metadata);
@@ -582,9 +590,7 @@ void swift::swift_nonatomic_unownedRelease(HeapObject *object) {
582590
if (!isValidPointerForNativeRetain(object))
583591
return;
584592

585-
// Only class objects can be unowned-retained and unowned-released.
586-
assert(object->metadata->isClassObject());
587-
assert(static_cast<const ClassMetadata*>(object->metadata)->isTypeMetadata());
593+
checkMetadataForUnownedRR(object);
588594

589595
if (object->refCounts.decrementUnownedShouldFreeNonAtomic(1)) {
590596
auto classMetadata = static_cast<const ClassMetadata*>(object->metadata);
@@ -615,9 +621,7 @@ void swift::swift_unownedRelease_n(HeapObject *object, int n) {
615621
if (!isValidPointerForNativeRetain(object))
616622
return;
617623

618-
// Only class objects can be unowned-retained and unowned-released.
619-
assert(object->metadata->isClassObject());
620-
assert(static_cast<const ClassMetadata*>(object->metadata)->isTypeMetadata());
624+
checkMetadataForUnownedRR(object);
621625

622626
if (object->refCounts.decrementUnownedShouldFree(n)) {
623627
auto classMetadata = static_cast<const ClassMetadata*>(object->metadata);
@@ -641,9 +645,7 @@ void swift::swift_nonatomic_unownedRelease_n(HeapObject *object, int n) {
641645
if (!isValidPointerForNativeRetain(object))
642646
return;
643647

644-
// Only class objects can be unowned-retained and unowned-released.
645-
assert(object->metadata->isClassObject());
646-
assert(static_cast<const ClassMetadata*>(object->metadata)->isTypeMetadata());
648+
checkMetadataForUnownedRR(object);
647649

648650
if (object->refCounts.decrementUnownedShouldFreeNonAtomic(n)) {
649651
auto classMetadata = static_cast<const ClassMetadata*>(object->metadata);

0 commit comments

Comments
 (0)