Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
jmemansi.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #define JPEG_INTERNALS
00016 #include "jinclude.h"
00017 #include "jpeglib.h"
00018 #include "jmemsys.h"
00019
00020 #ifndef HAVE_STDLIB_H
00021 extern void * malloc JPP((size_t size));
00022 extern void free JPP((void *ptr));
00023 #endif
00024
00025 #ifndef SEEK_SET
00026 #define SEEK_SET 0
00027 #endif
00028
00029
00030
00031
00032
00033
00034
00035 GLOBAL(void *)
00036 jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject)
00037 {
00038 return (void *) malloc(sizeofobject);
00039 }
00040
00041 GLOBAL(void)
00042 jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject)
00043 {
00044 free(object);
00045 }
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 GLOBAL(void FAR *)
00056 jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject)
00057 {
00058 return (void FAR *) malloc(sizeofobject);
00059 }
00060
00061 GLOBAL(void)
00062 jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject)
00063 {
00064 free(object);
00065 }
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 #ifndef DEFAULT_MAX_MEM
00077 #define DEFAULT_MAX_MEM 1000000L
00078 #endif
00079
00080 GLOBAL(long)
00081 jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed,
00082 long max_bytes_needed, long already_allocated)
00083 {
00084 return cinfo->mem->max_memory_to_use - already_allocated;
00085 }
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 METHODDEF(void)
00097 read_backing_store (j_common_ptr cinfo, backing_store_ptr info,
00098 void FAR * buffer_address,
00099 long file_offset, long byte_count)
00100 {
00101 if (fseek(info->temp_file, file_offset, SEEK_SET))
00102 ERREXIT(cinfo, JERR_TFILE_SEEK);
00103 if (JFREAD(info->temp_file, buffer_address, byte_count)
00104 != (size_t) byte_count)
00105 ERREXIT(cinfo, JERR_TFILE_READ);
00106 }
00107
00108
00109 METHODDEF(void)
00110 write_backing_store (j_common_ptr cinfo, backing_store_ptr info,
00111 void FAR * buffer_address,
00112 long file_offset, long byte_count)
00113 {
00114 if (fseek(info->temp_file, file_offset, SEEK_SET))
00115 ERREXIT(cinfo, JERR_TFILE_SEEK);
00116 if (JFWRITE(info->temp_file, buffer_address, byte_count)
00117 != (size_t) byte_count)
00118 ERREXIT(cinfo, JERR_TFILE_WRITE);
00119 }
00120
00121
00122 METHODDEF(void)
00123 close_backing_store (j_common_ptr cinfo, backing_store_ptr info)
00124 {
00125 fclose(info->temp_file);
00126
00127
00128
00129 }
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140 GLOBAL(void)
00141 jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info,
00142 long total_bytes_needed)
00143 {
00144 if ((info->temp_file = tmpfile()) == NULL)
00145 ERREXITS(cinfo, JERR_TFILE_CREATE, "");
00146 info->read_backing_store = read_backing_store;
00147 info->write_backing_store = write_backing_store;
00148 info->close_backing_store = close_backing_store;
00149 }
00150
00151
00152
00153
00154
00155
00156
00157 GLOBAL(long)
00158 jpeg_mem_init (j_common_ptr cinfo)
00159 {
00160 return DEFAULT_MAX_MEM;
00161 }
00162
00163 GLOBAL(void)
00164 jpeg_mem_term (j_common_ptr cinfo)
00165 {
00166
00167 }