[vlc-devel] [PATCH 1/2] adaptive: avoid using global static objects
Steve Lhomme
robux4 at ycbcr.xyz
Thu Apr 1 15:29:50 UTC 2021
On 2021-04-01 17:00, Alexandre Janniaux wrote:
> Hi,
>
> Maybe EmptyString can be removed and getAttributeValue could
> return a pointer (to be able to return nullptr) in that case?
That's what I wanted to avoid, but I missed the part where it's all
nodes that would have their own version of EmptyString.
> There´s not much reason to remove the static because of the
> allocator than add the static to avoid duplicating a std::string
> in every XML node, which would result in an increase of memory
> usage for nothing, so removing the need for Node::EmptyString
> looks much better, but unfortunately there´s no string_view in
> what we allow and no optional to avoid sentinel values, leaving
> only pointer solution in vanilla C++ if I´m not wrong, or wrapper
> for the value.
>
> Regards,
> --
> Alexandre Janniaux
> Videolabs
>
> On Thu, Apr 01, 2021 at 12:34:59PM +0200, Steve Lhomme wrote:
>> This avoids calling a C++ allocator early or a C++ deallocator late in the
>> lifetime of the module/program.
>>
>> In this case the EmptyString doesn't need to be static, just const.
>> ---
>> modules/demux/adaptive/xml/Node.cpp | 2 --
>> modules/demux/adaptive/xml/Node.h | 2 +-
>> 2 files changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/modules/demux/adaptive/xml/Node.cpp b/modules/demux/adaptive/xml/Node.cpp
>> index 1d9cf0e5857..e2ef962cd5c 100644
>> --- a/modules/demux/adaptive/xml/Node.cpp
>> +++ b/modules/demux/adaptive/xml/Node.cpp
>> @@ -33,8 +33,6 @@
>>
>> using namespace adaptive::xml;
>>
>> -const std::string Node::EmptyString = "";
>> -
>> Node::Node() :
>> type( -1 )
>> {
>> diff --git a/modules/demux/adaptive/xml/Node.h b/modules/demux/adaptive/xml/Node.h
>> index d40b8875d8a..5a9a5cb6502 100644
>> --- a/modules/demux/adaptive/xml/Node.h
>> +++ b/modules/demux/adaptive/xml/Node.h
>> @@ -55,7 +55,7 @@ namespace adaptive
>> std::vector<std::string> toString(int) const;
>>
>> private:
>> - static const std::string EmptyString;
>> + const std::string EmptyString;
>> std::vector<Node *> subNodes;
>> std::map<std::string, std::string> attributes;
>> std::string name;
>> --
>> 2.29.2
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
>
More information about the vlc-devel
mailing list