X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-url.cpp;h=c43af6d7485ec4f7a29ed2b3759b9f63846fb62d;hb=a6e73b84ce0442ad28197c3ef2ed1b48fa682508;hp=af3b04ca3daed873b5e56b143bcd3460ef81f305;hpb=38f0ea9fcdf1dc5037144fa19c8a52316c8af763;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/visual-url.cpp b/dali-toolkit/internal/visuals/visual-url.cpp index af3b04c..c43af6d 100644 --- a/dali-toolkit/internal/visuals/visual-url.cpp +++ b/dali-toolkit/internal/visuals/visual-url.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ #include // EXTERNAL HEADERS +#include #include // for toupper() namespace Dali @@ -104,8 +105,8 @@ VisualUrl::ProtocolType ResolveLocation(const std::string& url) VisualUrl::Type ResolveType(const std::string& url) { // if only one char in string, can only be regular image - const std::size_t count = url.size(); - VisualUrl::Type returnType = VisualUrl::REGULAR_IMAGE; + const std::size_t count = url.size(); + VisualUrl::Type returnType = VisualUrl::REGULAR_IMAGE; if(count > 0) { // parsing from the end for better chance of early outs @@ -218,14 +219,16 @@ VisualUrl::Type ResolveType(const std::string& url) VisualUrl::VisualUrl() : mUrl(), mType(VisualUrl::REGULAR_IMAGE), - mLocation(VisualUrl::LOCAL) + mLocation(VisualUrl::LOCAL), + mUrlHash(0ull) { } VisualUrl::VisualUrl(const std::string& url) : mUrl(url), mType(VisualUrl::REGULAR_IMAGE), - mLocation(VisualUrl::LOCAL) + mLocation(VisualUrl::LOCAL), + mUrlHash(0ull) { if(!url.empty()) { @@ -241,7 +244,8 @@ VisualUrl::VisualUrl(const std::string& url) VisualUrl::VisualUrl(const VisualUrl& url) : mUrl(url.mUrl), mType(url.mType), - mLocation(url.mLocation) + mLocation(url.mLocation), + mUrlHash(url.mUrlHash) { } @@ -256,6 +260,7 @@ VisualUrl& VisualUrl::operator=(const VisualUrl& url) mUrl = url.mUrl; mType = url.mType; mLocation = url.mLocation; + mUrlHash = url.mUrlHash; } return *this; } @@ -265,6 +270,11 @@ const std::string& VisualUrl::GetUrl() const return mUrl; } +const std::uint64_t& VisualUrl::GetUrlHash() const +{ + return DALI_UNLIKELY(mUrlHash == 0) ? (mUrlHash = Dali::CalculateHash(mUrl)) : mUrlHash; +} + VisualUrl::Type VisualUrl::GetType() const { return mType;