[poppler] reconsideration about iconv() in cpp frontend

Albert Astals Cid aacid at kde.org
Tue Apr 17 18:47:38 UTC 2018


El dimarts, 17 d’abril de 2018, a les 3:24:09 CEST, suzuki toshiya va 
escriure:
> Dear Adam, Albert,
> 
> Thank you very much for taking care on this.
> 
> Albert Astals Cid wrote:
> > El dilluns, 16 d’abril de 2018, a les 19:11:01 CEST, Adam Reichold va
> > 
> > escriure:
> >> I really think that poppler::ustring defined as
> >> 
> >> std::basic_string<unsigned short>
> >> 
> >> is already broken where sizeof(unsigned short) != 2 and hence should be
> >> redefined to
> >> 
> >> std::basic_string<std::uint16_t>
> >> 
> >> without considering that an API break.
> 
> I had a concern whether C++ linker distinguishes uint16_t
> and unsigned short even if their types are exactly same.
> 
> As far as I check GNU binutils: nm & c++filt for gcc object
> files of GNU/Linux on amd64 enviroment, the result looks
> like this, so there would be no problem.
> 
> 00000000000000e0 T mapUTF16(unsigned int, char*, int)
> 0000000000000040 T UTF16toUCS4(unsigned int const*, int, unsigned int**)
> 0000000000000340 T utf8CountUtf16CodeUnits(char const*)
> 0000000000000400 T utf8ToUtf16(char const*, unsigned short*, int, int)
> 0000000000000570 T utf8ToUtf16(char const*, int*)
> 00000000000005c0 T utf16CountUtf8Bytes(unsigned short const*)
> 00000000000006b0 T utf16ToUtf8(unsigned short const*, char*, int, int)
> 0000000000000810 T utf16ToUtf8(unsigned short const*, int*)
> 
> So I have no objection to Adam's proposal to change
> the definition of ustring object.
> 
> # if anybody has the knowledge on other object formats,
> # please let me know.
> 
> > Sure, is there any system where sizeof(unsigned short) != 2 anyway?
> 
> Maybe people feel "such system is out of scope", but there were:
> https://web.archive.org/web/20090408221917/http://www.zib.de/benger/hdf5/Dat
> atypes.html according to the description for "size_t H5Tget_precision (hid_t
> type)", there is a note saying
> "For instance, a short on a Cray is 32 significant bits in an eight-byte
> field."

Yeah we don't care about Cray :D

Cheers,
  Albert

> 
> If the poppler maintainers do not want to include the
> codes rarely used for the exotic systems, I suggest to
> insert a code checking uint16_t == unsigned short in
> CMakeLists.txt.
> 
> Regards,
> mpsuzuki
> 
> _______________________________________________
> poppler mailing list
> poppler at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/poppler






More information about the poppler mailing list