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 <[email protected]>
This commit is contained in:
Andrew Lindesay
2020-05-03 09:47:43 +00:00
parent 92290d9bc3
commit 1f3909ade1
11 changed files with 32 additions and 28 deletions
+3 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2019, Andrew Lindesay <[email protected]>.
* Copyright 2019-2020, Andrew Lindesay <[email protected]>.
* 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());
}
+3 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2019, Andrew Lindesay <[email protected]>.
* Copyright 2019-2020, Andrew Lindesay <[email protected]>.
* 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;
};
+3 -3
View File
@@ -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);
}
@@ -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);
@@ -1,5 +1,5 @@
/*
* Copyright 2019, Andrew Lindesay <apl@lindesay.co.nz>.
* Copyright 2019-2020, Andrew Lindesay <apl@lindesay.co.nz>.
* 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;
}
@@ -1,5 +1,5 @@
/*
* Copyright 2017-2019, Andrew Lindesay <apl@lindesay.co.nz>.
* Copyright 2017-2020, Andrew Lindesay <apl@lindesay.co.nz>.
* 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;
}
@@ -1,6 +1,7 @@
/*
* Copyright 2013-214, Stephan Aßmus <superstippi@gmx.de>.
* Copyright 2017, Julian Harnath <julian.harnath@rwth-aachen.de>.
* Copyright 2020, Andrew Lindesay <apl@lindesay.co.nz>.
* 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()
+4 -4
View File
@@ -1,6 +1,6 @@
/*
* Copyright 2014, Stephan Aßmus <superstippi@gmx.de>.
* Copyright 2016-2019, Andrew Lindesay <apl@lindesay.co.nz>.
* Copyright 2016-2020, Andrew Lindesay <apl@lindesay.co.nz>.
* 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"));
+1 -1
View File
@@ -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",
@@ -1,6 +1,6 @@
/*
* Copyright 2013-2014, Stephan Aßmus <superstippi@gmx.de>.
* Copyright 2018, Andrew Lindesay <apl@lindesay.co.nz>.
* Copyright 2018-2020, Andrew Lindesay <apl@lindesay.co.nz>.
* 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);
}
+6 -3
View File
@@ -1,12 +1,13 @@
/*
* Copyright 2013-2014, Stephan Aßmus <superstippi@gmx.de>.
* Copyright 2018, Andrew Lindesay <apl@lindesay.co.nz>.
* Copyright 2018-2020, Andrew Lindesay <apl@lindesay.co.nz>.
* 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;