# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: davazp@debian-20090511144749-hi9g7vdpnusi9r6n # target_branch: http://bzr.savannah.gnu.org/r/pdf/libgnupdf/branches\ # /trunk/ # testament_sha1: 0935da899c28e229d7684b2ff50b0d2743a77c12 # timestamp: 2009-05-11 17:03:29 +0200 # base_revision_id: jemarch@termi-20090510153302-54rjmsh53zwz9e45 # # Begin patch === modified file 'ChangeLog' --- ChangeLog 2009-05-10 15:33:02 +0000 +++ ChangeLog 2009-05-11 14:47:49 +0000 @@ -1,3 +1,13 @@ +2009-05-11 David Vazquez + + * doc/gnupdf.texi (Debugging procedures): Documentation for + PDF_ASSERT macros. + + * src/base/pdf-error.h (PDF_DEBUG_BASE, PDF_DEBUG_OBJECT) + (PDF_DEBUG_DOCUMENT, PDF_DEBUG_PAGE): Export to the public header. + (PDF_ASSERT_BASE, PDF_ASSERT_OBJECT, PDF_ASSERT_DOCUMENT) + (PDF_ASSERT_PAGE): New macros for debugging. + 2009-05-10 Jose E. Marchesi * doc/gnupdf-arch.texi (Overview): Mention ISO 32000 conformance. === modified file 'doc/gnupdf.texi' --- doc/gnupdf.texi 2009-05-08 10:38:23 +0000 +++ doc/gnupdf.texi 2009-05-11 14:47:49 +0000 @@ -268,6 +268,31 @@ @end example @end table + +Indeed, this module provides a assert macro for each layer. + +@defmac PDF_ASSERT_BASE (condition) +@end defmac +@defmac PDF_ASSERT_OBJECT (condition) +@end defmac +@defmac PDF_ASSERT_DOCUMENT (condition) +@end defmac +@defmac PDF_ASSERT_PAGE (condition) +@end defmac + +@table @strong +@item Parameters +@table @var +@item condition +a C expression. +@end table +@item Usage example +@example +PDF_ASSERT_BASE (1 == 1); +@end example +@end table + + @subheading Output format The output format for these macros is, @@ -277,6 +302,8 @@ GNU PDF:***DEBUG BASE***:pdf-memory.c:344: insufficient memory. + + @node Memory Allocation @section Memory Allocation === modified file 'src/base/pdf-error.h' --- src/base/pdf-error.h 2009-02-20 19:04:32 +0000 +++ src/base/pdf-error.h 2009-05-11 14:47:49 +0000 @@ -1,4 +1,4 @@ -/* -*- mode: C -*- Time-stamp: "2009-02-16 22:15:40 davazp" +/* -*- mode: C -*- Time-stamp: "2009-05-11 16:05:06 davazp" * * File: pdf-error.h * Date: Sun Feb 24 20:22:05 2008 @@ -27,7 +27,12 @@ #define PDF_ERROR_H #include -#include + + +/* BEGIN PUBLIC */ + +#include /* Included again for the public header */ + #ifdef HAVE_DEBUG_BASE #define PDF_DEBUG_BASE(message, ...) \ @@ -61,9 +66,44 @@ #define PDF_DEBUG_PAGE(...) #endif /* HAVE_DEBUG_PAGE */ -/* BEGIN PUBLIC */ - -#include /* Included again for the public header */ + +#define PDF_ASSERT_BASE(condition) \ + do \ + { \ + if (!(condition)) \ + { \ + PDF_DEBUG_BASE("the assert `%s' failed", #condition); \ + } \ + } while(0) + +#define PDF_ASSERT_OBJECT(condition) \ + do \ + { \ + if (!(condition)) \ + { \ + PDF_DEBUG_OBJECT("the assert `%s' failed", #condition); \ + } \ + } while(0) + +#define PDF_ASSERT_DOCUMENT(condition) \ + do \ + { \ + if (!(condition)) \ + { \ + PDF_DEBUG_DOCUMENT("the assert `%s' failed", #condition); \ + } \ + } while(0) + +#define PDF_ASSERT_PAGE(condition) \ + do \ + { \ + if (!(condition)) \ + { \ + PDF_DEBUG_PAGE("the assert `%s' failed", #condition); \ + } \ + } while(0) + + #define PDF_ERROR_LIST \ ERROR_ENTRY (PDF_ERROR, "error"), \ === modified file 'src/base/pdf-fp-func.c' --- src/base/pdf-fp-func.c 2009-04-17 18:10:24 +0000 +++ src/base/pdf-fp-func.c 2009-05-11 14:47:49 +0000 @@ -1,4 +1,4 @@ -/* -*- mode: C -*- Time-stamp: "2009-04-17 19:24:54 david" +/* -*- mode: C -*- Time-stamp: "2009-05-11 16:03:09 davazp" * * File: pdf-fp-func.c * Date: Sun Nov 30 18:46:06 2008 @@ -29,7 +29,6 @@ #include #include #include -#include #include #include @@ -769,7 +768,7 @@ i = (pdf_u32_t)t; t = x-t; - assert(i < nsamples); + PDF_ASSERT_BASE (i < nsamples); if (nsamples < 4) { @@ -952,10 +951,10 @@ double t0[TYPE0_MAX_DIM]; double t1[TYPE0_MAX_DIM]; - p = &fun->u.t0; + p = &fun->u.t0; m = fun->m; - assert(m <= TYPE0_MAX_DIM); + PDF_ASSERT_BASE (m <= TYPE0_MAX_DIM); xcp = 0; i0 = 0; @@ -986,7 +985,7 @@ i0 += cc * i; cc *= p->size[k]; } - j = 0; + j = 0; for (j = 0; j < p->n; j++) { @@ -1050,7 +1049,7 @@ if (w1[i]) /* zero indicates a possibly invalid array index */ { - assert(j+1 < size[i]); + PDF_ASSERT_BASE (j+1 < size[i]); if (i == 0) return w0[i] * y[j] + w1[i] * y[j+1]; else @@ -1158,6 +1157,7 @@ { pdf_u32_t i,j; double t,v; + for (i = 0; i < fun->m; i++) { t = in[i] * fun->u.t0.encode[2*i] + fun->u.t0.encode[2*i+1]; @@ -1203,7 +1203,7 @@ } else if (t > 0) { - assert(fun->u.t0.k[i] == 0); + PDF_ASSERT_BASE (fun->u.t0.k[i] == 0); fun->u.t0.wm[i] = 0; fun->u.t0.w0[i] = (0.5*v-1.5)*v +1; fun->u.t0.w1[i] = (2-v)*v; @@ -1281,9 +1281,8 @@ pdf_u32_t lo,hi; pdf_u32_t i; - assert(t->domain[0] == t->u.t3.bounds[0]); - assert(t->domain[1] == t->u.t3.bounds[t->u.t3.k]); - + PDF_ASSERT_BASE (t->domain[0] == t->u.t3.bounds[0]); + PDF_ASSERT_BASE (t->domain[1] == t->u.t3.bounds[t->u.t3.k]); x = in[0]; # Begin bundle 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 E2vA