[haiku-commits] haiku: hrev54122 - in src/apps/haikudepot: model ui_generic ui server

  • From: Andrew Lindesay <apl@xxxxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 3 May 2020 05:47:47 -0400 (EDT)

hrev54122 adds 1 changeset to branch 'master'
old head: 92290d9bc3c964fb4f0a1788bbad17b684e2eef5
new head: 1f3909ade1dce94d01b720fd4ef45e3ea963e21c
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=1f3909ade1dc+%5E92290d9bc3c9

----------------------------------------------------------------------------

1f3909ade1dc: HaikuDepot: Referencable Fixes
  
  Some misuse of BReferencable / BReference are causing the
  debugger to fire while debugging another issue.  This
  should fix some of it.
  
  Change-Id: I895e209afe9e350e35b111739140c85133107227
  Reviewed-on: https://review.haiku-os.org/c/haiku/+/2556
  Reviewed-by: Adrien Destugues <pulkomandy@xxxxxxxxx>

                                    [ Andrew Lindesay <apl@xxxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev54122
Commit:      1f3909ade1dce94d01b720fd4ef45e3ea963e21c
URL:         https://git.haiku-os.org/haiku/commit/?id=1f3909ade1dc
Author:      Andrew Lindesay <apl@xxxxxxxxxxxxxx>
Date:        Sun May  3 04:18:47 2020 UTC

----------------------------------------------------------------------------

11 files changed, 32 insertions(+), 28 deletions(-)
src/apps/haikudepot/model/LanguageModel.cpp                |  6 +++---
src/apps/haikudepot/model/LanguageModel.h                  |  6 +++---
src/apps/haikudepot/model/Model.cpp                        |  6 +++---
src/apps/haikudepot/server/ProcessCoordinatorFactory.cpp   |  2 +-
.../haikudepot/server/ServerReferenceDataUpdateProcess.cpp |  4 ++--
.../server/ServerRepositoryDataUpdateProcess.cpp           |  4 ++--
src/apps/haikudepot/ui/FeaturedPackagesView.cpp            |  3 ++-
src/apps/haikudepot/ui/RatePackageWindow.cpp               |  8 ++++----
src/apps/haikudepot/ui/UserLoginWindow.cpp                 |  2 +-
src/apps/haikudepot/ui_generic/RatingView.cpp              | 10 +++++-----
src/apps/haikudepot/ui_generic/RatingView.h                |  9 ++++++---

----------------------------------------------------------------------------

diff --git a/src/apps/haikudepot/model/LanguageModel.cpp 
b/src/apps/haikudepot/model/LanguageModel.cpp
index c74cea639a..1bce38cef8 100644
--- a/src/apps/haikudepot/model/LanguageModel.cpp
+++ b/src/apps/haikudepot/model/LanguageModel.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
+ * Copyright 2019-2020, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
  * All rights reserved. Distributed under the terms of the MIT License.
  */
 #include "LanguageModel.h"
@@ -33,7 +33,7 @@ LanguagesCompareFn(const LanguageRef& l1, const LanguageRef& 
l2)
 LanguageModel::LanguageModel()
        :
        fSupportedLanguages(LanguagesCompareFn, NULL),
-       fPreferredLanguage(LANGUAGE_DEFAULT)
+       fPreferredLanguage(LanguageRef(new Language(LANGUAGE_DEFAULT)))
 {
        const Language defaultLanguage = _DeriveDefaultLanguage();
        fSupportedLanguages.Add(LanguageRef(
@@ -69,7 +69,7 @@ LanguageModel::AddSupportedLanguages(const LanguageList& 
languages)
 void
 LanguageModel::_SetPreferredLanguage(const Language& language)
 {
-       fPreferredLanguage = language;
+       fPreferredLanguage = LanguageRef(new Language(language));
        if(Logger::IsDebugEnabled())
                printf("set preferred language [%s]\n", language.Code());
 }
diff --git a/src/apps/haikudepot/model/LanguageModel.h 
b/src/apps/haikudepot/model/LanguageModel.h
index 5010332d32..b748f41007 100644
--- a/src/apps/haikudepot/model/LanguageModel.h
+++ b/src/apps/haikudepot/model/LanguageModel.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
+ * Copyright 2019-2020, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
  * All rights reserved. Distributed under the terms of the MIT License.
  */
 #ifndef LANGUAGE_MODEL_H
@@ -28,7 +28,7 @@ public:
                        int32                           
IndexOfSupportedLanguage(
                                                                        const 
BString& languageCode) const;
 
-                       const Language&         PreferredLanguage() const
+                       const LanguageRef       PreferredLanguage() const
                                                                        { 
return fPreferredLanguage; }
 
 private:
@@ -40,7 +40,7 @@ private:
 
 private:
                        LanguageList            fSupportedLanguages;
-                       Language                        fPreferredLanguage;
+                       LanguageRef                     fPreferredLanguage;
 };
 
 
diff --git a/src/apps/haikudepot/model/Model.cpp 
b/src/apps/haikudepot/model/Model.cpp
index 4c7900cf87..e2352ebc76 100644
--- a/src/apps/haikudepot/model/Model.cpp
+++ b/src/apps/haikudepot/model/Model.cpp
@@ -915,7 +915,7 @@ Model::DumpExportRepositoryDataPath(BPath& path) const
 {
        BString leaf;
        leaf.SetToFormat("repository-all_%s.json.gz",
-               LanguageModel().PreferredLanguage().Code());
+               LanguageModel().PreferredLanguage()->Code());
        return StorageUtils::LocalWorkingFilesPath(leaf, path);
 }
 
@@ -930,7 +930,7 @@ Model::DumpExportReferenceDataPath(BPath& path) const
 {
        BString leaf;
        leaf.SetToFormat("reference-all_%s.json.gz",
-               LanguageModel().PreferredLanguage().Code());
+               LanguageModel().PreferredLanguage()->Code());
        return StorageUtils::LocalWorkingFilesPath(leaf, path);
 }
 
@@ -948,7 +948,7 @@ Model::DumpExportPkgDataPath(BPath& path,
 {
        BString leaf;
        leaf.SetToFormat("pkg-all-%s-%s.json.gz", repositorySourceCode.String(),
-               LanguageModel().PreferredLanguage().Code());
+               LanguageModel().PreferredLanguage()->Code());
        return StorageUtils::LocalWorkingFilesPath(leaf, path);
 }
 
diff --git a/src/apps/haikudepot/server/ProcessCoordinatorFactory.cpp 
b/src/apps/haikudepot/server/ProcessCoordinatorFactory.cpp
index 38b2e29be2..dfe424636c 100644
--- a/src/apps/haikudepot/server/ProcessCoordinatorFactory.cpp
+++ b/src/apps/haikudepot/server/ProcessCoordinatorFactory.cpp
@@ -107,7 +107,7 @@ ProcessCoordinatorFactory::CreateBulkLoadCoordinator(
                        for (int32 i = 0; i < repoNames.CountStrings(); i++) {
                                ProcessNode* processNode = new ProcessNode(
                                        new ServerPkgDataUpdateProcess(
-                                               
model->Language().PreferredLanguage().Code(),
+                                               
model->Language().PreferredLanguage()->Code(),
                                                repoNames.StringAt(i), model, 
serverProcessOptions));
                                
processNode->AddPredecessor(serverRepositoryDataUpdate);
                                
processNode->AddPredecessor(serverReferenceDataUpdate);
diff --git a/src/apps/haikudepot/server/ServerReferenceDataUpdateProcess.cpp 
b/src/apps/haikudepot/server/ServerReferenceDataUpdateProcess.cpp
index ce0fa0e051..0930a155bf 100644
--- a/src/apps/haikudepot/server/ServerReferenceDataUpdateProcess.cpp
+++ b/src/apps/haikudepot/server/ServerReferenceDataUpdateProcess.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
+ * Copyright 2019-2020, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
  * All rights reserved. Distributed under the terms of the MIT License.
  */
 
@@ -66,7 +66,7 @@ ServerReferenceDataUpdateProcess::UrlPathComponent()
        BString result;
        AutoLocker<BLocker> locker(fModel->Lock());
        result.SetToFormat("/__reference/all-%s.json.gz",
-               fModel->Language().PreferredLanguage().Code());
+               fModel->Language().PreferredLanguage()->Code());
        return result;
 }
 
diff --git a/src/apps/haikudepot/server/ServerRepositoryDataUpdateProcess.cpp 
b/src/apps/haikudepot/server/ServerRepositoryDataUpdateProcess.cpp
index 673e8a4bd8..b4923860a7 100644
--- a/src/apps/haikudepot/server/ServerRepositoryDataUpdateProcess.cpp
+++ b/src/apps/haikudepot/server/ServerRepositoryDataUpdateProcess.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017-2019, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
+ * Copyright 2017-2020, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
  * All rights reserved. Distributed under the terms of the MIT License.
  */
 
@@ -181,7 +181,7 @@ ServerRepositoryDataUpdateProcess::UrlPathComponent()
        BString result;
        AutoLocker<BLocker> locker(fModel->Lock());
        result.SetToFormat("/__repository/all-%s.json.gz",
-               fModel->Language().PreferredLanguage().Code());
+               fModel->Language().PreferredLanguage()->Code());
        return result;
 }
 
