mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-16 00:34:19 +00:00
Removed some erroneous casts from ReferenceCountedObjectPtr that allowed base classes to be implicitly converted to derived classes
This commit is contained in:
parent
c7c26fa9f0
commit
8e280f3454
3 changed files with 30 additions and 29 deletions
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
#include "b2Timer.h"
|
||||
|
||||
b2Timer::b2Timer()
|
||||
b2Timer::b2Timer()
|
||||
{
|
||||
Reset();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -237,12 +237,12 @@ private:
|
|||
|
||||
@tags{Core}
|
||||
*/
|
||||
template <class ReferenceCountedObjectClass>
|
||||
template <class ObjectType>
|
||||
class ReferenceCountedObjectPtr
|
||||
{
|
||||
public:
|
||||
/** The class being referenced by this pointer. */
|
||||
typedef ReferenceCountedObjectClass ReferencedType;
|
||||
typedef ObjectType ReferencedType;
|
||||
|
||||
//==============================================================================
|
||||
/** Creates a pointer to a null object. */
|
||||
|
|
@ -274,7 +274,7 @@ public:
|
|||
*/
|
||||
template <typename Convertible>
|
||||
ReferenceCountedObjectPtr (const ReferenceCountedObjectPtr<Convertible>& other) noexcept
|
||||
: referencedObject (static_cast<ReferencedType*> (other.get()))
|
||||
: referencedObject (other.get())
|
||||
{
|
||||
incIfNotNull (referencedObject);
|
||||
}
|
||||
|
|
@ -295,7 +295,7 @@ public:
|
|||
template <typename Convertible>
|
||||
ReferenceCountedObjectPtr& operator= (const ReferenceCountedObjectPtr<Convertible>& other)
|
||||
{
|
||||
return operator= (static_cast<ReferencedType*> (other.get()));
|
||||
return operator= (other.get());
|
||||
}
|
||||
|
||||
/** Changes this pointer to point at a different object.
|
||||
|
|
@ -303,7 +303,7 @@ public:
|
|||
The reference count of the old object is decremented, and it might be
|
||||
deleted if it hits zero. The new object's count is incremented.
|
||||
*/
|
||||
ReferenceCountedObjectPtr& operator= (ReferencedType* const newObject)
|
||||
ReferenceCountedObjectPtr& operator= (ReferencedType* newObject)
|
||||
{
|
||||
if (referencedObject != newObject)
|
||||
{
|
||||
|
|
@ -382,43 +382,43 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
/** Compares two ReferenceCountedObjectPtrs. */
|
||||
template <typename ReferenceCountedObjectClass>
|
||||
bool operator== (const ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& object1, ReferenceCountedObjectClass* const object2) noexcept
|
||||
template <typename ObjectType>
|
||||
bool operator== (const ReferenceCountedObjectPtr<ObjectType>& object1, ObjectType* const object2) noexcept
|
||||
{
|
||||
return object1.get() == object2;
|
||||
}
|
||||
|
||||
/** Compares two ReferenceCountedObjectPtrs. */
|
||||
template <typename ReferenceCountedObjectClass>
|
||||
bool operator== (const ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& object1, const ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& object2) noexcept
|
||||
template <typename ObjectType>
|
||||
bool operator== (const ReferenceCountedObjectPtr<ObjectType>& object1, const ReferenceCountedObjectPtr<ObjectType>& object2) noexcept
|
||||
{
|
||||
return object1.get() == object2.get();
|
||||
}
|
||||
|
||||
/** Compares two ReferenceCountedObjectPtrs. */
|
||||
template <typename ReferenceCountedObjectClass>
|
||||
bool operator== (ReferenceCountedObjectClass* object1, const ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& object2) noexcept
|
||||
template <typename ObjectType>
|
||||
bool operator== (ObjectType* object1, const ReferenceCountedObjectPtr<ObjectType>& object2) noexcept
|
||||
{
|
||||
return object1 == object2.get();
|
||||
}
|
||||
|
||||
/** Compares two ReferenceCountedObjectPtrs. */
|
||||
template <typename ReferenceCountedObjectClass>
|
||||
bool operator!= (const ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& object1, const ReferenceCountedObjectClass* object2) noexcept
|
||||
template <typename ObjectType>
|
||||
bool operator!= (const ReferenceCountedObjectPtr<ObjectType>& object1, const ObjectType* object2) noexcept
|
||||
{
|
||||
return object1.get() != object2;
|
||||
}
|
||||
|
||||
/** Compares two ReferenceCountedObjectPtrs. */
|
||||
template <typename ReferenceCountedObjectClass>
|
||||
bool operator!= (const ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& object1, const ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& object2) noexcept
|
||||
template <typename ObjectType>
|
||||
bool operator!= (const ReferenceCountedObjectPtr<ObjectType>& object1, const ReferenceCountedObjectPtr<ObjectType>& object2) noexcept
|
||||
{
|
||||
return object1.get() != object2.get();
|
||||
}
|
||||
|
||||
/** Compares two ReferenceCountedObjectPtrs. */
|
||||
template <typename ReferenceCountedObjectClass>
|
||||
bool operator!= (ReferenceCountedObjectClass* object1, const ReferenceCountedObjectPtr<ReferenceCountedObjectClass>& object2) noexcept
|
||||
template <typename ObjectType>
|
||||
bool operator!= (ObjectType* object1, const ReferenceCountedObjectPtr<ObjectType>& object2) noexcept
|
||||
{
|
||||
return object1 != object2.get();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ private:
|
|||
private:
|
||||
static void frameChanged (id self, SEL, NSNotification*)
|
||||
{
|
||||
if (NSViewResizeWatcher* const target = getIvar<NSViewResizeWatcher*> (self, "target"))
|
||||
if (auto* target = getIvar<NSViewResizeWatcher*> (self, "target"))
|
||||
target->viewResized();
|
||||
}
|
||||
|
||||
|
|
@ -98,7 +98,7 @@ class NSViewAttachment : public ReferenceCountedObject,
|
|||
private NSViewResizeWatcher
|
||||
{
|
||||
public:
|
||||
NSViewAttachment (NSView* const v, Component& comp)
|
||||
NSViewAttachment (NSView* v, Component& comp)
|
||||
: ComponentMovementWatcher (&comp),
|
||||
view (v), owner (comp),
|
||||
currentPeer (nullptr)
|
||||
|
|
@ -134,9 +134,9 @@ public:
|
|||
|
||||
void componentMovedOrResized (bool /*wasMoved*/, bool /*wasResized*/) override
|
||||
{
|
||||
if (ComponentPeer* const peer = owner.getTopLevelComponent()->getPeer())
|
||||
if (auto* peer = owner.getTopLevelComponent()->getPeer())
|
||||
{
|
||||
NSRect r = makeNSRect (peer->getAreaCoveredBy (owner));
|
||||
auto r = makeNSRect (peer->getAreaCoveredBy (owner));
|
||||
r.origin.y = [[view superview] frame].size.height - (r.origin.y + r.size.height);
|
||||
[view setFrame: r];
|
||||
}
|
||||
|
|
@ -144,7 +144,7 @@ public:
|
|||
|
||||
void componentPeerChanged() override
|
||||
{
|
||||
ComponentPeer* const peer = owner.getPeer();
|
||||
auto* peer = owner.getPeer();
|
||||
|
||||
if (currentPeer != peer)
|
||||
{
|
||||
|
|
@ -152,7 +152,7 @@ public:
|
|||
|
||||
if (peer != nullptr)
|
||||
{
|
||||
NSView* const peerView = (NSView*) peer->getNativeHandle();
|
||||
auto peerView = (NSView*) peer->getNativeHandle();
|
||||
[peerView addSubview: view];
|
||||
componentMovedOrResized (false, false);
|
||||
}
|
||||
|
|
@ -182,7 +182,8 @@ public:
|
|||
|
||||
NSView* const view;
|
||||
|
||||
typedef ReferenceCountedObjectPtr<NSViewAttachment> Ptr;
|
||||
using Ptr = ReferenceCountedObjectPtr<NSViewAttachment>;
|
||||
|
||||
private:
|
||||
Component& owner;
|
||||
ComponentPeer* currentPeer;
|
||||
|
|
@ -201,11 +202,11 @@ private:
|
|||
NSViewComponent::NSViewComponent() {}
|
||||
NSViewComponent::~NSViewComponent() {}
|
||||
|
||||
void NSViewComponent::setView (void* const view)
|
||||
void NSViewComponent::setView (void* view)
|
||||
{
|
||||
if (view != getView())
|
||||
{
|
||||
NSViewAttachment::Ptr old = attachment;
|
||||
auto old = attachment;
|
||||
|
||||
attachment = nullptr;
|
||||
|
||||
|
|
@ -226,7 +227,7 @@ void NSViewComponent::resizeToFitView()
|
|||
{
|
||||
if (attachment != nullptr)
|
||||
{
|
||||
NSRect r = [static_cast<NSViewAttachment*> (attachment.get())->view frame];
|
||||
auto r = [static_cast<NSViewAttachment*> (attachment.get())->view frame];
|
||||
setBounds (Rectangle<int> ((int) r.size.width, (int) r.size.height));
|
||||
}
|
||||
}
|
||||
|
|
@ -239,7 +240,7 @@ void NSViewComponent::alphaChanged()
|
|||
(static_cast<NSViewAttachment*> (attachment.get()))->updateAlpha();
|
||||
}
|
||||
|
||||
ReferenceCountedObject* NSViewComponent::attachViewToComponent (Component& comp, void* const view)
|
||||
ReferenceCountedObject* NSViewComponent::attachViewToComponent (Component& comp, void* view)
|
||||
{
|
||||
return new NSViewAttachment ((NSView*) view, comp);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue