From 54b8a9278d2d99826f1517b10d954edd8bd89d2b Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Wed, 30 Mar 2016 14:11:45 -0700 Subject: [PATCH] Guard model texs --- libraries/entities/src/ModelEntityItem.cpp | 11 +++++++++++ libraries/entities/src/ModelEntityItem.h | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/libraries/entities/src/ModelEntityItem.cpp b/libraries/entities/src/ModelEntityItem.cpp index bef4406f71..e5511c0b25 100644 --- a/libraries/entities/src/ModelEntityItem.cpp +++ b/libraries/entities/src/ModelEntityItem.cpp @@ -42,6 +42,17 @@ ModelEntityItem::ModelEntityItem(const EntityItemID& entityItemID) : EntityItem( _color[0] = _color[1] = _color[2] = 0; } +const QString ModelEntityItem::getTextures() const { + QReadLocker locker(&_texturesLock); + auto textures = _textures; + return textures; +} + +void ModelEntityItem::setTextures(const QString& textures) { + QWriteLocker locker(&_texturesLock); + _textures = textures; +} + EntityItemProperties ModelEntityItem::getProperties(EntityPropertyFlags desiredProperties) const { EntityItemProperties properties = EntityItem::getProperties(desiredProperties); // get the properties from our base class COPY_ENTITY_PROPERTY_TO_PROPERTIES(color, getXColor); diff --git a/libraries/entities/src/ModelEntityItem.h b/libraries/entities/src/ModelEntityItem.h index bce27f1cca..d0e0909b27 100644 --- a/libraries/entities/src/ModelEntityItem.h +++ b/libraries/entities/src/ModelEntityItem.h @@ -110,8 +110,8 @@ public: float getAnimationFPS() const { return _animationLoop.getFPS(); } static const QString DEFAULT_TEXTURES; - const QString& getTextures() const { return _textures; } - void setTextures(const QString& textures) { _textures = textures; } + const QString getTextures() const; + void setTextures(const QString& textures); virtual bool shouldBePhysical() const; @@ -159,7 +159,9 @@ protected: AnimationPropertyGroup _animationProperties; AnimationLoop _animationLoop; + mutable QReadWriteLock _texturesLock; QString _textures; + ShapeType _shapeType = SHAPE_TYPE_NONE; // used on client side