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

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

?? archive.c

?? GCC編譯器源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* GNU Objective C Runtime archiving   Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc.   Contributed by Kresten Krab ThorupThis file is part of GNU CC.GNU CC is free software; you can redistribute it and/or modify it under theterms of the GNU General Public License as published by the Free SoftwareFoundation; either version 2, or (at your option) any later version.GNU CC is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESSFOR A PARTICULAR PURPOSE.  See the GNU General Public License for moredetails.You should have received a copy of the GNU General Public License along withGNU CC; see the file COPYING.  If not, write to the Free SoftwareFoundation, 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.  *//* As a special exception, if you link this library with files compiled with   GCC to produce an executable, this does not cause the resulting executable   to be covered by the GNU General Public License. This exception does not   however invalidate any other reasons why the executable file might be   covered by the GNU General Public License.  */#include "config.h"#include "runtime.h"#include "typedstream.h"#include "encoding.h"#ifdef HAVE_STDLIB_H#include <stdlib.h>#endifextern int fflush(FILE*);#define ROUND(V, A) \  ({ typeof(V) __v=(V); typeof(A) __a=(A);  \     __a*((__v+__a-1)/__a); })#define PTR2LONG(P) (((char*)(P))-(char*)0)#define LONG2PTR(L) (((char*)0)+(L))/* Declare some functions... */static intobjc_read_class (struct objc_typed_stream* stream, Class* class);int objc_sizeof_type(const char* type);static intobjc_write_use_common (struct objc_typed_stream* stream, unsigned long key);static intobjc_write_register_common (struct objc_typed_stream* stream,			    unsigned long key);static int objc_write_class (struct objc_typed_stream* stream,			 struct objc_class* class);const char* objc_skip_type (const char* type);static void __objc_finish_write_root_object(struct objc_typed_stream*);static void __objc_finish_read_root_object(struct objc_typed_stream*);static __inline__ int__objc_code_unsigned_char (unsigned char* buf, unsigned char val){  if ((val&_B_VALUE) == val)    {      buf[0] = val|_B_SINT;      return 1;    }  else    {      buf[0] = _B_NINT|0x01;      buf[1] = val;      return 2;    }}intobjc_write_unsigned_char (struct objc_typed_stream* stream,			  unsigned char value){  unsigned char buf[sizeof (unsigned char)+1];  int len = __objc_code_unsigned_char (buf, value);  return (*stream->write)(stream->physical, buf, len);}static __inline__ int__objc_code_char (unsigned char* buf, char val){  if (val >= 0)    return __objc_code_unsigned_char (buf, val);  else    {      buf[0] = _B_NINT|_B_SIGN|0x01;      buf[1] = -val;      return 2;    }}intobjc_write_char (struct objc_typed_stream* stream, char value){  unsigned char buf[sizeof (char)+1];  int len = __objc_code_char (buf, value);  return (*stream->write)(stream->physical, buf, len);}static __inline__ int__objc_code_unsigned_short (unsigned char* buf, unsigned short val){  if ((val&_B_VALUE) == val)    {      buf[0] = val|_B_SINT;      return 1;    }  else     {      int c, b;      buf[0] = _B_NINT;      for (c= sizeof(short); c != 0; c -= 1)	if (((val>>(8*(c-1)))%0x100) != 0)	  break;      buf[0] |= c;      for (b = 1; c != 0; c--, b++)	{	  buf[b] = (val >> (8*(c-1)))%0x100;	}      return b;    }}intobjc_write_unsigned_short (struct objc_typed_stream* stream, 			   unsigned short value){  unsigned char buf[sizeof (unsigned short)+1];  int len = __objc_code_unsigned_short (buf, value);  return (*stream->write)(stream->physical, buf, len);}      static __inline__ int__objc_code_short (unsigned char* buf, short val){  int sign = (val < 0);  int size = __objc_code_unsigned_short (buf, sign ? -val : val);  if (sign)    buf[0] |= _B_SIGN;  return size;}intobjc_write_short (struct objc_typed_stream* stream, short value){  unsigned char buf[sizeof (short)+1];  int len = __objc_code_short (buf, value);  return (*stream->write)(stream->physical, buf, len);}      static __inline__ int__objc_code_unsigned_int (unsigned char* buf, unsigned int val){  if ((val&_B_VALUE) == val)    {      buf[0] = val|_B_SINT;      return 1;    }  else     {      int c, b;      buf[0] = _B_NINT;      for (c= sizeof(int); c != 0; c -= 1)	if (((val>>(8*(c-1)))%0x100) != 0)	  break;      buf[0] |= c;      for (b = 1; c != 0; c--, b++)	{	  buf[b] = (val >> (8*(c-1)))%0x100;	}      return b;    }}intobjc_write_unsigned_int (struct objc_typed_stream* stream, unsigned int value){  unsigned char buf[sizeof(unsigned int)+1];  int len = __objc_code_unsigned_int (buf, value);  return (*stream->write)(stream->physical, buf, len);}static __inline__ int__objc_code_int (unsigned char* buf, int val){  int sign = (val < 0);  int size = __objc_code_unsigned_int (buf, sign ? -val : val);  if (sign)    buf[0] |= _B_SIGN;  return size;}intobjc_write_int (struct objc_typed_stream* stream, int value){  unsigned char buf[sizeof(int)+1];  int len = __objc_code_int (buf, value);  return (*stream->write)(stream->physical, buf, len);}static __inline__ int__objc_code_unsigned_long (unsigned char* buf, unsigned long val){  if ((val&_B_VALUE) == val)    {      buf[0] = val|_B_SINT;      return 1;    }  else     {      int c, b;      buf[0] = _B_NINT;      for (c= sizeof(long); c != 0; c -= 1)	if (((val>>(8*(c-1)))%0x100) != 0)	  break;      buf[0] |= c;      for (b = 1; c != 0; c--, b++)	{	  buf[b] = (val >> (8*(c-1)))%0x100;	}      return b;    }}intobjc_write_unsigned_long (struct objc_typed_stream* stream, 			  unsigned long value){  unsigned char buf[sizeof(unsigned long)+1];  int len = __objc_code_unsigned_long (buf, value);  return (*stream->write)(stream->physical, buf, len);}static __inline__ int__objc_code_long (unsigned char* buf, long val){  int sign = (val < 0);  int size = __objc_code_unsigned_long (buf, sign ? -val : val);  if (sign)    buf[0] |= _B_SIGN;  return size;}intobjc_write_long (struct objc_typed_stream* stream, long value){  unsigned char buf[sizeof(long)+1];  int len = __objc_code_long (buf, value);  return (*stream->write)(stream->physical, buf, len);}intobjc_write_string (struct objc_typed_stream* stream,		   const unsigned char* string, unsigned int nbytes){  unsigned char buf[sizeof(unsigned int)+1];  int len = __objc_code_unsigned_int (buf, nbytes);    if ((buf[0]&_B_CODE) == _B_SINT)    buf[0] = (buf[0]&_B_VALUE)|_B_SSTR;  else /* _B_NINT */    buf[0] = (buf[0]&_B_VALUE)|_B_NSTR;  if ((*stream->write)(stream->physical, buf, len) != 0)    return (*stream->write)(stream->physical, string, nbytes);  else    return 0;}intobjc_write_string_atomic (struct objc_typed_stream* stream,			  unsigned char* string, unsigned int nbytes){  unsigned long key;  if ((key = PTR2LONG(hash_value_for_key (stream->stream_table, string))))    return objc_write_use_common (stream, key);  else    {      int length;      hash_add (&stream->stream_table, LONG2PTR(key=PTR2LONG(string)), string);      if ((length = objc_write_register_common (stream, key)))	return objc_write_string (stream, string, nbytes);      return length;    }}static intobjc_write_register_common (struct objc_typed_stream* stream, 			    unsigned long key){  unsigned char buf[sizeof (unsigned long)+2];  int len = __objc_code_unsigned_long (buf+1, key);  if (len == 1)    {      buf[0] = _B_RCOMM|0x01;      buf[1] &= _B_VALUE;      return (*stream->write)(stream->physical, buf, len+1);    }  else    {      buf[1] = (buf[1]&_B_VALUE)|_B_RCOMM;      return (*stream->write)(stream->physical, buf+1, len);    }}static intobjc_write_use_common (struct objc_typed_stream* stream, unsigned long key){  unsigned char buf[sizeof (unsigned long)+2];  int len = __objc_code_unsigned_long (buf+1, key);  if (len == 1)    {      buf[0] = _B_UCOMM|0x01;      buf[1] &= _B_VALUE;      return (*stream->write)(stream->physical, buf, 2);    }  else    {      buf[1] = (buf[1]&_B_VALUE)|_B_UCOMM;      return (*stream->write)(stream->physical, buf+1, len);    }}static __inline__ int__objc_write_extension (struct objc_typed_stream* stream, unsigned char code){  if (code <= _B_VALUE)    {      unsigned char buf = code|_B_EXT;      return (*stream->write)(stream->physical, &buf, 1);    }  else     {      objc_error(nil, OBJC_ERR_BAD_OPCODE,		 "__objc_write_extension: bad opcode %c\n", code);      return -1;    }}__inline__ int__objc_write_object (struct objc_typed_stream* stream, id object){  unsigned char buf = '\0';  SEL write_sel = sel_get_any_uid ("write:");  if (object)    {      __objc_write_extension (stream, _BX_OBJECT);      objc_write_class (stream, object->class_pointer);      (*objc_msg_lookup(object, write_sel))(object, write_sel, stream);      return (*stream->write)(stream->physical, &buf, 1);    }  else    return objc_write_use_common(stream, 0);}int objc_write_object_reference (struct objc_typed_stream* stream, id object){  unsigned long key;  if ((key = PTR2LONG(hash_value_for_key (stream->object_table, object))))    return objc_write_use_common (stream, key);  __objc_write_extension (stream, _BX_OBJREF);  return objc_write_unsigned_long (stream, PTR2LONG (object));}int objc_write_root_object (struct objc_typed_stream* stream, id object){  int len = 0;  if (stream->writing_root_p)    objc_error (nil, OBJC_ERR_RECURSE_ROOT, 		"objc_write_root_object called recursively");  else    {      stream->writing_root_p = 1;      __objc_write_extension (stream, _BX_OBJROOT);      if((len = objc_write_object (stream, object)))	__objc_finish_write_root_object(stream);      stream->writing_root_p = 0;    }  return len;}int objc_write_object (struct objc_typed_stream* stream, id object){  unsigned long key;  if ((key = PTR2LONG(hash_value_for_key (stream->object_table, object))))    return objc_write_use_common (stream, key);  else if (object == nil)    return objc_write_use_common(stream, 0);  else    {      int length;      hash_add (&stream->object_table, LONG2PTR(key=PTR2LONG(object)), object);      if ((length = objc_write_register_common (stream, key)))	return __objc_write_object (stream, object);      return length;    }}#ifdef __alpha__extern int atoi (const char*);extern size_t strlen(const char*);extern size_t strcpy(char*, const char*);#endif__inline__ int__objc_write_class (struct objc_typed_stream* stream, struct objc_class* class){  __objc_write_extension (stream, _BX_CLASS);  objc_write_string_atomic(stream, (char*)class->name,			   strlen((char*)class->name));  return objc_write_unsigned_long (stream, class->version);}static int objc_write_class (struct objc_typed_stream* stream,			 struct objc_class* class){  unsigned long key;  if ((key = PTR2LONG(hash_value_for_key (stream->stream_table, class))))    return objc_write_use_common (stream, key);  else    {      int length;      hash_add (&stream->stream_table, LONG2PTR(key=PTR2LONG(class)), class);      if ((length = objc_write_register_common (stream, key)))	return __objc_write_class (stream, class);      return length;    }}__inline__ int __objc_write_selector (struct objc_typed_stream* stream, SEL selector){  const char* sel_name;  __objc_write_extension (stream, _BX_SEL);  /* to handle NULL selectors */  if ((SEL)0 == selector)    return objc_write_string (stream, "", 0);  sel_name = sel_get_name (selector);  return objc_write_string (stream, sel_name, strlen ((char*)sel_name));}int objc_write_selector (struct objc_typed_stream* stream, SEL selector){  const char* sel_name;  unsigned long key;  /* to handle NULL selectors */  if ((SEL)0 == selector)    return __objc_write_selector (stream, selector);  sel_name = sel_get_name (selector);  if ((key = PTR2LONG(hash_value_for_key (stream->stream_table, sel_name))))    return objc_write_use_common (stream, key);  else    {      int length;      hash_add (&stream->stream_table, 		LONG2PTR(key=PTR2LONG(sel_name)), (char*)sel_name);      if ((length = objc_write_register_common (stream, key)))	return __objc_write_selector (stream, selector);      return length;    }}/*** Read operations */__inline__ intobjc_read_char (struct objc_typed_stream* stream, char* val){  unsigned char buf;  int len;  len = (*stream->read)(stream->physical, &buf, 1);  if (len != 0)    {      if ((buf & _B_CODE) == _B_SINT)	(*val) = (buf & _B_VALUE);      else if ((buf & _B_NUMBER) == 1)	{	  len = (*stream->read)(stream->physical, val, 1);	  if (buf&_B_SIGN)	    (*val) = -1*(*val);	}      else	objc_error(nil, OBJC_ERR_BAD_DATA,		   "expected 8bit signed int, got %dbit int",		   (int)(buf&_B_NUMBER)*8);    }  return len;}__inline__ intobjc_read_unsigned_char (struct objc_typed_stream* stream, unsigned char* val){  unsigned char buf;  int len;  if ((len = (*stream->read)(stream->physical, &buf, 1)))    {      if ((buf & _B_CODE) == _B_SINT)	(*val) = (buf & _B_VALUE);      else if ((buf & _B_NUMBER) == 1)	len = (*stream->read)(stream->physical, val, 1);      else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲a一区二区| 91在线你懂得| 亚洲风情在线资源站| 伊人婷婷欧美激情| 亚洲综合一区在线| 亚洲图片一区二区| 美腿丝袜在线亚洲一区| 精品亚洲成a人| 国产精品一区在线观看乱码| 国产精品伊人色| 99久久夜色精品国产网站| 9i看片成人免费高清| 色8久久人人97超碰香蕉987| 欧美亚洲一区二区在线观看| 欧美日韩成人激情| 精品国产一二三| 亚洲欧洲成人自拍| 亚洲国产日韩一区二区| 黄页网站大全一区二区| av亚洲精华国产精华精| 欧美午夜精品一区二区蜜桃| 日韩三级视频中文字幕| 日本一区二区三区国色天香| 亚洲视频一二三区| 麻豆专区一区二区三区四区五区| 国产麻豆视频精品| 欧美影院一区二区三区| 欧美成人精品二区三区99精品| 国产精品色呦呦| 肉丝袜脚交视频一区二区| 国产成人免费av在线| 日本久久电影网| 国产日韩欧美精品电影三级在线| 一区二区三区中文字幕| 另类调教123区| 91行情网站电视在线观看高清版| 精品国产乱码久久久久久闺蜜| 亚洲欧美一区二区三区孕妇| 久久精品99国产精品| 91久久线看在观草草青青| 国产亚洲自拍一区| 午夜精品久久一牛影视| 99re这里只有精品首页| 久久久久亚洲综合| 天堂一区二区在线| 色婷婷综合久久久中文一区二区| 久久综合色婷婷| 喷白浆一区二区| 欧美日韩一区视频| 亚洲婷婷在线视频| 大美女一区二区三区| 欧美大片日本大片免费观看| 亚洲精品美腿丝袜| 不卡在线观看av| 国产欧美日韩在线| 国内外精品视频| 日韩美女主播在线视频一区二区三区| 亚洲视频中文字幕| 9i在线看片成人免费| 欧美国产成人在线| 岛国一区二区在线观看| 久久亚洲综合色| 国产在线不卡视频| 欧美成人精品福利| 黄页网站大全一区二区| 精品国产乱码久久久久久久久| 日韩高清在线不卡| 7777女厕盗摄久久久| 日产国产高清一区二区三区 | 国产在线播精品第三| 欧美日韩黄色一区二区| 午夜欧美在线一二页| 欧美日韩黄色一区二区| 日韩激情中文字幕| 日韩欧美中文一区二区| 奇米色一区二区三区四区| 日韩免费一区二区| 久久丁香综合五月国产三级网站| 欧美一级xxx| 国产一区二区视频在线播放| 久久亚洲捆绑美女| 成人美女在线视频| 亚洲青青青在线视频| 在线免费观看一区| 日本欧美一区二区三区| 精品美女一区二区| 国产精品影视天天线| 国产精品无码永久免费888| 97久久久精品综合88久久| 亚洲免费观看高清在线观看| 欧美日韩在线综合| 精品影视av免费| 国产精品久久久久久福利一牛影视 | 亚洲国产一区视频| 欧美大尺度电影在线| 国产精品亚洲第一区在线暖暖韩国| 国产性天天综合网| 色婷婷亚洲婷婷| 久久国产三级精品| 国产精品美女久久久久久| 91美女福利视频| 久久福利资源站| 亚洲欧洲国产专区| 精品免费视频一区二区| 99久久精品情趣| 蜜桃久久久久久久| 亚洲视频一二三区| 精品日韩av一区二区| 97se亚洲国产综合自在线观| 人人狠狠综合久久亚洲| 中文字幕亚洲电影| 亚洲精品在线网站| 色悠悠久久综合| 不卡一卡二卡三乱码免费网站| 亚洲免费资源在线播放| 精品久久人人做人人爱| 在线观看免费亚洲| 粉嫩av一区二区三区| 日本亚洲免费观看| 一区av在线播放| 中文字幕欧美区| 欧美一区二区三区人| 色婷婷综合久久久久中文一区二区 | 在线播放亚洲一区| 波多野洁衣一区| 久久国产精品99久久人人澡| 亚洲精品久久7777| 国产精品污www在线观看| 日韩午夜激情av| 欧美日韩国产bt| 91免费在线播放| 丁香婷婷综合激情五月色| 免费亚洲电影在线| 无码av免费一区二区三区试看 | 亚洲国产日韩精品| 日韩一区有码在线| 国产精品麻豆网站| 欧美精品一区二区三区一线天视频| 91成人免费在线视频| 色婷婷亚洲精品| 91蝌蚪国产九色| 成人黄色电影在线| 高清不卡在线观看| 国产成人在线视频网址| 国产大陆亚洲精品国产| 国产一区二区成人久久免费影院| 午夜精品福利一区二区三区av| 一区二区三区四区精品在线视频| 国产精品久久久久精k8| 中文字幕视频一区二区三区久| 国产欧美日韩另类视频免费观看| 久久久久高清精品| 久久久久久久久久看片| 国产调教视频一区| 国产婷婷一区二区| 日韩理论片网站| 亚洲狼人国产精品| 亚洲高清免费观看高清完整版在线观看| 亚洲视频一二三| 亚洲一区二区欧美日韩| 午夜亚洲国产au精品一区二区| 亚洲一卡二卡三卡四卡五卡| 三级不卡在线观看| 国产最新精品免费| 国产乱码精品一品二品| 91同城在线观看| 欧美日韩一区高清| 日韩欧美国产高清| 中文欧美字幕免费| 亚洲国产精品综合小说图片区| 婷婷久久综合九色国产成人| 美国三级日本三级久久99| 成人精品一区二区三区中文字幕 | 亚洲一级电影视频| 久久99最新地址| 91麻豆免费在线观看| 欧美精品丝袜中出| 国产欧美一区二区精品性色超碰| 国产精品久久久久毛片软件| 亚洲韩国精品一区| 国产精品66部| 欧美日韩国产综合一区二区 | 精品在线免费视频| 9l国产精品久久久久麻豆| 在线成人免费视频| 国产女同性恋一区二区| 亚洲综合在线视频| 国产在线精品免费| 欧美日韩亚洲国产综合| 精品99999| 亚洲va天堂va国产va久| 色呦呦国产精品| 国产在线乱码一区二区三区| 粉嫩av一区二区三区| 欧美美女直播网站| 国产婷婷精品av在线| 亚洲1区2区3区4区| 99精品国产一区二区三区不卡| 制服丝袜激情欧洲亚洲| 亚洲人成网站影音先锋播放|