Fix unsafe precondition violation when building with nightly rustc (#8691)

Fixes #8658

Release Notes:

- N/A
This commit is contained in:
Liam Murphy 2024-03-02 18:01:44 +11:00 committed by GitHub
parent e5e6c7f09d
commit 0903062933
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5,7 +5,7 @@ use crate::{
MenuItem, PathPromptOptions, Platform, PlatformDisplay, PlatformInput, PlatformTextSystem,
PlatformWindow, Result, SemanticVersion, Task, WindowAppearance, WindowOptions,
};
use anyhow::anyhow;
use anyhow::{anyhow, bail};
use block::ConcreteBlock;
use cocoa::{
appkit::{
@ -685,6 +685,9 @@ impl Platform for MacPlatform {
Err(anyhow!("app is not running inside a bundle"))
} else {
let version: id = msg_send![bundle, objectForInfoDictionaryKey: ns_string("CFBundleShortVersionString")];
if version.is_null() {
bail!("bundle does not have version");
}
let len = msg_send![version, lengthOfBytesUsingEncoding: NSUTF8StringEncoding];
let bytes = version.UTF8String() as *const u8;
let version = str::from_utf8(slice::from_raw_parts(bytes, len)).unwrap();