diff --git a/src/apps/haikudepot/ui/FeaturedPackagesView.cpp 
b/src/apps/haikudepot/ui/FeaturedPackagesView.cpp
index 56bc62276f..f534fa6259 100644
--- a/src/apps/haikudepot/ui/FeaturedPackagesView.cpp
+++ b/src/apps/haikudepot/ui/FeaturedPackagesView.cpp
@@ -1,6 +1,7 @@
 /*
  * Copyright 2013-214, Stephan Aßmus <superstippi@xxxxxx>.
  * Copyright 2017, Julian Harnath <julian.harnath@xxxxxxxxxxxxxx>.
+ * Copyright 2020, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
  * All rights reserved. Distributed under the terms of the MIT License.
  */
 
@@ -123,7 +124,7 @@ public:
        virtual ~PackageView()
        {
                fPackageListener->SetPackage(PackageInfoRef(NULL));
-               delete fPackageListener;
+               fPackageListener->ReleaseReference();
        }
 
        virtual void AllAttached()
diff --git a/src/apps/haikudepot/ui/RatePackageWindow.cpp 
b/src/apps/haikudepot/ui/RatePackageWindow.cpp
index d48ca30b80..a778250639 100644
--- a/src/apps/haikudepot/ui/RatePackageWindow.cpp
+++ b/src/apps/haikudepot/ui/RatePackageWindow.cpp
@@ -1,6 +1,6 @@
 /*
  * Copyright 2014, Stephan Aßmus <superstippi@xxxxxx>.
- * Copyright 2016-2019, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
+ * Copyright 2016-2020, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
  * All rights reserved. Distributed under the terms of the MIT License.
  */
 
