Skip to content

Commit

Permalink
Merge pull request Cocoanetics#1273 from cntrump/pr/fix_mixing_objcpp…
Browse files Browse the repository at this point in the history
…_issue

Fix Undefined Symbol When Mixing Objective-C++ Code
  • Loading branch information
odrobnik committed Jul 14, 2023
2 parents 35c694c + f75e700 commit 4602af6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 11 deletions.
18 changes: 13 additions & 5 deletions Core/Source/NSAttributedStringRunDelegates.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,16 @@
#import <ApplicationServices/ApplicationServices.h>
#endif

void embeddedObjectDeallocCallback(void *context);
CGFloat embeddedObjectGetAscentCallback(void *context);
CGFloat embeddedObjectGetDescentCallback(void *context);
CGFloat embeddedObjectGetWidthCallback(void *context);
CTRunDelegateRef createEmbeddedObjectRunDelegate(id obj);
#ifdef __cplusplus
extern "C" {
#endif

void embeddedObjectDeallocCallback(void *_Nullable context);
CGFloat embeddedObjectGetAscentCallback(void *_Nullable context);
CGFloat embeddedObjectGetDescentCallback(void *_Nullable context);
CGFloat embeddedObjectGetWidthCallback(void *_Nullable context);
CTRunDelegateRef _Nullable createEmbeddedObjectRunDelegate(id _Nullable obj);

#ifdef __cplusplus
}
#endif
11 changes: 5 additions & 6 deletions Core/Source/NSAttributedStringRunDelegates.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@
#import "DTTextAttachment.h"


void embeddedObjectDeallocCallback(void *context)
void embeddedObjectDeallocCallback(void *_Nullable context)
{
}

CGFloat embeddedObjectGetAscentCallback(void *context)
CGFloat embeddedObjectGetAscentCallback(void *_Nullable context)
{
if ([(__bridge id)context isKindOfClass:[DTTextAttachment class]])
{
return [(__bridge DTTextAttachment *)context ascentForLayout];
}
return 0;
}
CGFloat embeddedObjectGetDescentCallback(void *context)
CGFloat embeddedObjectGetDescentCallback(void *_Nullable context)
{
if ([(__bridge id)context isKindOfClass:[DTTextAttachment class]])
{
Expand All @@ -31,7 +31,7 @@ CGFloat embeddedObjectGetDescentCallback(void *context)
return 0;
}

CGFloat embeddedObjectGetWidthCallback(void * context)
CGFloat embeddedObjectGetWidthCallback(void *_Nullable context)
{
if ([(__bridge id)context isKindOfClass:[DTTextAttachment class]])
{
Expand All @@ -40,7 +40,7 @@ CGFloat embeddedObjectGetWidthCallback(void * context)
return 35;
}

CTRunDelegateRef createEmbeddedObjectRunDelegate(id obj)
CTRunDelegateRef _Nullable createEmbeddedObjectRunDelegate(id _Nullable obj)
{
CTRunDelegateCallbacks callbacks;
callbacks.version = kCTRunDelegateCurrentVersion;
Expand All @@ -49,5 +49,4 @@ CTRunDelegateRef createEmbeddedObjectRunDelegate(id obj)
callbacks.getDescent = embeddedObjectGetDescentCallback;
callbacks.getWidth = embeddedObjectGetWidthCallback;
return CTRunDelegateCreate(&callbacks, (__bridge void *)obj);
return NULL;
}

0 comments on commit 4602af6

Please sign in to comment.