That sounds like a good patch. I look forward to seeing it. > On Sep 21, 2016, at 11:48 PM, Zachary Turner via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > > I have a patch I'd like to submit tomorrow which converts all of the global > command option tables from C-style arrays to llvm ArrayRefs. > > Actually they are still declared internally in each translation unit as > C-style arrays, but the Option classes are updated so that they return > ArrayRefs instead of raw pointers. Previously there were two strategies: > > 1) Sometimes we'd return a const Option* and have a method on the class > called GetNumDefinitions() so you could treat the pointer as an array. > > 2) Other times we'd return a const Option* and expect the caller to iterate > until it reached a sentinel entry. > > With the new approach, the two methods are merged and now the > GetDefinitions() method only returns an ArrayRef<OptionDefinition>. > > Since this carries with it its length, neither the GetNumDefinitions() method > nor the sentinel entry are needed any more. > > Most of the old code compiled without modification, because ArrayRef can be > treated with a similar syntax as arrays, except you'll get a nice assert if > you index out of bounds. > > An added bonus is that you can now iterate over them with ranged-based for > syntax. > > I can put it up for review if anyone would like, but as it is extremely > mechanical there's not really much to see. > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev