[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