diff options
author | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2004-05-16 22:45:42 (GMT) |
---|---|---|
committer | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2004-05-16 22:45:42 (GMT) |
commit | ad63666daeeda50acc7630132d61fe044634fddd (patch) | |
tree | 487b52b30f8a563cbb2e16c6fd2527a6eeb5990f /pdf/xpdf/Function.cc | |
parent | d57c02ebc09bfd1a0cac44140ec7a80dbe43877e (diff) |
Imported Xpdf 2.03 and fixed build.
* ANNOUNCE:
* CHANGES:
* README:
* aconf2.h:
* configure.in:
* dj_make.bat:
* doc/pdffonts.1:
* doc/pdffonts.cat:
* doc/pdffonts.hlp:
* doc/pdfimages.1:
* doc/pdfimages.cat:
* doc/pdfimages.hlp:
* doc/pdfinfo.1:
* doc/pdfinfo.cat:
* doc/pdfinfo.hlp:
* doc/pdftopbm.1:
* doc/pdftopbm.cat:
* doc/pdftopbm.hlp:
* doc/pdftops.1:
* doc/pdftops.cat:
* doc/pdftops.hlp:
* doc/pdftotext.1:
* doc/pdftotext.cat:
* doc/pdftotext.hlp:
* doc/xpdf.1:
* doc/xpdf.cat:
* doc/xpdf.hlp:
* doc/xpdfrc.5:
* doc/xpdfrc.cat:
* doc/xpdfrc.hlp:
* goo/gfile.cc:
* ms_make.bat:
* vms_make.com:
* xpdf/Annot.cc:
* xpdf/Array.cc:
* xpdf/BuiltinFontTables.cc:
* xpdf/CMap.cc:
* xpdf/CMap.h:
* xpdf/Catalog.cc:
* xpdf/CharCodeToUnicode.cc:
* xpdf/CharCodeToUnicode.h:
* xpdf/Decrypt.cc:
* xpdf/Dict.cc:
* xpdf/ErrorCodes.h:
* xpdf/FTFont.cc:
* xpdf/FTFont.h:
* xpdf/FontFile.cc:
* xpdf/FontFile.h:
* xpdf/Function.cc:
* xpdf/Gfx.cc:
* xpdf/Gfx.h:
* xpdf/GfxFont.cc:
* xpdf/GfxFont.h:
* xpdf/GfxState.cc:
* xpdf/GfxState.h:
* xpdf/GlobalParams.cc:
* xpdf/GlobalParams.h:
* xpdf/JBIG2Stream.cc:
* xpdf/Link.cc:
* xpdf/Link.h:
* xpdf/Makefile.am:
* xpdf/OutputDev.h:
* xpdf/PDFDoc.cc:
* xpdf/PDFDoc.h:
* xpdf/PSOutputDev.cc:
* xpdf/PSOutputDev.h:
* xpdf/Page.cc:
* xpdf/Page.h:
* xpdf/Parser.cc:
* xpdf/Stream.cc:
* xpdf/Stream.h:
* xpdf/TTFont.cc:
* xpdf/TTFont.h:
* xpdf/TextOutputDev.cc:
* xpdf/TextOutputDev.h:
* xpdf/UnicodeMap.cc:
* xpdf/UnicodeMap.h:
* xpdf/UnicodeTypeTable.cc:
* xpdf/UnicodeTypeTable.h:
* xpdf/XOutputDev.cc:
* xpdf/XOutputDev.h:
* xpdf/XPDFApp.cc:
* xpdf/XPDFCore.cc:
* xpdf/XPDFCore.h:
* xpdf/XPDFViewer.cc:
* xpdf/XPDFViewer.h:
* xpdf/XRef.cc:
* xpdf/about-text.h:
* xpdf/config.h:
* xpdf/gpdf-control.cc:
* xpdf/gpdf-link-canvas-item.cc:
* xpdf/gpdf-links-canvas-layer.cc:
* xpdf/pdffonts.cc:
* xpdf/pdfimages.cc:
* xpdf/pdfinfo.cc:
* xpdf/pdftopbm.cc:
* xpdf/pdftops.cc:
* xpdf/pdftotext.cc:
* xpdf/tests/test-links.cc:
* xpdf/vms_make.com:
* xpdf/xpdf.cc: Imported Xpdf 2.03 and fixed build.
Diffstat (limited to 'pdf/xpdf/Function.cc')
-rw-r--r-- | pdf/xpdf/Function.cc | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/pdf/xpdf/Function.cc b/pdf/xpdf/Function.cc index 28eed87..d9d4a93 100644 --- a/pdf/xpdf/Function.cc +++ b/pdf/xpdf/Function.cc @@ -381,8 +381,8 @@ void SampledFunction::transform(double *in, double *out) { // pull 2^m values out of the sample array for (j = 0; j < (1<<m); ++j) { - idx = e[j & 1][m - 1]; - for (k = m - 2; k >= 0; --k) { + idx = 0; + for (k = m - 1; k >= 0; --k) { idx = idx * sampleSize[k] + e[(j >> k) & 1][k]; } idx = idx * n + i; @@ -617,9 +617,13 @@ StitchingFunction::StitchingFunction(Object *funcObj, Dict *dict) { } StitchingFunction::StitchingFunction(StitchingFunction *func) { + int i; + k = func->k; funcs = (Function **)gmalloc(k * sizeof(Function *)); - memcpy(funcs, func->funcs, k * sizeof(Function *)); + for (i = 0; i < k; ++i) { + funcs[i] = func->funcs[i]->copy(); + } bounds = (double *)gmalloc((k + 1) * sizeof(double)); memcpy(bounds, func->bounds, (k + 1) * sizeof(double)); encode = (double *)gmalloc(2 * k * sizeof(double)); @@ -630,9 +634,11 @@ StitchingFunction::StitchingFunction(StitchingFunction *func) { StitchingFunction::~StitchingFunction() { int i; - for (i = 0; i < k; ++i) { - if (funcs[i]) { - delete funcs[i]; + if (funcs) { + for (i = 0; i < k; ++i) { + if (funcs[i]) { + delete funcs[i]; + } } } gfree(funcs); @@ -1246,7 +1252,7 @@ void PostScriptFunction::exec(PSStack *stack, int codePtr) { } else { b2 = stack->popBool(); b1 = stack->popBool(); - stack->pushReal(b1 && b2); + stack->pushBool(b1 && b2); } break; case psOpAtan: @@ -1313,8 +1319,8 @@ void PostScriptFunction::exec(PSStack *stack, int codePtr) { stack->roll(2, 1); break; case psOpExp: - r2 = stack->popInt(); - r1 = stack->popInt(); + r2 = stack->popNum(); + r1 = stack->popNum(); stack->pushReal(pow(r1, r2)); break; case psOpFalse: @@ -1426,7 +1432,7 @@ void PostScriptFunction::exec(PSStack *stack, int codePtr) { if (stack->topIsInt()) { stack->pushInt(~stack->popInt()); } else { - stack->pushReal(!stack->popBool()); + stack->pushBool(!stack->popBool()); } break; case psOpOr: @@ -1437,7 +1443,7 @@ void PostScriptFunction::exec(PSStack *stack, int codePtr) { } else { b2 = stack->popBool(); b1 = stack->popBool(); - stack->pushReal(b1 || b2); + stack->pushBool(b1 || b2); } break; case psOpPop: @@ -1455,7 +1461,7 @@ void PostScriptFunction::exec(PSStack *stack, int codePtr) { } break; case psOpSin: - stack->pushReal(cos(stack->popNum())); + stack->pushReal(sin(stack->popNum())); break; case psOpSqrt: stack->pushReal(sqrt(stack->popNum())); @@ -1488,7 +1494,7 @@ void PostScriptFunction::exec(PSStack *stack, int codePtr) { } else { b2 = stack->popBool(); b1 = stack->popBool(); - stack->pushReal(b1 ^ b2); + stack->pushBool(b1 ^ b2); } break; case psOpIf: |