-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127770/#review94914
-----------------------------------------------------------



Very good find, thanks!


src/sycoca/ksycocautils.cpp (line 27)
<https://git.reviewboard.kde.org/r/127770/#comment64445>

    static ? But see next item.



src/sycoca/ksycocautils.cpp (line 39)
<https://git.reviewboard.kde.org/r/127770/#comment64446>

    Variable-length arrays are invalid C++.
    
    gcc might accept it, but -pedantic won't, and other compilers might not.
    
    See e.g. 
http://stackoverflow.com/questions/1887097/variable-length-arrays-in-c (which 
is about C++, the '+'s got removed from the URL)
    
    You can use an enum value to factorize the 8192. I think "static const int" 
won't do, if I read http://en.cppreference.com/w/cpp/language/array correctly.


- David Faure


On April 27, 2016, 8 p.m., Jos van den Oever wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127770/
> -----------------------------------------------------------
> 
> (Updated April 27, 2016, 8 p.m.)
> 
> 
> Review request for KDE Frameworks and David Faure.
> 
> 
> Repository: kservice
> 
> 
> Description
> -------
> 
> The code for reading and writing of strings in KSycoca is not symmetrical. 
> Strings of any length can be written, but only strings of less than 8192 
> bytes may be read. This limit is set in KSycocaUtilsPrivate::read. The limit 
> is probably there to avoid out-of-memory situations.
> 
> On my system I have a lot of XDG data dirs. The length of the environment 
> variable is currently 4092 bytes. KSycocaBuild saves that as UTF-16 which 
> needs 8184 bytes. KBuildSycoca save that without complaint but complains when 
> reading it.
> 
> 
> The simplest solution here is to simply increase the magic number 8192 to 
> e.g. 65528. This is just a temporary buffer.
> 
> Or we just check the size of the whole cache file (e.g. < 100M) and remove 
> all other limits. That would simplify
> 
>    KSycocaUtilsPrivate::read(*str, header.prefixes);
> 
> to
> 
>    *str >> header.prefixes;
> 
> This patch chooses the first option.
> 
> 
> Diffs
> -----
> 
>   src/sycoca/ksycocautils.cpp 1ba75e8 
> 
> Diff: https://git.reviewboard.kde.org/r/127770/diff/
> 
> 
> Testing
> -------
> 
> Ran unit tests on KService. All but one of the previously failing tests on 
> NixOS is now fixed.
> 
> 
> Thanks,
> 
> Jos van den Oever
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to