From 3d25163a39456758d43204ebe2a1e1ae27d83210 Mon Sep 17 00:00:00 2001 From: FitzerIRL Date: Thu, 1 Mar 2018 15:53:29 -0500 Subject: [PATCH] Fixes for NULL pointer dereference (#930) * Warnings scrub on macOS * Unified type use for matrix calculations and templates * Revert "Merge branch 'master' of https://github.com/FitzerIRL/pxCore" This reverts commit 0fe607bd54c8c61a887bfb106dcf4de6b7b8139f, reversing changes made to 99063c3de876c20104fd32043d1d97045a7a8ac8. * Revert "Unified type use for matrix calculations and templates" This reverts commit 99063c3de876c20104fd32043d1d97045a7a8ac8. * Added checks for NULL pointers --- src/mac/pxClipboardNative.mm | 25 +++++++++++++++++++------ src/mac/pxWindowNative.mm | 6 ++++++ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/mac/pxClipboardNative.mm b/src/mac/pxClipboardNative.mm index 7fce10c4b4..71fb8eb76e 100644 --- a/src/mac/pxClipboardNative.mm +++ b/src/mac/pxClipboardNative.mm @@ -12,22 +12,35 @@ std::string pxClipboardNative::getString(std::string type) { - printf("pxClipboardNative::getString() - ENTER\n"); +// printf("pxClipboardNative::getString() - ENTER\n"); NSPasteboard* pasteBoard = [NSPasteboard generalPasteboard]; NSString* myString = [pasteBoard stringForType: NSPasteboardTypeString]; - + + if(myString) + { return std::string([myString UTF8String]); + } + else + { + return std::string(""); + } } void pxClipboardNative::setString(std::string type, std::string clip) { - printf("pxClipboardNative::setString() - ENTER\n"); +// printf("pxClipboardNative::setString() - ENTER\n"); NSString *stringToWrite = [NSString stringWithUTF8String: clip.c_str()]; - + + if(stringToWrite) + { NSPasteboard* pasteBoard = [NSPasteboard generalPasteboard]; - [pasteBoard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil]; - [pasteBoard setString:stringToWrite forType:NSStringPboardType]; + if(pasteBoard) + { + [pasteBoard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil]; + [pasteBoard setString:stringToWrite forType:NSStringPboardType]; + } + } } diff --git a/src/mac/pxWindowNative.mm b/src/mac/pxWindowNative.mm index 0ccfb7b846..f5682ffd4b 100644 --- a/src/mac/pxWindowNative.mm +++ b/src/mac/pxWindowNative.mm @@ -825,8 +825,11 @@ - (BOOL)performDragOperation:(id )sender pxClipboardNative *clip = pxClipboardNative::instance(); + if(clip && dropURL) + { clip->setString("TEXT", [dropURL UTF8String]); } + } else { // Handle Drag'n'Dropped >> TEXT @@ -835,7 +838,10 @@ - (BOOL)performDragOperation:(id )sender pxClipboardNative *clip = pxClipboardNative::instance(); + if(clip && text) + { clip->setString("TEXT", [text UTF8String]); + } } pxWindowNative::_helper_onKeyDown(mWindow, 86, 16); // Fake a CTRL-V