亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jpg.c

?? 在ecos 下mingui 的移植開發
?? C
?? 第 1 頁 / 共 4 頁
字號:
access_virt_barray (j_common_ptr cinfo, jvirt_barray_ptr ptr,		    JDIMENSION start_row, JDIMENSION num_rows,		    boolean writable)/* Access the part of a virtual block array starting at start_row *//* and extending for num_rows rows.  writable is true if  *//* caller intends to modify the accessed area. */{  JDIMENSION end_row = start_row + num_rows;  JDIMENSION undef_row;  /* debugging check */  if (end_row > ptr->rows_in_array || num_rows > ptr->maxaccess ||      ptr->mem_buffer == NULL)    ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS);  /* Make the desired part of the virtual array accessible */  if (start_row < ptr->cur_start_row ||      end_row > ptr->cur_start_row+ptr->rows_in_mem) {    if (! ptr->b_s_open)      ERREXIT(cinfo, JERR_VIRTUAL_BUG);    /* Flush old buffer contents if necessary */    if (ptr->dirty) {      do_barray_io(cinfo, ptr, TRUE);      ptr->dirty = FALSE;    }    /* Decide what part of virtual array to access.     * Algorithm: if target address > current window, assume forward scan,     * load starting at target address.  If target address < current window,     * assume backward scan, load so that target area is top of window.     * Note that when switching from forward write to forward read, will have     * start_row = 0, so the limiting case applies and we load from 0 anyway.     */    if (start_row > ptr->cur_start_row) {      ptr->cur_start_row = start_row;    } else {      /* use long arithmetic here to avoid overflow & unsigned problems */      long ltemp;      ltemp = (long) end_row - (long) ptr->rows_in_mem;      if (ltemp < 0)	ltemp = 0;		/* don't fall off front end of file */      ptr->cur_start_row = (JDIMENSION) ltemp;    }    /* Read in the selected part of the array.     * During the initial write pass, we will do no actual read     * because the selected part is all undefined.     */    do_barray_io(cinfo, ptr, FALSE);  }  /* Ensure the accessed part of the array is defined; prezero if needed.   * To improve locality of access, we only prezero the part of the array   * that the caller is about to access, not the entire in-memory array.   */  if (ptr->first_undef_row < end_row) {    if (ptr->first_undef_row < start_row) {      if (writable)		/* writer skipped over a section of array */	ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS);      undef_row = start_row;	/* but reader is allowed to read ahead */    } else {      undef_row = ptr->first_undef_row;    }    if (writable)      ptr->first_undef_row = end_row;    if (ptr->pre_zero) {      size_t bytesperrow = (size_t) ptr->blocksperrow * SIZEOF(JBLOCK);      undef_row -= ptr->cur_start_row; /* make indexes relative to buffer */      end_row -= ptr->cur_start_row;      while (undef_row < end_row) {	jzero_far((void *) ptr->mem_buffer[undef_row], bytesperrow);	undef_row++;      }    } else {      if (! writable)		/* reader looking at undefined data */	ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS);    }  }  /* Flag the buffer dirty if caller will write in it */  if (writable)    ptr->dirty = TRUE;  /* Return address of proper part of the buffer */  return ptr->mem_buffer + (start_row - ptr->cur_start_row);}/* * Release all objects belonging to a specified pool. */METHODDEF(void)free_pool (j_common_ptr cinfo, int pool_id){  my_mem_ptr mem = (my_mem_ptr) cinfo->mem;  small_pool_ptr shdr_ptr;  large_pool_ptr lhdr_ptr;  size_t space_freed;  if (pool_id < 0 || pool_id >= JPOOL_NUMPOOLS)    ERREXIT1(cinfo, JERR_BAD_POOL_ID, pool_id);	/* safety check */#ifdef MEM_STATS  if (cinfo->err->trace_level > 1)    print_mem_stats(cinfo, pool_id); /* print pool's memory usage statistics */#endif  /* If freeing IMAGE pool, close any virtual arrays first */  if (pool_id == JPOOL_IMAGE) {    jvirt_sarray_ptr sptr;    jvirt_barray_ptr bptr;    for (sptr = mem->virt_sarray_list; sptr != NULL; sptr = sptr->next) {      if (sptr->b_s_open) {	/* there may be no backing store */	sptr->b_s_open = FALSE;	/* prevent recursive close if error */	(*sptr->b_s_info.close_backing_store) (cinfo, & sptr->b_s_info);      }    }    mem->virt_sarray_list = NULL;    for (bptr = mem->virt_barray_list; bptr != NULL; bptr = bptr->next) {      if (bptr->b_s_open) {	/* there may be no backing store */	bptr->b_s_open = FALSE;	/* prevent recursive close if error */	(*bptr->b_s_info.close_backing_store) (cinfo, & bptr->b_s_info);      }    }    mem->virt_barray_list = NULL;  }  /* Release large objects */  lhdr_ptr = mem->large_list[pool_id];  mem->large_list[pool_id] = NULL;  while (lhdr_ptr != NULL) {    large_pool_ptr next_lhdr_ptr = lhdr_ptr->hdr.next;    space_freed = lhdr_ptr->hdr.bytes_used +		  lhdr_ptr->hdr.bytes_left +		  SIZEOF(large_pool_hdr);    jpeg_free_large(cinfo, (void *) lhdr_ptr, space_freed);    mem->total_space_allocated -= space_freed;    lhdr_ptr = next_lhdr_ptr;  }  /* Release small objects */  shdr_ptr = mem->small_list[pool_id];  mem->small_list[pool_id] = NULL;  while (shdr_ptr != NULL) {    small_pool_ptr next_shdr_ptr = shdr_ptr->hdr.next;    space_freed = shdr_ptr->hdr.bytes_used +		  shdr_ptr->hdr.bytes_left +		  SIZEOF(small_pool_hdr);    jpeg_free_small(cinfo, (void *) shdr_ptr, space_freed);    mem->total_space_allocated -= space_freed;    shdr_ptr = next_shdr_ptr;  }}/* * Close up shop entirely. * Note that this cannot be called unless cinfo->mem is non-NULL. */METHODDEF(void)self_destruct (j_common_ptr cinfo){  int pool;  /* Close all backing store, release all memory.   * Releasing pools in reverse order might help avoid fragmentation   * with some (brain-damaged) malloc libraries.   */  for (pool = JPOOL_NUMPOOLS-1; pool >= JPOOL_PERMANENT; pool--) {    free_pool(cinfo, pool);  }  /* Release the memory manager control block too. */  jpeg_free_small(cinfo, (void *) cinfo->mem, SIZEOF(my_memory_mgr));  cinfo->mem = NULL;		/* ensures I will be called only once */  jpeg_mem_term(cinfo);		/* system-dependent cleanup */}/* * Memory manager initialization. * When this is called, only the error manager pointer is valid in cinfo! */GLOBAL(void)jinit_memory_mgr (j_common_ptr cinfo){  my_mem_ptr mem;  long max_to_use;  int pool;  size_t test_mac;  cinfo->mem = NULL;		/* for safety if init fails */  /* Check for configuration errors.   * SIZEOF(ALIGN_TYPE) should be a power of 2; otherwise, it probably   * doesn't reflect any real hardware alignment requirement.   * The test is a little tricky: for X>0, X and X-1 have no one-bits   * in common if and only if X is a power of 2, ie has only one one-bit.   * Some compilers may give an "unreachable code" warning here; ignore it.   */  if ((SIZEOF(ALIGN_TYPE) & (SIZEOF(ALIGN_TYPE)-1)) != 0)    ERREXIT(cinfo, JERR_BAD_ALIGN_TYPE);  /* MAX_ALLOC_CHUNK must be representable as type size_t, and must be   * a multiple of SIZEOF(ALIGN_TYPE).   * Again, an "unreachable code" warning may be ignored here.   * But a "constant too large" warning means you need to fix MAX_ALLOC_CHUNK.   */  test_mac = (size_t) MAX_ALLOC_CHUNK;  if ((long) test_mac != MAX_ALLOC_CHUNK ||      (MAX_ALLOC_CHUNK % SIZEOF(ALIGN_TYPE)) != 0)    ERREXIT(cinfo, JERR_BAD_ALLOC_CHUNK);  max_to_use = jpeg_mem_init(cinfo); /* system-dependent initialization */  /* Attempt to allocate memory manager's control block */  mem = (my_mem_ptr) jpeg_get_small(cinfo, SIZEOF(my_memory_mgr));  if (mem == NULL) {    jpeg_mem_term(cinfo);	/* system-dependent cleanup */    ERREXIT1(cinfo, JERR_OUT_OF_MEMORY, 0);  }  /* OK, fill in the method pointers */  mem->pub.alloc_small = alloc_small;  mem->pub.alloc_large = alloc_large;  mem->pub.alloc_sarray = alloc_sarray;  mem->pub.alloc_barray = alloc_barray;  mem->pub.request_virt_sarray = request_virt_sarray;  mem->pub.request_virt_barray = request_virt_barray;  mem->pub.realize_virt_arrays = realize_virt_arrays;  mem->pub.access_virt_sarray = access_virt_sarray;  mem->pub.access_virt_barray = access_virt_barray;  mem->pub.free_pool = free_pool;  mem->pub.self_destruct = self_destruct;  /* Initialize working state */  mem->pub.max_memory_to_use = max_to_use;  for (pool = JPOOL_NUMPOOLS-1; pool >= JPOOL_PERMANENT; pool--) {    mem->small_list[pool] = NULL;    mem->large_list[pool] = NULL;  }  mem->virt_sarray_list = NULL;  mem->virt_barray_list = NULL;  mem->total_space_allocated = SIZEOF(my_memory_mgr);  /* Declare ourselves open for business */  cinfo->mem = & mem->pub;  /* Check for an environment variable JPEGMEM; if found, override the   * default max_memory setting from jpeg_mem_init.  Note that the   * surrounding application may again override this value.   * If your system doesn't support getenv(), define NO_GETENV to disable   * this feature.   */#ifndef NO_GETENV  { char * memenv;    if ((memenv = getenv("JPEGMEM")) != NULL) {      char ch = 'x';      if (sscanf(memenv, "%ld%c", &max_to_use, &ch) > 0) {	if (ch == 'm' || ch == 'M')	  max_to_use *= 1000L;	mem->pub.max_memory_to_use = max_to_use * 1000L;      }    }  }#endif}#define JPEG_INTERNALS#ifndef HAVE_STDLIB_H		/* <stdlib.h> should declare malloc(),free() */extern void * malloc JPP((size_t size));extern void free JPP((void *ptr));#endif/* * Memory allocation and freeing are controlled by the regular library * routines malloc() and free(). */GLOBAL(void *)jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject){  return (void *) malloc(sizeofobject);}GLOBAL(void)jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject){  free(object);}/* * "Large" objects are treated the same as "small" ones. * NB: although we include keywords in the routine declarations, * this file won't actually work in 80x86 small/medium model; at least, * you probably won't be able to process useful-size images in only 64KB. */GLOBAL(void *)jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject){  return (void *) malloc(sizeofobject);}GLOBAL(void)jpeg_free_large (j_common_ptr cinfo, void * object, size_t sizeofobject){  free(object);}/* * This routine computes the total memory space available for allocation. * Here we always say, "we got all you want bud!" */GLOBAL(long)jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed,		    long max_bytes_needed, long already_allocated){  return max_bytes_needed;}/* * Backing store (temporary file) management. * Since jpeg_mem_available always promised the moon, * this should never be called and we can just error out. */GLOBAL(void)jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info,			 long total_bytes_needed){  ERREXIT(cinfo, JERR_NO_BACKING_STORE);}/* * These routines take care of any system-dependent initialization and * cleanup required.  Here, there isn't any. */GLOBAL(long)jpeg_mem_init (j_common_ptr cinfo){  return 0;			/* just set max_memory_to_use to 0 */}GLOBAL(void)jpeg_mem_term (j_common_ptr cinfo){  /* no work */}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美精品三级| 日韩欧美中文一区| 日韩欧美黄色影院| 中文字幕成人av| 日韩黄色片在线观看| 国产大陆亚洲精品国产| 欧美午夜不卡视频| 国产欧美一区视频| 美女一区二区三区| 一本大道av伊人久久综合| 欧美mv日韩mv国产网站app| 亚洲一区av在线| 成人三级伦理片| 久久综合九色欧美综合狠狠| 亚洲国产中文字幕在线视频综合| 国产成人免费xxxxxxxx| 精品国产乱码久久久久久闺蜜| 亚洲精品国产无套在线观| 成人动漫精品一区二区| 精品日产卡一卡二卡麻豆| 香港成人在线视频| 欧美性生活大片视频| 亚洲欧洲日韩一区二区三区| 国产寡妇亲子伦一区二区| 日韩精品中午字幕| 麻豆一区二区三区| 日韩一区二区三区精品视频| 亚洲大片一区二区三区| 日韩欧美国产午夜精品| 亚洲v日本v欧美v久久精品| 91麻豆国产福利精品| 国产精品国产精品国产专区不蜜| 国产精品123| 久久精品夜色噜噜亚洲a∨| 国产一区二区三区四| 欧美成人video| 久久不见久久见免费视频1| 欧美一区中文字幕| 久久精品国产精品亚洲红杏 | 国产三级欧美三级日产三级99| 三级亚洲高清视频| 欧美一级免费大片| 久久成人18免费观看| www一区二区| 国产福利不卡视频| 国产精品欧美综合在线| 国产99精品视频| 国产精品久久久久三级| av在线播放不卡| 亚洲九九爱视频| 欧美日韩激情一区| 毛片不卡一区二区| 国产视频一区二区三区在线观看| 国产91精品在线观看| 亚洲人吸女人奶水| 911精品产国品一二三产区| 捆绑调教美女网站视频一区| 26uuu欧美日本| 94-欧美-setu| 首页综合国产亚洲丝袜| 精品国产亚洲在线| 91原创在线视频| 青娱乐精品在线视频| 亚洲精品在线观看视频| 粉嫩高潮美女一区二区三区| 一区二区在线观看免费视频播放| 在线不卡的av| 国产99久久久国产精品潘金| 亚洲无线码一区二区三区| 精品国产一区二区三区久久影院| 91一区二区三区在线观看| 日韩av在线播放中文字幕| 国产欧美日韩亚州综合| 欧美在线观看禁18| 国产乱码精品一区二区三 | 亚洲日韩欧美一区二区在线| 欧美片在线播放| 成人国产视频在线观看| 五月婷婷综合网| 中文字幕久久午夜不卡| 欧美日韩不卡一区| 成人亚洲一区二区一| 男女男精品视频| 亚洲色欲色欲www| 2019国产精品| 欧美日韩精品是欧美日韩精品| 国产成人亚洲综合a∨婷婷 | 欧美日本一区二区三区四区| 国产一区二区三区日韩| 亚洲成国产人片在线观看| 国产精品久线在线观看| 精品国产免费一区二区三区香蕉| 在线看日本不卡| 成人午夜精品在线| 久久国产剧场电影| 日韩精品欧美精品| 亚洲一区av在线| 亚洲欧美日韩综合aⅴ视频| 久久精品欧美一区二区三区不卡| 91.麻豆视频| 欧美日韩一级二级| 91免费版在线| 99re视频精品| av不卡在线观看| 成人精品视频一区二区三区尤物| 人人超碰91尤物精品国产| 亚洲精品国产视频| 亚洲精品视频一区二区| 国产精品人人做人人爽人人添| 久久久久久久综合色一本| 日韩欧美中文一区| 日韩欧美视频在线| 日韩精品最新网址| 日韩欧美资源站| 日韩一区二区三区三四区视频在线观看 | 国产美女视频91| 国产精品一区二区男女羞羞无遮挡| 人人超碰91尤物精品国产| 日本成人在线视频网站| 日日噜噜夜夜狠狠视频欧美人 | 一区二区在线电影| 亚洲精品国产无天堂网2021| 一区二区三区.www| 亚洲成人免费视频| 日本不卡在线视频| 久久国产精品第一页| 国产一区高清在线| 成人免费av资源| 91麻豆成人久久精品二区三区| 色狠狠综合天天综合综合| 在线视频一区二区免费| 欧美日韩卡一卡二| 日韩一二三四区| 久久久影视传媒| 国产精品第一页第二页第三页| 国产精品国产三级国产普通话蜜臀| 中文字幕综合网| 亚洲午夜久久久久中文字幕久| 婷婷综合另类小说色区| 精品一区中文字幕| 国产经典欧美精品| 色视频一区二区| 欧美精品第1页| 久久综合九色综合97_久久久| 中文av一区特黄| 亚洲妇熟xx妇色黄| 国内久久婷婷综合| 色综合天天综合| 日韩一卡二卡三卡国产欧美| 久久久久久久电影| 一区二区三区在线视频免费| 日本不卡一区二区| 99久久久久免费精品国产| 欧美另类久久久品| 日本一区二区电影| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品免费视频一区| 亚洲精品乱码久久久久久久久| 免费在线看一区| 成人午夜精品在线| 欧美一区二区三区在线| 国产精品国产三级国产普通话99| 亚洲电影中文字幕在线观看| 国产精品一区二区无线| 欧美老女人第四色| 国产精品美女www爽爽爽| 日产国产欧美视频一区精品| 不卡的电视剧免费网站有什么| 69久久99精品久久久久婷婷| 国产精品免费视频一区| 蜜臀av性久久久久av蜜臀妖精| 99国产精品视频免费观看| 精品对白一区国产伦| 亚洲国产精品一区二区久久| 国产91精品一区二区麻豆网站| 欧美日韩一级片在线观看| 专区另类欧美日韩| 国产精品一二三区| 欧美一区二区三区播放老司机| 国产精品久久久久一区二区三区 | 91久久精品一区二区| 久久美女高清视频| 日韩精品三区四区| 欧美亚洲尤物久久| 亚洲天堂福利av| 国产成人精品影院| 久久日一线二线三线suv| 免费欧美在线视频| 欧美视频在线观看一区二区| 亚洲欧洲精品一区二区三区 | 欧美精品一区二区久久婷婷 | 蜜桃在线一区二区三区| 欧美亚洲另类激情小说| 亚洲欧美日韩国产综合在线| 成人国产精品免费观看动漫| 26uuu色噜噜精品一区二区| 精品一区二区三区在线观看 | 精品久久久三级丝袜| 日韩电影一区二区三区四区| 欧美专区日韩专区|