From 7d8203b2578c62b5153fedc67d13aacd567571d3 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Wed, 5 Feb 2025 20:37:09 +0700 Subject: [PATCH] Fix[JNA]: use bitshift for packing version number When using a char array, a non-zero patch version will break the check. Changed it to bitshift. --- Natives/MinecraftResourceUtils.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Natives/MinecraftResourceUtils.m b/Natives/MinecraftResourceUtils.m index 83bbec110d..89abd13142 100644 --- a/Natives/MinecraftResourceUtils.m +++ b/Natives/MinecraftResourceUtils.m @@ -83,9 +83,9 @@ + (void)tweakVersionJson:(NSMutableDictionary *)json { if ([library[@"name"] hasPrefix:@"net.java.dev.jna:jna:"]) { // Special handling for LabyMod 1.8.9 and Forge 1.12.2(?) // we have libjnidispatch 5.13.0 in Frameworks directory - char bundledVer[4] = {5, 13, 0, 0}; - char requiredVer[4] = {(char)version[0].intValue, (char)version[1].intValue, (char)version[2].intValue, 0}; - if (*(uint32_t *)requiredVer > *(uint32_t*)bundledVer) { + uint32_t bundledVer = 5 << 16 | 13 << 8 | 0; + uint32_t requiredVer = (char)version[0].intValue << 16 | (char)version[1].intValue << 8 | (char)version[2].intValue; + if (requiredVer > bundledVer) { NSLog(@"[MCDL] Warning: JNA version required by %@ is %@ > 5.13.0, skipping JNA replacement.", json[@"id"], versionStr); continue; }