> On apr 27, 2016, 8:36 p.m., David Faure wrote: > > src/sycoca/ksycocautils.cpp, line 39 > > <https://git.reviewboard.kde.org/r/127770/diff/1/?file=461435#file461435line39> > > > > 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. > > Albert Astals Cid wrote: > I'm not sure if it's up to standard or not but both g++ and clang++ > compile https://paste.kde.org/pfrytc0no with -pendantic > > I wouldn't call it "variable-length" since the length is known at compile > time. > > Also > http://stackoverflow.com/questions/1327806/do-all-c-compilers-allow-using-a-static-const-int-class-member-variable-as-an > seems to say it's fine.
i chose to keep it simple and stick to literals > On apr 27, 2016, 8:36 p.m., David Faure wrote: > > src/sycoca/ksycocautils.cpp, line 27 > > <https://git.reviewboard.kde.org/r/127770/diff/1/?file=461435#file461435line27> > > > > static ? But see next item. i chose to keep it simple and stick to literals - Jos ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/127770/#review94914 ----------------------------------------------------------- On apr 27, 2016, 8:44 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 apr 27, 2016, 8:44 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