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;