Skip to content
Snippets Groups Projects
  1. Apr 06, 2021
  2. Apr 05, 2021
    • Vedant Paranjape's avatar
      Add alternative meson install command · 76a5861f
      Vedant Paranjape authored
      
      While installing meson using pip3 install --user meson, due to python
      path issues, build.ninja can't be located by ninja. meson generates
      ninja files fine, but then when you run ninja, it is unable to find
      meson's build.ninja python module due to path issues.
      It gives the following error on ninja -C build install:
      
      ninja: Entering directory `build'
      ninja: error: loading 'build.ninja': No such file or directory
      
      After uninstalling meson using pip3 and installing it again using pip
      without --user argument solved the issue.
      
      Add a troubleshooting section to the readme to describe this issue and
      suggest possible solutions.
      
      Signed-off-by: default avatarVedant Paranjape <vedantparanjape160201@gmail.com>
      Reviewed-by: default avatarPaul Elder <paul.elder@ideasonboard.com>
      Signed-off-by: default avatarPaul Elder <paul.elder@ideasonboard.com>
      76a5861f
  3. Apr 04, 2021
  4. Apr 03, 2021
  5. Mar 29, 2021
  6. Mar 28, 2021
    • Khem Raj's avatar
      pipeline: uvcvideo: Avoid reference to temporary object · 299e8ef5
      Khem Raj authored and Laurent Pinchart's avatar Laurent Pinchart committed
      
      A range-based for loop whose range expression is an array of char
      pointers and range variable declaration is a const reference to a
      std::string creates a temporary string from the char pointer and binds
      the range variable reference to it. This creates a const reference to a
      temporary, which is valid in C++, and extends the lifetime of the
      temporary to the lifetime of the reference.
      
      However, lifetime extension in range-based for loops is considered as a
      sign of a potential issue, as a temporary is created for every
      iteration, which can be costly, and the usage of a reference in the
      range declaration doesn't make it obvious that the code isn't simply
      binding a reference to an existing object. gcc 11, with the
      -Wrange-loop-construct option, flags this:
      
      uvcvideo.cpp:432:33: error: loop variable 'name' of type 'const string&' {aka 'const std::__cxx11::basic_string<cha
      r>&'} binds to a temporary constructed from type 'const char* const' [-Werror=range-loop-construct]
      |   432 |         for (const std::string &name : { "idVendor", "idProduct" }) {
      |       |                                 ^~~~
      
      To please the compiler, make the range variable a const char *. This may
      bring a tiny performance improvement, as the name is only used once, in
      a location where the compiler can use
      
      	operator+(const std::string &, const char *)
      
      instead of
      
      	operator+(const std::string &, const std::string &)
      
      Signed-off-by: default avatarKhem Raj <raj.khem@gmail.com>
      Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      
      Use a const char * type instead of auto, and update the commit message
      accordingly.
      
      Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      299e8ef5
Loading