jbig2dec
Ralph Giles <[email protected]> Wed, 05 Mar 2003 06:29:38 -0800
| Newsgroups | gmane.comp.printing.ghostscript.jbig2dec.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/jbig2dec/jbig2dec
In directory sc8-pr-cvs1:/tmp/cvs-serv352
Modified Files:
jbig2.h jbig2_segment.c jbig2_text.c
Log Message:
Make jbig2_find_segment() part of the public api and move it to jbig2_segment.c.
Index: jbig2.h
===================================================================
RCS file: /cvsroot/jbig2dec/jbig2dec/jbig2.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- jbig2.h 5 Feb 2003 15:09:59 -0000 1.16
+++ jbig2.h 5 Mar 2003 14:29:35 -0000 1.17
@@ -119,6 +119,8 @@
const uint8_t *segment_data);
void jbig2_free_segment (Jbig2Ctx *ctx, Jbig2Segment *segment);
+Jbig2Segment *jbig2_find_segment(Jbig2Ctx *ctx, uint32_t number);
+
#endif /* _JBIG2_H */
#ifdef __cplusplus
Index: jbig2_segment.c
===================================================================
RCS file: /cvsroot/jbig2dec/jbig2dec/jbig2_segment.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- jbig2_segment.c 5 Mar 2003 02:44:43 -0000 1.21
+++ jbig2_segment.c 5 Mar 2003 14:29:35 -0000 1.22
@@ -124,6 +124,27 @@
jbig2_free (ctx->allocator, segment);
}
+/* find a segment by number */
+Jbig2Segment *
+jbig2_find_segment(Jbig2Ctx *ctx, uint32_t number)
+{
+ int index, index_max = ctx->segment_index - 1;
+ const Jbig2Ctx *global_ctx = ctx->global_ctx;
+
+ /* FIXME: binary search would be better? */
+ for (index = index_max; index >= 0; index--)
+ if (ctx->segments[index]->number == number)
+ return (ctx->segments[index]);
+
+ if (global_ctx)
+ for (index = global_ctx->segment_index - 1; index >= 0; index--)
+ if (global_ctx->segments[index]->number == number)
+ return (global_ctx->segments[index]);
+
+ /* didn't find a match */
+ return NULL;
+}
+
void
jbig2_get_region_segment_info(Jbig2RegionSegmentInfo *info,
const byte *segment_data)
Index: jbig2_text.c
===================================================================
RCS file: /cvsroot/jbig2dec/jbig2dec/jbig2_text.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- jbig2_text.c 7 Feb 2003 05:06:46 -0000 1.21
+++ jbig2_text.c 5 Mar 2003 14:29:35 -0000 1.22
@@ -274,27 +274,6 @@
return 0;
}
-/* find a segment by number */
-static Jbig2Segment *
-find_segment(Jbig2Ctx *ctx, uint32_t number)
-{
- int index, index_max = ctx->segment_index - 1;
- const Jbig2Ctx *global_ctx = ctx->global_ctx;
-
- /* FIXME: binary search would be better? */
- for (index = index_max; index >= 0; index--)
- if (ctx->segments[index]->number == number)
- return (ctx->segments[index]);
-
- if (global_ctx)
- for (index = global_ctx->segment_index - 1; index >= 0; index--)
- if (global_ctx->segments[index]->number == number)
- return (global_ctx->segments[index]);
-
- /* didn't find a match */
- return NULL;
-}
-
/* count the number of dictionary segments referred to by the given segment */
static int
count_referred_dicts(Jbig2Ctx *ctx, Jbig2Segment *segment)
@@ -304,7 +283,7 @@
int n_dicts = 0;
for (index = 0; index < segment->referred_to_segment_count; index++) {
- rsegment = find_segment(ctx, segment->referred_to_segments[index]);
+ rsegment = jbig2_find_segment(ctx, segment->referred_to_segments[index]);
if (rsegment && ((rsegment->flags & 63) == 0))
n_dicts++;
}
@@ -324,7 +303,7 @@
dicts = jbig2_alloc(ctx->allocator, sizeof(Jbig2SymbolDict *) * n_dicts);
for (index = 0; index < segment->referred_to_segment_count; index++) {
- rsegment = find_segment(ctx, segment->referred_to_segments[index]);
+ rsegment = jbig2_find_segment(ctx, segment->referred_to_segments[index]);
if (rsegment && ((rsegment->flags & 63) == 0))
dicts[dindex++] = (Jbig2SymbolDict *)rsegment->result;
}