Files
Cesarus85--mjolnir-vr/docs/object_matching_logs/libcmt_xtow_obj.md
T

5.7 KiB

libs/libcmt/xtow.obj exact-match ledger

This atomic lane starts from campaign commit 0261a4b3. At lane start the object was MISSING at config index 812, absent from config/parked.json, absent from every pre-existing Git ref, branch, worktree, object ledger, and production source, and explicitly announced to the other active lanes before the first production edit.

Plain-English behavior

These five wrappers turn signed or unsigned 32-bit and 64-bit integers into wide-character strings. Each wrapper first asks the corresponding narrow CRT routine to format the integer in the requested radix, converts that temporary ASCII string to wide characters, and returns the destination supplied by the caller.

Provenance and January inventory

The primary provenance is obj\i386\xtow.obj from the authentic XDK 3911 libcmt.lib. The member has SHA-256 dff1257febefde3aaf63cb045cb24a82d329b9c66066d5ff2ed0baade4a41c12, an August 2001 timestamp, compiler identifier 0x001c2426, ordinary C CodeView, and source path d:\xbox-finalfre\private\sdktools\crt\crtw32\convert\xtow.c. Its five runtime function COMDATs are already strict-identical to January, so the archive member supplies both source provenance and an independent machine-code oracle. There are no target-owned runtime data sections or aliases.

Function Size Relocs Normalized SHA-256 Relocation destinations
__itow 43 2 ed0f767befbd88ede210efccbd2464a4a9d5167ebedbdedbf887a3e8037b67f6 __itoa, _mbstowcs
__ltow 43 2 7dcac30f9129eaac51562a842a9e902cfb093fc903fbe83a6a84d423fa3e0682 __ltoa, _mbstowcs
__ultow 43 2 7dcac30f9129eaac51562a842a9e902cfb093fc903fbe83a6a84d423fa3e0682 __ultoa, _mbstowcs
__i64tow 46 2 6ba639a84d06657e1135e8d5854a9e4c303941f182a1b33d4b90ff2ed9c1597b __i64toa, _mbstowcs
__ui64tow 46 2 6ba639a84d06657e1135e8d5854a9e4c303941f182a1b33d4b90ff2ed9c1597b __ui64toa, _mbstowcs

CodeView and the function frames prove the narrow scratch-buffer sizes: 20 bytes for int, 40 bytes for long/unsigned long, and 80 bytes for the 64-bit variants. Every wrapper passes that exact buffer size to mbstowcs and returns its caller-owned wide destination.

Experiment matrix

ID Source shape Size T/B Relocs T/B Base hash First divergence Siblings Decision
E01 XDK-attested narrow conversion, fixed local buffer, mbstowcs, destination return 43/43; 43/43; 43/43; 46/46; 46/46 2/2 each ed0f767b...; 7dcac30f...; 7dcac30f...; 6ba639a8...; 6ba639a8... none 5/5 exact; no runtime data accepted on first build

Rules and disposition

Every source-shape change, if E01 misses, changes one provenance-backed factor and records strict measurements here. No assembly, volatile, forced inlining, undefined behavior, byte forcing, optimizer pragma, flag change, raw object patch, or comparator waiver is permitted. The object is not eligible for Matching until all five functions and their COFF ownership pass the hardened comparator and all project gates.

Strict verification

XDK 3911 CL 13.00.9254.1 compiled the retained source with the configured /O1 /Gy /I"xbox/include" flags. The hardened comparator reports section_infos_equal for all five functions, with the exact sizes, normalized hashes, relocation addresses/types/destinations/addends listed above. Independent COFF inspection confirms five external, one-byte-aligned, pick-no-duplicates .text COMDATs. The candidate and target own no runtime .rdata, .data, .bss, or aliases; compiler-only directives and CodeView are discardable metadata.

A forced rebuild reproduced the strict result. Both full halobetacache_build and libcmt_build pass. Regenerated progress reports 335/833 completed objects overall, 267/468 Halo objects, and 68/212 libcmt objects. Libcmt reports 98/476 exact functions and 5,665/55,015 exact code bytes; this object contributes one completed object, five functions, and 221 meaningful code bytes. The semantic audit scans 437 units, evaluates 3,535 functions, accepts 3,451 strict functions, and reports zero unit errors. The object-admission audit finds no candidate, revocation, or contradiction for this object; its sole contradiction is the unrelated pre-existing source/shell/shell_xbox entry. All 179 tooling tests pass.

House/Berth and original-bug audit

The retained implementation is readable C directly reflecting the XDK member's CodeView, frame sizes, calls, and return values. Parameters are explicitly typed and vertically formatted. The only numeric buffer sizes are source-level storage capacities proven independently by the frames and the matching mbstowcs third arguments; they are not arbitrary code-generation magic. The source contains no assembly, volatile, forced inlining, undefined behavior, byte forcing, optimizer pragma, compiler-flag exception, alignment trick, raw object patch, or comparator waiver.

The five wrappers preserve their original CRT contracts. The caller remains responsible for supplying an adequately sized wide-character destination, as with the historical APIs; that documented contract is not a newly discovered original bug. No target-proven defect warrants a BUG (original) annotation.

Disposition

The complete object is strict exact and eligible for Matching. No fuzzy percentage, semantic approximation, partial-object credit, or allowlist is used. The clean-commit fail-closed regression snapshot, forced rebuild, and check classify all five functions as still_exact, with no failures, warnings, changed non-exact functions, newly exact surprises, or ownership changes.