Skip to content

Commit

Permalink
Merge pull request #1610 from bugsnag/release-v6.27.3
Browse files Browse the repository at this point in the history
Release v6.27.3
  • Loading branch information
kstenerud authored Nov 15, 2023
2 parents 2f373f2 + 2405f9d commit 3ec379e
Show file tree
Hide file tree
Showing 234 changed files with 1,362 additions and 477 deletions.
200 changes: 158 additions & 42 deletions .buildkite/pipeline.full.yml

Large diffs are not rendered by default.

183 changes: 143 additions & 40 deletions .buildkite/pipeline.yml

Large diffs are not rendered by default.

32 changes: 32 additions & 0 deletions .github/workflows/downstream_updates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: downstream-updates

on:
release:
types: [released]
workflow_dispatch:
inputs:
target_version:
description: 'Version of the submodule to update downstream repos to'
required: true
type: string

jobs:
update-dependencies:
runs-on: ubuntu-latest
env:
RELEASE_VERSION: ${{ github.event_name == 'workflow_dispatch' && inputs.target_version || github.event.release.tag_name }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
strategy:
matrix:
downstream_repo: ['bugsnag/bugsnag-unity']
steps:
- name: Install libcurl4-openssl-dev and net-tools
run: |
sudo apt-get update
sudo apt-get install libcurl4-openssl-dev net-tools
- run: >
curl -X POST https://api.github.com/repos/${{ matrix.downstream_repo }}/dispatches
-H 'Content-Type: application/json'
-H "Authorization: Bearer $GITHUB_TOKEN"
-d '{"event_type":"update-dependency","client_payload": {"target_submodule":"bugsnag-cocoa", "target_version": "$RELEASE_VERSION"}}'
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,4 @@ Package.resolved
/docs/
/infer-out
/oclint.json
bb.ready
4 changes: 2 additions & 2 deletions .jazzy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ author_url: "https://www.bugsnag.com"
author: "Bugsnag Inc"
clean: false # avoid deleting docs/.git
framework_root: "Bugsnag"
github_file_prefix: "https://github.com/bugsnag/bugsnag-cocoa/tree/v6.27.2/Bugsnag"
github_file_prefix: "https://github.com/bugsnag/bugsnag-cocoa/tree/v6.27.3/Bugsnag"
github_url: "https://github.com/bugsnag/bugsnag-cocoa"
hide_documentation_coverage: true
module: "Bugsnag"
module_version: "6.27.2"
module_version: "6.27.3"
objc: true
output: "docs"
readme: "README.md"
Expand Down
4 changes: 2 additions & 2 deletions Bugsnag.podspec.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Bugsnag",
"version": "6.27.2",
"version": "6.27.3",
"summary": "The Bugsnag crash reporting framework for Apple platforms.",
"homepage": "https://bugsnag.com",
"license": "MIT",
Expand All @@ -9,7 +9,7 @@
},
"source": {
"git": "https://github.com/bugsnag/bugsnag-cocoa.git",
"tag": "v6.27.2"
"tag": "v6.27.3"
},
"ios": {
"frameworks": [
Expand Down
28 changes: 26 additions & 2 deletions Bugsnag.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -721,6 +721,14 @@
01FF490728BF8B7B001F817B /* BugsnagInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 01FF490528BF8B7B001F817B /* BugsnagInternals.h */; };
01FF490828BF8B7B001F817B /* BugsnagInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 01FF490528BF8B7B001F817B /* BugsnagInternals.h */; };
01FF490928BF8B7B001F817B /* BugsnagInternals.h in Headers */ = {isa = PBXBuildFile; fileRef = 01FF490528BF8B7B001F817B /* BugsnagInternals.h */; };
093EB6602AFE447E006EB7E3 /* Swizzle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 093EB65F2AFE447E006EB7E3 /* Swizzle.mm */; };
093EB6612AFE447E006EB7E3 /* Swizzle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 093EB65F2AFE447E006EB7E3 /* Swizzle.mm */; };
093EB6622AFE447E006EB7E3 /* Swizzle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 093EB65F2AFE447E006EB7E3 /* Swizzle.mm */; };
093EB6632AFE447E006EB7E3 /* Swizzle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 093EB65F2AFE447E006EB7E3 /* Swizzle.mm */; };
093EB6662AFE4580006EB7E3 /* BSGTestCase.mm in Sources */ = {isa = PBXBuildFile; fileRef = 093EB6652AFE4580006EB7E3 /* BSGTestCase.mm */; };
093EB6672AFE4580006EB7E3 /* BSGTestCase.mm in Sources */ = {isa = PBXBuildFile; fileRef = 093EB6652AFE4580006EB7E3 /* BSGTestCase.mm */; };
093EB6682AFE4580006EB7E3 /* BSGTestCase.mm in Sources */ = {isa = PBXBuildFile; fileRef = 093EB6652AFE4580006EB7E3 /* BSGTestCase.mm */; };
093EB6692AFE4580006EB7E3 /* BSGTestCase.mm in Sources */ = {isa = PBXBuildFile; fileRef = 093EB6652AFE4580006EB7E3 /* BSGTestCase.mm */; };
3A700A9424A63ABC0068CD1B /* BugsnagThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A700A8024A63A8E0068CD1B /* BugsnagThread.h */; settings = {ATTRIBUTES = (Public, ); }; };
3A700A9524A63AC50068CD1B /* BugsnagSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A700A8124A63A8E0068CD1B /* BugsnagSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
3A700A9624A63AC60068CD1B /* BugsnagStackframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A700A8224A63A8E0068CD1B /* BugsnagStackframe.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -1539,6 +1547,10 @@
01E8765D256684E700F4B70A /* URLSessionMock.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = URLSessionMock.m; sourceTree = "<group>"; };
01F9FCB528929336005EDD8C /* BSGSerializationTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BSGSerializationTests.m; sourceTree = "<group>"; };
01FF490528BF8B7B001F817B /* BugsnagInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugsnagInternals.h; sourceTree = "<group>"; };
093EB65E2AFE447E006EB7E3 /* Swizzle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Swizzle.h; sourceTree = "<group>"; };
093EB65F2AFE447E006EB7E3 /* Swizzle.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Swizzle.mm; sourceTree = "<group>"; };
093EB6642AFE4580006EB7E3 /* BSGTestCase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BSGTestCase.h; sourceTree = "<group>"; };
093EB6652AFE4580006EB7E3 /* BSGTestCase.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = BSGTestCase.mm; sourceTree = "<group>"; };
3A700A8024A63A8E0068CD1B /* BugsnagThread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugsnagThread.h; sourceTree = "<group>"; };
3A700A8124A63A8E0068CD1B /* BugsnagSession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugsnagSession.h; sourceTree = "<group>"; };
3A700A8224A63A8E0068CD1B /* BugsnagStackframe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BugsnagStackframe.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1934,8 +1946,6 @@
00AD1C7F24869B0E00A27979 /* BugsnagTests */ = {
isa = PBXGroup;
children = (
CBEC893E2A4ACD230088A3CE /* FileBasedTest.h */,
CBEC893F2A4ACD230088A3CE /* FileBasedTest.m */,
019480D32625F3EB00E833ED /* BSGAppKitTests.m */,
008966BD2486D43500DC48C2 /* BSGClientObserverTests.m */,
00896A3F2486DBDD00DC48C2 /* BSGConfigurationBuilderTests.m */,
Expand All @@ -1953,6 +1963,8 @@
01F9FCB528929336005EDD8C /* BSGSerializationTests.m */,
CB6419AA25A73E8C00613D25 /* BSGStorageMigratorV0V1Tests.m */,
017DCF9A287422BB000ECB22 /* BSGTelemetryTests.m */,
093EB6642AFE4580006EB7E3 /* BSGTestCase.h */,
093EB6652AFE4580006EB7E3 /* BSGTestCase.mm */,
01DE903B26CEAF9E00455213 /* BSGUtilsTests.m */,
CB9103632502320A00E9D1E2 /* BugsnagApiClientTest.m */,
E701FA9E2490EF4A008D842F /* BugsnagApiValidationTest.m */,
Expand Down Expand Up @@ -1995,9 +2007,13 @@
E701FAAE2490EFE8008D842F /* ConfigurationApiValidationTest.m */,
01BDB21425DEC02900A91FAF /* Data */,
E701FAAA2490EFD9008D842F /* EventApiValidationTest.m */,
CBEC893E2A4ACD230088A3CE /* FileBasedTest.h */,
CBEC893F2A4ACD230088A3CE /* FileBasedTest.m */,
00E636C324878FFC006CBF1A /* Info.plist */,
01B14C55251CE55F00118748 /* report-react-native-promise-rejection.json */,
008966B72486D43500DC48C2 /* report.json */,
093EB65E2AFE447E006EB7E3 /* Swizzle.h */,
093EB65F2AFE447E006EB7E3 /* Swizzle.mm */,
004E35392487B375007FBAE4 /* Tests-Bridging-Header.h */,
CBA22499251E429C00B87416 /* TestSupport.h */,
CBA2249A251E429C00B87416 /* TestSupport.m */,
Expand Down Expand Up @@ -3149,6 +3165,7 @@
0089679F2486D43700DC48C2 /* KSCrashSentry_Tests.m in Sources */,
008967872486D43700DC48C2 /* KSCrashSentry_NSException_Tests.m in Sources */,
0089679C2486D43700DC48C2 /* KSFileUtils_Tests.m in Sources */,
093EB6602AFE447E006EB7E3 /* Swizzle.mm in Sources */,
008966EE2486D43700DC48C2 /* BugsnagClientPayloadInfoTest.m in Sources */,
010F80C228645B4200D6569E /* BSGDefinesTests.m in Sources */,
01BDB1F525DEBFB200A91FAF /* BSGEventUploadKSCrashReportOperationTests.m in Sources */,
Expand All @@ -3168,6 +3185,7 @@
008967152486D43700DC48C2 /* BugsnagCollectionsTests.m in Sources */,
01E8765E256684E700F4B70A /* URLSessionMock.m in Sources */,
008967AB2486D43700DC48C2 /* BSG_KSMachTests.m in Sources */,
093EB6662AFE4580006EB7E3 /* BSGTestCase.mm in Sources */,
0089672A2486D43700DC48C2 /* BugsnagStacktraceTest.m in Sources */,
01847DAC26441A5E00ADA4C7 /* BSGInternalErrorReporterTests.m in Sources */,
0163BF5925823D8D008DC28B /* BSGNotificationBreadcrumbsTests.m in Sources */,
Expand Down Expand Up @@ -3315,6 +3333,7 @@
008967822486D43700DC48C2 /* KSSystemInfo_Tests.m in Sources */,
008967612486D43700DC48C2 /* BugsnagBreadcrumbsTest.m in Sources */,
01DE903D26CEAF9E00455213 /* BSGUtilsTests.m in Sources */,
093EB6672AFE4580006EB7E3 /* BSGTestCase.mm in Sources */,
CB156242270707740097334C /* KSCrashNames_Test.m in Sources */,
008967012486D43700DC48C2 /* BugsnagEventPersistLoadTest.m in Sources */,
0089671C2486D43700DC48C2 /* BugsnagSessionTest.m in Sources */,
Expand All @@ -3341,6 +3360,7 @@
004E353B2487B3B3007FBAE4 /* BugsnagSwiftPublicAPITests.swift in Sources */,
0089677C2486D43700DC48C2 /* RFC3339DateTool_Tests.m in Sources */,
CBEC89412A4ACD240088A3CE /* FileBasedTest.m in Sources */,
093EB6612AFE447E006EB7E3 /* Swizzle.mm in Sources */,
01A2958728B667C2005FCC8C /* BSGNetworkBreadcrumbTests.m in Sources */,
008967552486D43700DC48C2 /* BugsnagOnCrashTest.m in Sources */,
008967A02486D43700DC48C2 /* KSCrashSentry_Tests.m in Sources */,
Expand Down Expand Up @@ -3481,6 +3501,7 @@
01B6BB7E25D5777F00FC4DE6 /* BugsnagSwiftPublicAPITests.swift in Sources */,
0089677A2486D43700DC48C2 /* BSG_KSMachHeadersTests.m in Sources */,
0089672C2486D43700DC48C2 /* BugsnagStacktraceTest.m in Sources */,
093EB6682AFE4580006EB7E3 /* BSGTestCase.mm in Sources */,
008966F32486D43700DC48C2 /* BugsnagMetadataRedactionTest.m in Sources */,
008967382486D43700DC48C2 /* BugsnagMetadataTests.m in Sources */,
008967832486D43700DC48C2 /* KSSystemInfo_Tests.m in Sources */,
Expand Down Expand Up @@ -3514,6 +3535,7 @@
008967442486D43700DC48C2 /* BugsnagSessionTrackerStopTest.m in Sources */,
CB26E9BC28350E0C005A1865 /* UISceneStub.m in Sources */,
008967982486D43700DC48C2 /* KSCrashState_Tests.m in Sources */,
093EB6622AFE447E006EB7E3 /* Swizzle.mm in Sources */,
008967772486D43700DC48C2 /* XCTestCase+KSCrash.m in Sources */,
01A2958828B667C2005FCC8C /* BSGNetworkBreadcrumbTests.m in Sources */,
CBEC89422A4ACD240088A3CE /* FileBasedTest.m in Sources */,
Expand Down Expand Up @@ -3748,7 +3770,9 @@
CB28F0B828294DE1003AB200 /* BSGConfigurationBuilderTests.m in Sources */,
CB28F0DB282A4BA6003AB200 /* BugsnagMetadataTests.m in Sources */,
CB28F0B028294D4F003AB200 /* KSFileUtils_Tests.m in Sources */,
093EB6632AFE447E006EB7E3 /* Swizzle.mm in Sources */,
CB28F0DC282A4BEE003AB200 /* BugsnagSessionTrackerTest.m in Sources */,
093EB6692AFE4580006EB7E3 /* BSGTestCase.mm in Sources */,
CB28F0B728294DE1003AB200 /* BSGFeatureFlagStoreTests.m in Sources */,
010F80C528645B4200D6569E /* BSGDefinesTests.m in Sources */,
CB28F0A028294D44003AB200 /* BSG_KSFileTests.m in Sources */,
Expand Down
2 changes: 2 additions & 0 deletions Bugsnag/BugsnagInternals.h
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,8 @@ typedef void (^ BSGClientObserver)(BSGClientObserverEvent event, _Nullable id va

- (NSDictionary *)toJson;

- (NSDictionary *)toJsonWithNSNulls;

@end

#pragma mark -
Expand Down
2 changes: 1 addition & 1 deletion Bugsnag/Client/BugsnagClient.m
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,7 @@ - (BugsnagUser *)user {
- (void)setUser:(NSString *)userId withEmail:(NSString *)email andName:(NSString *)name {
@synchronized (self.configuration) {
[self.configuration setUser:userId withEmail:email andName:name];
[self.state addMetadata:[self.configuration.user toJson] toSection:BSGKeyUser];
[self.state addMetadata:[self.configuration.user toJsonWithNSNulls] toSection:BSGKeyUser];
if (self.observer) {
self.observer(BSGClientObserverUpdateUser, self.user);
}
Expand Down
2 changes: 1 addition & 1 deletion Bugsnag/Helpers/BSGDefines.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
#define BSG_HAVE_REACHABILITY_WWAN ( TARGET_OS_IOS || TARGET_OS_TV )
#define BSG_HAVE_SIGNAL (TARGET_OS_OSX || TARGET_OS_IOS || TARGET_OS_TV )
#define BSG_HAVE_SIGALTSTACK (TARGET_OS_OSX || TARGET_OS_IOS )
#define BSG_HAVE_SYSCALL (TARGET_OS_OSX || TARGET_OS_IOS || TARGET_OS_TV )
#define BSG_HAVE_SYSCALL (TARGET_OS_IOS || TARGET_OS_TV )
#define BSG_HAVE_UIDEVICE __has_include(<UIKit/UIDevice.h>)
#define BSG_HAVE_WINDOW (TARGET_OS_OSX || TARGET_OS_IOS || TARGET_OS_TV )

Expand Down
3 changes: 2 additions & 1 deletion Bugsnag/Helpers/BSGRunContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
// During development this is not strictly necessary since last run's data will
// not be loaded if the struct's size has changed.
//
#define BSGRUNCONTEXT_VERSION 4
#define BSGRUNCONTEXT_VERSION 5

struct BSGRunContext {
long structVersion;
Expand Down Expand Up @@ -50,6 +50,7 @@ struct BSGRunContext {
unsigned long long memoryAvailable;
unsigned long long memoryFootprint;
unsigned long long memoryLimit;
char bundleVersion[32]; // Won't actually get this long but just to be sure.
};

/// Information about the current run of the app / process.
Expand Down
51 changes: 41 additions & 10 deletions Bugsnag/Helpers/BSGRunContext.m
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,21 @@ static void InitRunContext(void) {
}

bsg_runContext->bootTime = GetBootTime();


// Make sure the images list is populated.
bsg_mach_headers_initialize();

BSG_Mach_Header_Info *image = bsg_mach_headers_get_main_image();
if (image && image->uuid) {
uuid_copy(bsg_runContext->machoUUID, image->uuid);
}


NSString *bundleVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
const char *bundleVersionStr = (const char*)[bundleVersion cStringUsingEncoding:NSUTF8StringEncoding];
if (bundleVersionStr != nil) {
bsg_safe_strncpy(bsg_runContext->bundleVersion, bundleVersionStr, sizeof(bsg_runContext->bundleVersion));
}

if ([NSThread isMainThread]) {
bsg_runContext->isActive = GetIsActive();
} else {
Expand Down Expand Up @@ -109,8 +118,15 @@ static bool GetIsActive(void) {
#endif

#if TARGET_OS_WATCH
WKExtension *ext = [WKExtension sharedExtension];
return ext && ext.applicationState == WKApplicationStateActive;
if ([BSG_KSSystemInfo isRunningInAppExtension]) {
WKExtension *ext = [WKExtension sharedExtension];
return ext && ext.applicationState == WKApplicationStateActive;
} else if (@available(watchOS 7.0, *)) {
WKApplication *app = [WKApplication sharedApplication];
return app && app.applicationState == WKApplicationStateActive;
} else {
return true;
}
#endif
}

Expand Down Expand Up @@ -167,8 +183,15 @@ static bool GetIsForeground(void) {
#endif

#if TARGET_OS_WATCH
WKExtension *ext = [WKExtension sharedExtension];
return ext && ext.applicationState != WKApplicationStateBackground;
if ([BSG_KSSystemInfo isRunningInAppExtension]) {
WKExtension *ext = [WKExtension sharedExtension];
return ext && ext.applicationState != WKApplicationStateBackground;
} else if (@available(watchOS 7.0, *)) {
WKApplication *app = [WKApplication sharedApplication];
return app && app.applicationState == WKApplicationStateBackground;
} else {
return true;
}
#endif
}

Expand Down Expand Up @@ -470,8 +493,13 @@ bool BSGRunContextWasKilled(void) {
if (bsg_lastRunContext->bootTime != bsg_runContext->bootTime) {
return NO; // The app may have been terminated due to the reboot
}

// Ignore unexpected terminations due to the app being upgraded
if (strncmp(bsg_lastRunContext->bundleVersion,
bsg_runContext->bundleVersion,
sizeof(bsg_runContext->bundleVersion)) != 0) {
return NO;
}
if (uuid_compare(bsg_lastRunContext->machoUUID, bsg_runContext->machoUUID)) {
return NO;
}
Expand Down Expand Up @@ -499,10 +527,13 @@ bool BSGRunContextWasKilled(void) {

#define SIZEOF_STRUCT sizeof(struct BSGRunContext)

static struct BSGRunContext fallback;
struct BSGRunContext *bsg_runContext = &fallback;
static struct BSGRunContext bsg_runContext_fallback;
struct BSGRunContext *bsg_runContext = &bsg_runContext_fallback;

const struct BSGRunContext *bsg_lastRunContext;
static struct BSGRunContext bsg_lastRunContext_fallback = {
.structVersion = ~0,
};
const struct BSGRunContext *bsg_lastRunContext = &bsg_lastRunContext_fallback;

/// Opens the file and disables content protection, returning -1 on error.
static int OpenFile(NSString *_Nonnull path) {
Expand Down
6 changes: 6 additions & 0 deletions Bugsnag/Helpers/BSGUtils.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ static inline NSString * _Nullable BSGStringFromClass(Class _Nullable cls) {
return cls ? NSStringFromClass((Class _Nonnull)cls) : nil;
}

/**
* Copy characters from src to dst, up to a maximum of length bytes (including the NUL terminator).
* Unlike strncpy, this function always ensures that dst is NUL terminated (if length > 0).
*/
void bsg_safe_strncpy(char *dst, const char *src, size_t length);

NS_ASSUME_NONNULL_END

__END_DECLS
7 changes: 7 additions & 0 deletions Bugsnag/Helpers/BSGUtils.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@

#import "BugsnagLogger.h"

void bsg_safe_strncpy(char *dst, const char *src, size_t length) {
if (length > 0) {
strncpy(dst, src, length);
dst[length-1] = 0;
}
}

char *_Nullable BSGCStringWithData(NSData *_Nullable data) {
char *buffer;
if (data.length && (buffer = calloc(1, data.length + 1))) {
Expand Down
4 changes: 2 additions & 2 deletions Bugsnag/KSCrash/Source/KSCrash/Recording/BSG_Jailbreak.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ static inline bool bsg_local_is_insert_libraries_env_var(const char* str) {
// - Use pointers for output parameters, with labels that identify them as such.
// - Beware of global consts or defines bleeding through.

#if TARGET_CPU_ARM64
#if TARGET_CPU_ARM64 && !TARGET_OS_OSX
#define BSG_HAS_CUSTOM_SYSCALL 1

// ARM64 3-parameter syscall
Expand Down Expand Up @@ -105,7 +105,7 @@ static inline bool bsg_local_is_insert_libraries_env_var(const char* str) {
} \
} while(0)

#elif TARGET_CPU_X86_64 && defined(__GCC_ASM_FLAG_OUTPUTS__)
#elif TARGET_CPU_X86_64 && defined(__GCC_ASM_FLAG_OUTPUTS__) && !TARGET_OS_OSX
#define BSG_HAS_CUSTOM_SYSCALL 1

// X86_64 3-parameter syscall
Expand Down
8 changes: 4 additions & 4 deletions Bugsnag/KSCrash/Source/KSCrash/Recording/BSG_KSCrashC.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@
#ifndef HDR_BSG_KSCrashC_h
#define HDR_BSG_KSCrashC_h

#ifdef __cplusplus
extern "C" {
#endif

#include "BSG_KSCrashContext.h"

#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

/** Initialize the KSCrash system. Call this once, before any other function.
* Note: This gets called automatically by [BSG_KSCrash sharedInstance].
*/
Expand Down
Loading

0 comments on commit 3ec379e

Please sign in to comment.