The Independent JPEG Group's JPEG software v6a
diff --git a/jdapimin.c b/jdapimin.c
index d568187..c702154 100644
--- a/jdapimin.c
+++ b/jdapimin.c
@@ -1,7 +1,7 @@
/*
* jdapimin.c
*
- * Copyright (C) 1994-1995, Thomas G. Lane.
+ * Copyright (C) 1994-1996, Thomas G. Lane.
* This file is part of the Independent JPEG Group's software.
* For conditions of distribution and use, see the accompanying README file.
*
@@ -26,11 +26,19 @@
* The error manager must already be set up (in case memory manager fails).
*/
-GLOBAL void
-jpeg_create_decompress (j_decompress_ptr cinfo)
+GLOBAL(void)
+jpeg_CreateDecompress (j_decompress_ptr cinfo, int version, size_t structsize)
{
int i;
+ /* Guard against version mismatches between library and caller. */
+ cinfo->mem = NULL; /* so jpeg_destroy knows mem mgr not called */
+ if (version != JPEG_LIB_VERSION)
+ ERREXIT2(cinfo, JERR_BAD_LIB_VERSION, JPEG_LIB_VERSION, version);
+ if (structsize != SIZEOF(struct jpeg_decompress_struct))
+ ERREXIT2(cinfo, JERR_BAD_STRUCT_SIZE,
+ (int) SIZEOF(struct jpeg_decompress_struct), (int) structsize);
+
/* For debugging purposes, zero the whole master structure.
* But error manager pointer is already there, so save and restore it.
*/
@@ -73,7 +81,7 @@
* Destruction of a JPEG decompression object
*/
-GLOBAL void
+GLOBAL(void)
jpeg_destroy_decompress (j_decompress_ptr cinfo)
{
jpeg_destroy((j_common_ptr) cinfo); /* use common routine */
@@ -85,7 +93,7 @@
* but don't destroy the object itself.
*/
-GLOBAL void
+GLOBAL(void)
jpeg_abort_decompress (j_decompress_ptr cinfo)
{
jpeg_abort((j_common_ptr) cinfo); /* use common routine */
@@ -96,7 +104,7 @@
* Install a special processing method for COM or APPn markers.
*/
-GLOBAL void
+GLOBAL(void)
jpeg_set_marker_processor (j_decompress_ptr cinfo, int marker_code,
jpeg_marker_parser_method routine)
{
@@ -113,7 +121,7 @@
* Set default decompression parameters.
*/
-LOCAL void
+LOCAL(void)
default_decompress_parms (j_decompress_ptr cinfo)
{
/* Guess the input colorspace, and set output colorspace accordingly. */
@@ -240,7 +248,7 @@
* extra error checking.
*/
-GLOBAL int
+GLOBAL(int)
jpeg_read_header (j_decompress_ptr cinfo, boolean require_image)
{
int retcode;
@@ -286,7 +294,7 @@
* method.
*/
-GLOBAL int
+GLOBAL(int)
jpeg_consume_input (j_decompress_ptr cinfo)
{
int retcode = JPEG_SUSPENDED;
@@ -333,7 +341,7 @@
* Have we finished reading the input file?
*/
-GLOBAL boolean
+GLOBAL(boolean)
jpeg_input_complete (j_decompress_ptr cinfo)
{
/* Check for valid jpeg object */
@@ -348,7 +356,7 @@
* Is there more than one scan?
*/
-GLOBAL boolean
+GLOBAL(boolean)
jpeg_has_multiple_scans (j_decompress_ptr cinfo)
{
/* Only valid after jpeg_read_header completes */
@@ -368,7 +376,7 @@
* a suspending data source is used.
*/
-GLOBAL boolean
+GLOBAL(boolean)
jpeg_finish_decompress (j_decompress_ptr cinfo)
{
if ((cinfo->global_state == DSTATE_SCANNING ||