Skip to content

Preserve full 64-bit integer values when editing and verifying plists - #31

Merged
huamidev merged 1 commit into
huamidev:mainfrom
Afloat16:fix/unsigned-integer-values
Nov 10, 2026
Merged

huamidev merged 1 commit into
huamidev:mainfrom
Afloat16:fix/unsigned-integer-values

Conversation

@Afloat16

Copy link
Copy Markdown
Contributor

Integer editing currently rejects plist values above Int64.max even though binary property lists can represent the full UInt64 range. The read-back comparison also truncates NSNumber values through int64Value, so UInt64.max can compare equal to -1.

This change parses the signed and unsigned 64-bit ranges explicitly and compares integer values by their full decimal representations. It preserves the existing Boolean and floating-point handling.

Validation:

  • Added boundary, nested comparison, binary round-trip, and write-verification rollback cases in IntegerValueTests.swift.
  • All regression executables pass on the xcode-27 macOS runner.
  • The app and Share Extension build for the iOS simulator with signing disabled.
  • Validation job.

Device cache writes were tested through the existing test writer; no physical-device write is claimed.

@huamidev
huamidev merged commit 0011529 into huamidev:main Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants