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;
     }