[poppler] About getFileSpecNameForPlatform

Leonard Rosenthol lrosenth at adobe.com
Tue Jun 30 18:23:35 PDT 2009


I would actually recommend you inverse this, trying to use the UF first (since it's the newest and most generic), then falling back to F (also generic) and then finally looking for Dos/Unix/Mac.  Also, since those last three are almost never generated, you'll find the value faster.

Leonard

-----Original Message-----
From: poppler-bounces at lists.freedesktop.org [mailto:poppler-bounces at lists.freedesktop.org] On Behalf Of Albert Astals Cid
Sent: Tuesday, June 30, 2009 5:12 PM
To: poppler at lists.freedesktop.org
Subject: [poppler] About getFileSpecNameForPlatform

Hi, file on bug 22551 is failing on getFileSpecNameForPlatform

  if (fileSpec->isDict()) {
#ifdef WIN32
    if (!fileSpec->dictLookup("DOS", &obj1)->isString()) {
#else
    if (!fileSpec->dictLookup("Unix", &obj1)->isString()) {
#endif
      obj1.free();
      if (fileSpec->dictLookup("UF", &obj1)->isString ()) {
        name = obj1.getString()->copy();
      } else if (fileSpec->dictLookup("F", &obj1)->isString ()) {
        name = obj1.getString()->copy();
      } else {
        error(-1, "Illegal file spec in link");
      }
    }
    obj1.free();

  // error
  } else {
    error(-1, "Illegal file spec in link");
  }

The thing is that i seem to miss a else here, i mean if Unix is not found we 
use UF or F, but if Unix is found shouldn't we do
 name = obj1.getString()->copy();

Carlos i think this code is yours, is it a typo/bug or am i missing something?

Albert
_______________________________________________
poppler mailing list
poppler at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/poppler


More information about the poppler mailing list