Skip to content

Avoid confusion of std::vector and Exiv2::vector

Mamoru TASAKA requested to merge mtasaka/gnome-commander:exiv2-error-fix into master

With gcc-11 and glibc-2.33.9000-1, enabling Exiv2 shows the following error:

builddir/build/BUILD/GIT/gnome-commander/_BUILDDIR/../src/tags/gnome-cmd-tags-exiv2.cc: In function 'void readTags(GnomeCmdFileMetadata*, const T&)':
/builddir/build/BUILD/GIT/gnome-commander/_BUILDDIR/../src/tags/gnome-cmd-tags-exiv2.cc:77:32: error: template argument 1 is invalid
   77 |                     vector<byte> buff(i->value().size()+1);
      |                                ^
/builddir/build/BUILD/GIT/gnome-commander/_BUILDDIR/../src/tags/gnome-cmd-tags-exiv2.cc:77:32: error: template argument 2 is invalid
/builddir/build/BUILD/GIT/gnome-commander/_BUILDDIR/../src/tags/gnome-cmd-tags-exiv2.cc:79:42: error: invalid types 'int[int]' for array subscript
   79 |                     i->value().copy(&buff[0],invalidByteOrder);
      |                                          ^
/builddir/build/BUILD/GIT/gnome-commander/_BUILDDIR/../src/tags/gnome-cmd-tags-exiv2.cc:80:53: error: invalid types 'int[int]' for array subscript
   80 |                     metadata->add(tag,(char *) &buff[0]);
      |                                                     ^

Explicitly specifying to use Exiv2::vector fixes this issue.

Merge request reports