| @@ -169,8 +169,8 @@ private: | |||||
| static VstEvent* allocateVSTEvent() | static VstEvent* allocateVSTEvent() | ||||
| { | { | ||||
| VstEvent* const e = (VstEvent*) ::calloc (1, sizeof (VstMidiEvent) > sizeof (VstMidiSysexEvent) ? sizeof (VstMidiEvent) | |||||
| : sizeof (VstMidiSysexEvent)); | |||||
| VstEvent* const e = (VstEvent*) std::calloc (1, sizeof (VstMidiEvent) > sizeof (VstMidiSysexEvent) ? sizeof (VstMidiEvent) | |||||
| : sizeof (VstMidiSysexEvent)); | |||||
| e->type = kVstMidiType; | e->type = kVstMidiType; | ||||
| e->byteSize = sizeof (VstMidiEvent); | e->byteSize = sizeof (VstMidiEvent); | ||||
| return e; | return e; | ||||
| @@ -181,7 +181,7 @@ private: | |||||
| if (e->type == kVstSysExType) | if (e->type == kVstSysExType) | ||||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | delete[] (((VstMidiSysexEvent*) e)->sysexDump); | ||||
| ::free (e); | |||||
| std::free (e); | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -105,7 +105,7 @@ public: | |||||
| If you want an array of zero values, you can use the calloc() method instead. | If you want an array of zero values, you can use the calloc() method instead. | ||||
| */ | */ | ||||
| explicit HeapBlock (const size_t numElements) | explicit HeapBlock (const size_t numElements) | ||||
| : data (static_cast <ElementType*> (::malloc (numElements * sizeof (ElementType)))) | |||||
| : data (static_cast <ElementType*> (std::malloc (numElements * sizeof (ElementType)))) | |||||
| { | { | ||||
| throwOnAllocationFailure(); | throwOnAllocationFailure(); | ||||
| } | } | ||||
| @@ -116,7 +116,7 @@ public: | |||||
| */ | */ | ||||
| ~HeapBlock() | ~HeapBlock() | ||||
| { | { | ||||
| ::free (data); | |||||
| std::free (data); | |||||
| } | } | ||||
| #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS | #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS | ||||
| @@ -203,8 +203,8 @@ public: | |||||
| */ | */ | ||||
| void malloc (const size_t newNumElements, const size_t elementSize = sizeof (ElementType)) | void malloc (const size_t newNumElements, const size_t elementSize = sizeof (ElementType)) | ||||
| { | { | ||||
| ::free (data); | |||||
| data = static_cast <ElementType*> (::malloc (newNumElements * elementSize)); | |||||
| std::free (data); | |||||
| data = static_cast <ElementType*> (std::malloc (newNumElements * elementSize)); | |||||
| throwOnAllocationFailure(); | throwOnAllocationFailure(); | ||||
| } | } | ||||
| @@ -213,8 +213,8 @@ public: | |||||
| */ | */ | ||||
| void calloc (const size_t newNumElements, const size_t elementSize = sizeof (ElementType)) | void calloc (const size_t newNumElements, const size_t elementSize = sizeof (ElementType)) | ||||
| { | { | ||||
| ::free (data); | |||||
| data = static_cast <ElementType*> (::calloc (newNumElements, elementSize)); | |||||
| std::free (data); | |||||
| data = static_cast <ElementType*> (std::calloc (newNumElements, elementSize)); | |||||
| throwOnAllocationFailure(); | throwOnAllocationFailure(); | ||||
| } | } | ||||
| @@ -224,12 +224,12 @@ public: | |||||
| */ | */ | ||||
| void allocate (const size_t newNumElements, const bool initialiseToZero) | void allocate (const size_t newNumElements, const bool initialiseToZero) | ||||
| { | { | ||||
| ::free (data); | |||||
| std::free (data); | |||||
| if (initialiseToZero) | if (initialiseToZero) | ||||
| data = static_cast <ElementType*> (::calloc (newNumElements, sizeof (ElementType))); | |||||
| data = static_cast <ElementType*> (std::calloc (newNumElements, sizeof (ElementType))); | |||||
| else | else | ||||
| data = static_cast <ElementType*> (::malloc (newNumElements * sizeof (ElementType))); | |||||
| data = static_cast <ElementType*> (std::malloc (newNumElements * sizeof (ElementType))); | |||||
| throwOnAllocationFailure(); | throwOnAllocationFailure(); | ||||
| } | } | ||||
| @@ -242,9 +242,9 @@ public: | |||||
| void realloc (const size_t newNumElements, const size_t elementSize = sizeof (ElementType)) | void realloc (const size_t newNumElements, const size_t elementSize = sizeof (ElementType)) | ||||
| { | { | ||||
| if (data == nullptr) | if (data == nullptr) | ||||
| data = static_cast <ElementType*> (::malloc (newNumElements * elementSize)); | |||||
| data = static_cast <ElementType*> (std::malloc (newNumElements * elementSize)); | |||||
| else | else | ||||
| data = static_cast <ElementType*> (::realloc (data, newNumElements * elementSize)); | |||||
| data = static_cast <ElementType*> (std::realloc (data, newNumElements * elementSize)); | |||||
| throwOnAllocationFailure(); | throwOnAllocationFailure(); | ||||
| } | } | ||||
| @@ -254,7 +254,7 @@ public: | |||||
| */ | */ | ||||
| void free() | void free() | ||||
| { | { | ||||
| ::free (data); | |||||
| std::free (data); | |||||
| data = nullptr; | data = nullptr; | ||||
| } | } | ||||
| @@ -108,7 +108,7 @@ template <typename JavaType> | |||||
| class LocalRef | class LocalRef | ||||
| { | { | ||||
| public: | public: | ||||
| explicit inline LocalRef (JavaType obj_) noexcept : obj (obj_){} | |||||
| explicit inline LocalRef (JavaType obj_) noexcept : obj (obj_) {} | |||||
| inline LocalRef (const LocalRef& other) noexcept : obj (retain (other.obj)) {} | inline LocalRef (const LocalRef& other) noexcept : obj (retain (other.obj)) {} | ||||
| ~LocalRef() { clear(); } | ~LocalRef() { clear(); } | ||||
| @@ -143,8 +143,7 @@ namespace | |||||
| { | { | ||||
| String juceString (JNIEnv* env, jstring s) | String juceString (JNIEnv* env, jstring s) | ||||
| { | { | ||||
| jboolean isCopy; | |||||
| const char* const utf8 = env->GetStringUTFChars (s, &isCopy); | |||||
| const char* const utf8 = env->GetStringUTFChars (s, nullptr); | |||||
| CharPointer_UTF8 utf8CP (utf8); | CharPointer_UTF8 utf8CP (utf8); | ||||
| const String result (utf8CP); | const String result (utf8CP); | ||||
| env->ReleaseStringUTFChars (s, utf8); | env->ReleaseStringUTFChars (s, utf8); | ||||
| @@ -30,8 +30,8 @@ void Logger::outputDebugString (const String& text) | |||||
| //============================================================================== | //============================================================================== | ||||
| #ifdef JUCE_DLL | #ifdef JUCE_DLL | ||||
| JUCE_API void* juceDLL_malloc (size_t sz) { return ::malloc (sz); } | |||||
| JUCE_API void juceDLL_free (void* block) { ::free (block); } | |||||
| JUCE_API void* juceDLL_malloc (size_t sz) { return std::malloc (sz); } | |||||
| JUCE_API void juceDLL_free (void* block) { std::free (block); } | |||||
| #endif | #endif | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -104,7 +104,6 @@ | |||||
| #endif | #endif | ||||
| #if JUCE_MSVC | #if JUCE_MSVC | ||||
| #include <malloc.h> | |||||
| #pragma warning (pop) | #pragma warning (pop) | ||||
| #endif | #endif | ||||
| @@ -103,6 +103,7 @@ void MessageManager::runDispatchLoop() | |||||
| void MessageManager::stopDispatchLoop() | void MessageManager::stopDispatchLoop() | ||||
| { | { | ||||
| (new QuitMessage())->post(); | (new QuitMessage())->post(); | ||||
| quitMessagePosted = true; | |||||
| } | } | ||||
| bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) | bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) | ||||
| @@ -50,12 +50,12 @@ namespace pnglibNamespace | |||||
| #if JUCE_INCLUDE_PNGLIB_CODE || ! defined (JUCE_INCLUDE_PNGLIB_CODE) | #if JUCE_INCLUDE_PNGLIB_CODE || ! defined (JUCE_INCLUDE_PNGLIB_CODE) | ||||
| #if _MSC_VER != 1310 | #if _MSC_VER != 1310 | ||||
| using ::calloc; // (causes conflict in VS.NET 2003) | |||||
| using ::malloc; | |||||
| using ::free; | |||||
| using std::calloc; // (causes conflict in VS.NET 2003) | |||||
| using std::malloc; | |||||
| using std::free; | |||||
| #endif | #endif | ||||
| using ::abs; | |||||
| using std::abs; | |||||
| #define PNG_INTERNAL | #define PNG_INTERNAL | ||||
| #define NO_DUMMY_DECL | #define NO_DUMMY_DECL | ||||
| #define PNG_SETJMP_NOT_SUPPORTED | #define PNG_SETJMP_NOT_SUPPORTED | ||||
| @@ -95,10 +95,6 @@ namespace pnglibNamespace | |||||
| #pragma warning (pop) | #pragma warning (pop) | ||||
| #endif | #endif | ||||
| using ::calloc; | |||||
| using ::malloc; | |||||
| using ::free; | |||||
| //============================================================================== | //============================================================================== | ||||
| namespace PNGHelpers | namespace PNGHelpers | ||||
| { | { | ||||
| @@ -180,28 +180,30 @@ public: | |||||
| const Rectangle<int> bounds (left, top, right - left, bottom - top); | const Rectangle<int> bounds (left, top, right - left, bottom - top); | ||||
| if (bounds.isEmpty()) | |||||
| return nullptr; | |||||
| EdgeTable* et = nullptr; | |||||
| jint* const maskDataElements = env->GetIntArrayElements (maskData, 0); | |||||
| if (! bounds.isEmpty()) | |||||
| { | |||||
| et = new EdgeTable (bounds); | |||||
| EdgeTable* et = new EdgeTable (bounds); | |||||
| jint* const maskDataElements = env->GetIntArrayElements (maskData, 0); | |||||
| const jint* mask = maskDataElements; | |||||
| const jint* mask = maskDataElements; | |||||
| for (int y = top; y < bottom; ++y) | |||||
| { | |||||
| #if JUCE_LITTLE_ENDIAN | |||||
| const uint8* const lineBytes = ((const uint8*) mask) + 3; | |||||
| #else | |||||
| const uint8* const lineBytes = (const uint8*) mask; | |||||
| #endif | |||||
| for (int y = top; y < bottom; ++y) | |||||
| { | |||||
| #if JUCE_LITTLE_ENDIAN | |||||
| const uint8* const lineBytes = ((const uint8*) mask) + 3; | |||||
| #else | |||||
| const uint8* const lineBytes = (const uint8*) mask; | |||||
| #endif | |||||
| et->clipLineToMask (left, y, lineBytes, 4, bounds.getWidth()); | |||||
| mask += bounds.getWidth(); | |||||
| et->clipLineToMask (left, y, lineBytes, 4, bounds.getWidth()); | |||||
| mask += bounds.getWidth(); | |||||
| } | |||||
| env->ReleaseIntArrayElements (maskData, maskDataElements, 0); | |||||
| } | } | ||||
| env->ReleaseIntArrayElements (maskData, maskDataElements, 0); | |||||
| env->DeleteLocalRef (maskData); | env->DeleteLocalRef (maskData); | ||||
| return et; | return et; | ||||
| } | } | ||||
| @@ -45,6 +45,8 @@ JUCE_JNI_CALLBACK (JUCE_ANDROID_ACTIVITY_CLASSNAME, launchApp, void, (JNIEnv* en | |||||
| JUCEApplication* app = dynamic_cast <JUCEApplication*> (JUCEApplicationBase::createInstance()); | JUCEApplication* app = dynamic_cast <JUCEApplication*> (JUCEApplicationBase::createInstance()); | ||||
| if (! app->initialiseApp (String::empty)) | if (! app->initialiseApp (String::empty)) | ||||
| exit (0); | exit (0); | ||||
| jassert (MessageManager::getInstance()->isThisTheMessageThread()); | |||||
| } | } | ||||
| JUCE_JNI_CALLBACK (JUCE_ANDROID_ACTIVITY_CLASSNAME, quitApp, void, (JNIEnv* env, jobject activity)) | JUCE_JNI_CALLBACK (JUCE_ANDROID_ACTIVITY_CLASSNAME, quitApp, void, (JNIEnv* env, jobject activity)) | ||||
| @@ -386,7 +388,7 @@ public: | |||||
| jint* dest = env->GetIntArrayElements ((jintArray) buffer.get(), 0); | jint* dest = env->GetIntArrayElements ((jintArray) buffer.get(), 0); | ||||
| if (dest != 0) | |||||
| if (dest != nullptr) | |||||
| { | { | ||||
| { | { | ||||
| Image temp (new PreallocatedImage (clip.getWidth(), clip.getHeight(), | Image temp (new PreallocatedImage (clip.getWidth(), clip.getHeight(), | ||||
| @@ -415,26 +417,23 @@ public: | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| class ViewRepainter : public CallbackMessage | |||||
| struct ViewRepainter : public CallbackMessage | |||||
| { | { | ||||
| public: | |||||
| ViewRepainter (const GlobalRef& view_, const Rectangle<int>& area_) | ViewRepainter (const GlobalRef& view_, const Rectangle<int>& area_) | ||||
| : view (view_), area (area_) | |||||
| { | |||||
| post(); | |||||
| } | |||||
| : view (view_), area (area_) {} | |||||
| void messageCallback() | void messageCallback() | ||||
| { | { | ||||
| view.callVoidMethod (ComponentPeerView.invalidate, area.getX(), area.getY(), area.getRight(), area.getBottom()); | |||||
| view.callVoidMethod (ComponentPeerView.invalidate, area.getX(), area.getY(), | |||||
| area.getRight(), area.getBottom()); | |||||
| } | } | ||||
| private: | private: | ||||
| GlobalRef view; | GlobalRef view; | ||||
| const Rectangle<int>& area; | |||||
| const Rectangle<int> area; | |||||
| }; | }; | ||||
| new ViewRepainter (view, area); | |||||
| (new ViewRepainter (view, area))->post(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -448,29 +447,6 @@ public: | |||||
| // TODO | // TODO | ||||
| } | } | ||||
| #if USE_ANDROID_CANVAS | |||||
| StringArray getAvailableRenderingEngines() | |||||
| { | |||||
| StringArray s (ComponentPeer::getAvailableRenderingEngines()); | |||||
| s.add ("Android Canvas Renderer"); | |||||
| return s; | |||||
| } | |||||
| int getCurrentRenderingEngine() const | |||||
| { | |||||
| return usingAndroidGraphics ? 1 : 0; | |||||
| } | |||||
| void setCurrentRenderingEngine (int index) | |||||
| { | |||||
| if (usingAndroidGraphics != (index > 0)) | |||||
| { | |||||
| usingAndroidGraphics = index > 0; | |||||
| component->repaint(); | |||||
| } | |||||
| } | |||||
| #endif | |||||
| //============================================================================== | //============================================================================== | ||||
| static AndroidComponentPeer* findPeerForJavaView (JNIEnv* env, jobject viewToFind) | static AndroidComponentPeer* findPeerForJavaView (JNIEnv* env, jobject viewToFind) | ||||
| { | { | ||||