Skip to content

Commit b664d02

Browse files
committed
Update missing parts of DynamicProperty
1 parent 0e8e4af commit b664d02

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

Sources/OpenSwiftUICore/Data/DynamicProperty/DynamicProperty.swift

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// DynamicProperty.swift
33
// OpenSwiftUICore
44
//
5-
// Audited for 6.5.4 & 3.5.2
5+
// Audited for 6.5.4
66
// Status: Complete
77
// ID: 49D2A32E637CD497C6DE29B8E060A506 (SwiftUI)
88
// ID: A4C1D658B3717A3062FEFC91A812D6EB (SwiftUICore)
@@ -310,7 +310,7 @@ extension DynamicProperty {
310310
}
311311
}
312312

313-
// MARK: - BodyAccessor [3.5.2]
313+
// MARK: - BodyAccessor [6.5.4]
314314

315315
package protocol BodyAccessor<Container, Body> {
316316
associatedtype Container
@@ -325,14 +325,14 @@ extension BodyAccessor {
325325
fields: DynamicPropertyCache.Fields
326326
) -> (_GraphValue<Body>, _DynamicPropertyBuffer?) {
327327
guard Body.self != Never.self else {
328-
preconditionFailure("\(Body.self) may not have Body == Never")
328+
preconditionFailure("\(Container.self) may not have Body == Never")
329329
}
330-
return withUnsafeMutablePointer(to: &inputs) { inputsPointer in
331-
func project<Flags: RuleThreadFlags>(flags _: Flags.Type) -> (_GraphValue<Body>, _DynamicPropertyBuffer?) {
330+
return withUnsafePointer(to: inputs) { pointer in
331+
func project<Flags>(flags _: Flags.Type) -> (_GraphValue<Body>, _DynamicPropertyBuffer?) where Flags: RuleThreadFlags {
332332
let buffer = _DynamicPropertyBuffer(
333333
fields: fields,
334334
container: container,
335-
inputs: &inputsPointer.pointee
335+
inputs: &inputs
336336
)
337337
if buffer._count == 0 {
338338
buffer.destroy()
@@ -345,7 +345,7 @@ extension BodyAccessor {
345345
let body = DynamicBody<Self, Flags>(
346346
accessor: self,
347347
container: container.value,
348-
phase: inputsPointer.pointee.phase,
348+
phase: pointer.pointee.phase,
349349
links: buffer,
350350
resetSeed: 0
351351
)
@@ -371,7 +371,7 @@ extension BodyAccessor {
371371
}
372372
}
373373

374-
// MARK: - BodyAccessorRule [3.5.2]
374+
// MARK: - BodyAccessorRule [6.5.4]
375375

376376
package protocol BodyAccessorRule {
377377
static var container: Any.Type { get }
@@ -380,9 +380,7 @@ package protocol BodyAccessorRule {
380380
static func metaProperties<T>(as: T.Type, attribute: AnyAttribute) -> [(String, AnyAttribute)]
381381
}
382382

383-
// TO BE AUDITED
384-
385-
// MARK: - RuleThreadFlags [3.5.2]
383+
// MARK: - RuleThreadFlags [6.5.4]
386384

387385
private protocol RuleThreadFlags {
388386
static var value: _AttributeType.Flags { get }
@@ -396,7 +394,7 @@ private struct MainThreadFlags: RuleThreadFlags {
396394
static var value: _AttributeType.Flags { .mainThread }
397395
}
398396

399-
// MARK: - StaticBody [3.5.2]
397+
// MARK: - StaticBody [6.5.4]
400398

401399
private struct StaticBody<Accessor: BodyAccessor, ThreadFlags: RuleThreadFlags> {
402400
let accessor: Accessor
@@ -411,7 +409,6 @@ private struct StaticBody<Accessor: BodyAccessor, ThreadFlags: RuleThreadFlags>
411409
extension StaticBody: StatefulRule {
412410
typealias Value = Accessor.Body
413411

414-
// Audited with 6.5.4
415412
func updateValue() {
416413
withObservation {
417414
accessor.updateBody(of: container, changed: true)
@@ -448,7 +445,7 @@ extension StaticBody: CustomStringConvertible {
448445
var description: String { "\(Accessor.Body.self)" }
449446
}
450447

451-
// MARK: - DynamicBody [3.5.2]
448+
// MARK: - DynamicBody [6.5.4]
452449

453450
private struct DynamicBody<Accessor: BodyAccessor, ThreadFlags: RuleThreadFlags> {
454451
let accessor: Accessor
@@ -475,7 +472,6 @@ private struct DynamicBody<Accessor: BodyAccessor, ThreadFlags: RuleThreadFlags>
475472
extension DynamicBody: StatefulRule {
476473
typealias Value = Accessor.Body
477474

478-
// Audited with 6.5.4
479475
mutating func updateValue() {
480476
if resetSeed != phase.resetSeed {
481477
links.reset()

0 commit comments

Comments
 (0)