[prev in list] [next in list] [prev in thread] [next in thread]
List: pdf-devel
Subject: [pdf-devel] [PATCH] #96 Document pdf_fp_func_debug_t data type
From: "David Vazquez" <davazp () es ! gnu ! org>
Date: 2009-04-17 18:28:19
Message-ID: 47106.79.153.148.56.1239992899.squirrel () webmail ! es ! gnu ! org
[Download RAW message or body]
I attach the patch for this task.
["docpatch" (application/octet-stream)]
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: davazp@gmail.com-20090417181024-i2gag3bfehmxb0kq
# target_branch: http://bzr.savannah.gnu.org/r/pdf/libgnupdf/branches\
# /trunk/
# testament_sha1: 34719023fa32f27e1905ccbc28bd77c4127f3106
# timestamp: 2009-04-17 20:12:16 +0200
# base_revision_id: jemarch@termi-20090416221338-b8nyznfgedla5ys9
#
# Begin patch
=== modified file 'ChangeLog'
--- ChangeLog 2009-04-16 22:13:38 +0000
+++ ChangeLog 2009-04-17 18:10:24 +0000
@@ -1,3 +1,10 @@
+2009-04-17 David Vazquez <davazp@es.gnu.org>
+
+ * doc/gnupdf.texi (Evaluation of Functions): Document the
+ 'pdf_fp_func_debug_t' data type.
+
+ * torture/tortutils/tortutils.c: Add stdlib.h header.
+
2009-04-17 Jose E. Marchesi <jemarch@gnu.org>
* Time module bugfixes and an initial set of unit tests by Lukasz
=== modified file 'doc/gnupdf.texi'
--- doc/gnupdf.texi 2009-03-03 22:26:28 +0000
+++ doc/gnupdf.texi 2009-04-17 18:10:24 +0000
@@ -5453,6 +5453,58 @@
@end table
@end deftypefun
+
+@deftp {Constant} PDF_FP_FUNC_TYPE4_TRUE
+Stand for true value in the debugging information structure.
+@end deftp
+
+@deftp {Constant} PDF_FP_FUNC_TYPE4_FALSE
+Stand for false value in the debugging information structure.
+@end deftp
+
+
+@deftp {Data Type} {pdf_fp_func_debug_t}
+
+This structure contains debugging data associated to the evaluation of a
+function.
+
+@table @code
+@item type0
+No information for type0 functions.
+@item type2
+No information for type2 functions.
+@item type3
+No information for type3 functions.
+@item type4
+@table @code
+@item status
+A PDF status value:
+@table @code
+@item PDF_ERROR
+An unknown error ocurred.
+@item PDF_EINVRANGE
+Invalid range operand for the current operator..
+@item PDF_EUNDERFLOW
+Try to fetch an element from an empty stack.
+@item PDF_EOVERFLOW
+Overflow of stack.
+@item PDF_EBADTYPE
+Invalid type data for the current operator.
+@item PDF_EMATH
+Math error.
+@end table
+@item op
+Offset in the source code in which the error ocurred.
+@item stack_size
+Size of the stack.
+@item stack
+Array of elements in the stack when the error ocurred. The first element
+is the last pushed one. Each element is a double value or a boolean one.
+@end table
+@end table
+@end deftp
+
+
@deftypefun pdf_status_t pdf_fp_func_eval (pdf_fp_func_t @var{function}, const \
pdf_real_t @var{in}[], pdf_real_t @var{out}[], pdf_fp_func_debug_t *@var{debug})
Evaluate a function.
@@ -5476,6 +5528,14 @@
The evaluation was successfully performed.
@item PDF_ERROR
Error while evaluating the function.
+@item PDF_TYPE0
+Error in a type0 function. The debug structure will contain more information.
+@item PDF_TYPE2
+Error in a type2 function. The debug structure will contain more information.
+@item PDF_TYPE3
+Error in a type3 function. The debug structure will contain more information.
+@item PDF_TYPE4
+Error in a type4 function. The debug structure will contain more information.
@end table
@item Usage example
@example
=== modified file 'src/base/pdf-fp-func.c'
--- src/base/pdf-fp-func.c 2009-02-24 17:53:55 +0000
+++ src/base/pdf-fp-func.c 2009-04-17 18:10:24 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2009-02-24 18:52:09 davazp"
+/* -*- mode: C -*- Time-stamp: "2009-04-17 19:24:54 david"
*
* File: pdf-fp-func.c
* Date: Sun Nov 30 18:46:06 2008
@@ -1397,13 +1397,12 @@
#define NSTACK PDF_FP_FUNC_TYPE4_STACK_SIZE
-#define REP_TRUE (1.202056903159594285399738162)
-#define REP_FALSE (-15116315767.09215686274509804)
+#define REP_TRUE PDF_FP_FUNC_TYPE4_TRUE
+#define REP_FALSE PDF_FP_FUNC_TYPE4_FALSE
#define INT(xyyzy) ((int) pdf_fp_floor (xyyzy))
#define INT_P(xyzzy) ((xyzzy) == INT(xyzzy))
-
static pdf_status_t
pdf_eval_type4 (pdf_fp_func_t t,
const pdf_real_t in[],
@@ -1731,12 +1730,8 @@
}
- block_error:
- return PDF_ERROR;
-
- stack_error:
- return PDF_EINVRANGE;
-
+ block_error: debug_info.type4.status = PDF_ERROR; goto end;
+ stack_error: debug_info.type4.status = PDF_EINVRANGE; goto end;
stack_underflow: debug_info.type4.status = PDF_EUNDERFLOW; goto end;
stack_overflow: debug_info.type4.status = PDF_EOVERFLOW; goto end;
range_error: debug_info.type4.status = PDF_EINVRANGE; goto end;
=== modified file 'src/base/pdf-fp-func.h'
--- src/base/pdf-fp-func.h 2009-02-24 17:53:55 +0000
+++ src/base/pdf-fp-func.h 2009-04-17 18:10:24 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "2009-02-24 18:12:56 davazp"
+/* -*- mode: C -*- Time-stamp: "2009-04-17 19:17:00 david"
*
* File: pdf-fp-func.h
* Date: Sun Nov 30 18:44:41 2008
@@ -38,6 +38,9 @@
/* Interal size of the type 4 functions stack */
#define PDF_FP_FUNC_TYPE4_STACK_SIZE 100
+#define PDF_FP_FUNC_TYPE4_TRUE (1.202056903159594285399738162)
+#define PDF_FP_FUNC_TYPE4_FALSE (-15116315767.09215686274509804)
+
typedef union
{
struct {
=== modified file 'torture/tortutils/tortutils.c'
--- torture/tortutils/tortutils.c 2008-11-25 21:52:52 +0000
+++ torture/tortutils/tortutils.c 2009-04-17 18:10:24 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "08/11/25 21:03:53 jemarch"
+/* -*- mode: C -*- Time-stamp: "2009-04-17 18:59:48 david"
*
* File: tortutils.c
* Date: Mon Nov 24 22:18:12 2008
@@ -26,6 +26,7 @@
#include <config.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <xalloc.h>
@@ -52,7 +53,7 @@
static char *separator = "/";
#endif /* PDF_HOST_WIN32 */
- path = strdup (tortu_data_path);
+ path = xstrdup (tortu_data_path);
path = xrealloc (path, strlen(path)
+ strlen(separator)
+ strlen(datafilename)
# Begin bundle
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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic