UnigramDev/Unigram/develop • 09f6aca • 1 files, +86/-4 Report the marshalling failures nothing else

Telegram github commits and releases

Telegram github commits and releases

@tgappsupdates

Broadcast from the most important Telegram clients' repositories

4,538 subscribers
Open in Telegram
UnigramDev/Unigram/develop09f6aca1 files, +86/-4
Report the marshalling failures nothing else can see

A managed exception thrown inside a CCW callback reaches neither unhandled
handler: CsWinRT converts it to an HRESULT at the ABI boundary, so the runtime
counts it as handled, and the fail-fast XAML raises on that HRESULT bypasses
the native filter as well. First chance is the only point it is still an
exception, and reports are written synchronously, so the record survives.

Narrow on purpose: the two types CsWinRT throws when it cannot marshal
something, one report per distinct message, eight a session. They draw on the
same token bucket as real crashes, and crash.id stays unwritten so a handled
exception does not mark the session as crashed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

UnigramDev/Unigram/developd2042c41 files, +5/-2
Spell out the kernel32 entry points

LibraryImport always generates ExactSpelling, so the bare name is looked up
verbatim and kernel32 only exports the W and A forms. DllImport found them by
probing, which it does because a CharSet leaves ExactSpelling false.

IsPasskeySupported went through GetModuleHandle behind a Lazy, so it threw
once and then threw forever.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

UnigramDev/Unigram/develop51c712d1 files, +6/-1
Recognise the HRESULT suffix CsWinRT writes

.NET Native appends "(Exception from HRESULT: 0x80004005)", CsWinRT appends
"(0x80004005)". Matching only the first left the suffix attached to every
message on the AOT build, so no sentence matched the translation table and one
fault split into a group per language.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

UnigramDev/Unigram/developf94f44c1 files, +5/-3
Produce a symbol package for the modern bundle

A sideload build does emit an .appxsym - Telegram.Msix has one beside every
bundle - and without it a tester's crash cannot be symbolicated at all, which
is what happened to the last one handed out.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

UnigramDev/Unigram/developc3135cf1 files, +1/-1
Invalidate the load in flight when recycling

Recycling reset the generation to 0, so the next load took that same number
and an outstanding continuation still matched - painting its image over the
one now bound to the brush. Advance the counter instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

#unigram
Open post in Telegram