On Thu, Sep 22, 2011 at 12:04:14PM -0500, Bollinger, John C wrote:
>
> Still being unable to access the PDFedit bug tracker, I hope this is a
> reasonable location to offer one more bug report (and a patch).
>
> While attempting to build the 0.4.5 tools on CentOS 5 / x86_64 using
> the distro's standard CGG 4.1.2 toolchain, I receive the following
> compilation error:
>
> g++ -c -g -O2 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fno-strict-aliasing
> -fexceptions -fstack-protector -pipe -posix -ansi -std=c++98 -I.
> -I/home/jbolling/rpm/BUILD/pdfedit-0.4.5/src
> -I/home/jbolling/rpm/BUILD/pdfedit-0.4.5/src/xpdf/ -I/usr/include
> -I/usr/include/freetype2 -I/usr/include -o replace_text.o replace_text.cc
> replace_text.cc: In function 'int main(int, char**)':
> replace_text.cc:140: error: no matching function for call to 'min(size_t&,
> unsigned int)'
Yet another gcc 4.1 issue, I would say.
>
> The source line in question is the innocuous looking:
>
> to = std::min(to, pdf->getPageCount()+1);
>
> The problem is that 'to' has type size_t, whereas pdf->getPageCount()
> has type unsigned int, and these are not equivalent in the compilation
> environment. (size_t is a 64-bit unsigned integer, whereas unsigned
> int is only 32 bits wide.)
This is already fixed in the CVS as:
to = std::min(static_cast<unsigned int>(to), pdf->getPageCount()+1);
> The problem could, and perhaps should, be fixed by changing the
> data type of one or the other of these expressions so that they are
> compatible, but a quick and not-too-dirty solution is to just do this:
>
> diff -Naur pdfedit-0.4.5-base/src/tools/replace_text.cc
> pdfedit-0.4.5-mod/src/tools/replace_text.cc
> --- pdfedit-0.4.5-base/src/tools/replace_text.cc 2010-02-23
> 12:28:09.000000000 -0600
> +++ pdfedit-0.4.5-mod/src/tools/replace_text.cc 2011-09-22 11:20:19.000000000
> -0500
> @@ -137,7 +137,7 @@
>
>
> // sane values
> - to = std::min(to, pdf->getPageCount()+1);
> + to = std::min(to, static_cast<size_t>(pdf->getPageCount()+1));
>
> // now the hard stuff comes - do this crazy loops
> intentionally
> for (size_t things_to_replace = 0; things_to_replace <
> withs.size(); ++things_to_replace)
> === end of patch ===
>
>
> Best,
>
> John Bollinger
>
>
> Email Disclaimer: www.stjude.org/emaildisclaimer
>
>
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure contains a
> definitive record of customers, application performance, security
> threats, fraudulent activity and more. Splunk takes this data and makes
> sense of it. Business sense. IT sense. Common sense.
> http://p.sf.net/sfu/splunk-d2dcopy1
> _______________________________________________
> Pdfedit-support mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/pdfedit-support
--
Michal Hocko
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Pdfedit-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pdfedit-support