@@ -153,8 +153,8 @@ protected:
        virtual const BBitmap* StarBitmap()
        {
                if (fRatingDeterminate)
-                       return fStarBlueBitmap.Bitmap(SharedBitmap::SIZE_16);
-               return fStarGrayBitmap.Bitmap(SharedBitmap::SIZE_16);
+                       return fStarBlueBitmap->Bitmap(SharedBitmap::SIZE_16);
+               return fStarGrayBitmap->Bitmap(SharedBitmap::SIZE_16);
        }
 
 private:
@@ -246,7 +246,7 @@ RatePackageWindow::RatePackageWindow(BWindow* parent, BRect 
frame,
 
        {
                AutoLocker<BLocker> locker(fModel.Lock());
-               fCommentLanguageCode = 
fModel.Language().PreferredLanguage().Code();
+               fCommentLanguageCode = 
fModel.Language().PreferredLanguage()->Code();
 
                // Construct languages popup
                BPopUpMenu* languagesMenu = new 
BPopUpMenu(B_TRANSLATE("Language"));
diff --git a/src/apps/haikudepot/ui/UserLoginWindow.cpp 
b/src/apps/haikudepot/ui/UserLoginWindow.cpp
index 6ea3332db7..c273657314 100644
--- a/src/apps/haikudepot/ui/UserLoginWindow.cpp
+++ b/src/apps/haikudepot/ui/UserLoginWindow.cpp
@@ -147,7 +147,7 @@ UserLoginWindow::UserLoginWindow(BWindow* parent, BRect 
frame, Model& model)
 
        {
                AutoLocker<BLocker> locker(fModel.Lock());
-               fPreferredLanguageCode = 
fModel.Language().PreferredLanguage().Code();
+               fPreferredLanguageCode = 
fModel.Language().PreferredLanguage()->Code();
                // Construct languages popup
                BPopUpMenu* languagesMenu = new 
BPopUpMenu(B_TRANSLATE("Language"));
                fLanguageCodeField = new BMenuField("language",
diff --git a/src/apps/haikudepot/ui_generic/RatingView.cpp 
b/src/apps/haikudepot/ui_generic/RatingView.cpp
index ca0c001b23..5d55a798ef 100644
--- a/src/apps/haikudepot/ui_generic/RatingView.cpp
+++ b/src/apps/haikudepot/ui_generic/RatingView.cpp
@@ -1,6 +1,6 @@
 /*
  * Copyright 2013-2014, Stephan Aßmus <superstippi@xxxxxx>.
- * Copyright 2018, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
+ * Copyright 2018-2020, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
  * All rights reserved. Distributed under the terms of the MIT License.
  */
 
@@ -17,8 +17,8 @@
 RatingView::RatingView(const char* name)
        :
        BView(name, B_WILL_DRAW),
-       fStarBlueBitmap(RSRC_STAR_BLUE),
-       fStarGrayBitmap(RSRC_STAR_GREY),
+       fStarBlueBitmap(new SharedBitmap(RSRC_STAR_BLUE)),
+       fStarGrayBitmap(new SharedBitmap(RSRC_STAR_GREY)),
        fRating(RATING_MISSING)
 {
        SetViewUIColor(B_PANEL_BACKGROUND_COLOR);
@@ -46,8 +46,8 @@ const BBitmap*
 RatingView::StarBitmap()
 {
        if (fRating < RATING_MIN)
-               return fStarGrayBitmap.Bitmap(SharedBitmap::SIZE_16);
-       return fStarBlueBitmap.Bitmap(SharedBitmap::SIZE_16);
+               return fStarGrayBitmap->Bitmap(SharedBitmap::SIZE_16);
+       return fStarBlueBitmap->Bitmap(SharedBitmap::SIZE_16);
 }
 
 
diff --git a/src/apps/haikudepot/ui_generic/RatingView.h 
b/src/apps/haikudepot/ui_generic/RatingView.h
index 05abe99cda..3d82786d24 100644
--- a/src/apps/haikudepot/ui_generic/RatingView.h
+++ b/src/apps/haikudepot/ui_generic/RatingView.h
@@ -1,12 +1,13 @@
 /*
  * Copyright 2013-2014, Stephan Aßmus <superstippi@xxxxxx>.
- * Copyright 2018, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
+ * Copyright 2018-2020, Andrew Lindesay <apl@xxxxxxxxxxxxxx>.
  * All rights reserved. Distributed under the terms of the MIT License.
  */
 #ifndef RATING_VIEW_H
 #define RATING_VIEW_H
 
 
+#include <Referenceable.h>
 #include <View.h>
 
 #include "SharedBitmap.h"
@@ -29,8 +30,10 @@ public:
 
 protected:
        virtual const BBitmap*          StarBitmap();
-                       SharedBitmap            fStarBlueBitmap;
-                       SharedBitmap            fStarGrayBitmap;
+                       BReference<SharedBitmap>
+                                                               fStarBlueBitmap;
+                       BReference<SharedBitmap>
+                                                               fStarGrayBitmap;
 
 private:
                        float                           fRating;


Other related posts:

  • » [haiku-commits] haiku: hrev54122 - in src/apps/haikudepot: model ui_generic ui server - Andrew Lindesay