亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91麻豆国产在线观看| 亚洲国产成人av| 欧美性极品少妇| 国产另类ts人妖一区二区| 亚洲婷婷在线视频| 26uuu精品一区二区在线观看| 99久久精品一区| 韩日av一区二区| 奇米色777欧美一区二区| 亚洲三级电影网站| 国产欧美综合色| 日韩欧美一级精品久久| 一本久久综合亚洲鲁鲁五月天 | 91精品国产综合久久国产大片 | 成人污污视频在线观看| 婷婷久久综合九色国产成人 | 日韩午夜电影在线观看| 在线观看成人小视频| k8久久久一区二区三区| 国产精品99久久久久久久女警 | 欧美精品一区二区三区视频| 色女孩综合影院| 国产酒店精品激情| 久久99精品久久久久久动态图| 亚洲人成网站色在线观看| 亚洲国产高清aⅴ视频| 精品国产凹凸成av人网站| 欧美日本一道本| 色综合中文字幕国产 | 久久久久国色av免费看影院| 欧美午夜精品久久久久久孕妇| 91色|porny| 国产一区二区按摩在线观看| 极品少妇xxxx精品少妇| 日韩成人一级大片| 五月婷婷激情综合| 一区二区三区毛片| 琪琪久久久久日韩精品| 亚洲最新视频在线播放| 国产性做久久久久久| 久久亚洲一区二区三区明星换脸| 欧美一区二区三区成人| 日韩三级视频中文字幕| 欧美在线综合视频| 在线观看国产一区二区| 色噜噜偷拍精品综合在线| 欧美在线影院一区二区| 99re这里只有精品首页| 亚洲国产精品影院| 亚洲成人综合网站| 天堂va蜜桃一区二区三区| 午夜精品福利一区二区三区av | 午夜在线电影亚洲一区| 亚洲一区二区视频| 午夜不卡av在线| 人人狠狠综合久久亚洲| 香蕉久久一区二区不卡无毒影院| 懂色av中文字幕一区二区三区| 国产在线播放一区三区四| 国产suv精品一区二区三区| 国产精品自拍网站| 91在线视频18| 色狠狠av一区二区三区| 欧美一级爆毛片| 欧美电影免费观看高清完整版在线 | 欧美日韩中文精品| 在线观看91精品国产入口| 日韩一区国产二区欧美三区| 欧美成人三级电影在线| 最新中文字幕一区二区三区| 亚洲精选在线视频| 美女看a上一区| 激情都市一区二区| 91在线观看视频| 337p亚洲精品色噜噜狠狠| 26uuu精品一区二区三区四区在线| 国产午夜精品一区二区| 亚洲精品视频免费看| 日韩在线卡一卡二| 极品美女销魂一区二区三区免费| 国产黄色91视频| 成人永久免费视频| 欧美日本免费一区二区三区| 欧美精选一区二区| 欧美激情一区二区三区四区| 亚洲最色的网站| 国产91在线|亚洲| 欧美亚洲禁片免费| 中文字幕欧美日韩一区| 亚洲国产美女搞黄色| 国产成人8x视频一区二区| 色av成人天堂桃色av| 国产偷国产偷精品高清尤物| 亚洲精选视频在线| 国产一区 二区 三区一级| 日本精品裸体写真集在线观看 | 国产精品亚洲一区二区三区在线 | 欧美一级理论性理论a| 久久久久久99久久久精品网站| 夜夜精品视频一区二区| 日韩高清在线电影| 不卡的av在线| 日韩午夜三级在线| 亚洲精品国产无天堂网2021| 精品一区二区三区在线视频| 91一区一区三区| 久久一区二区三区四区| 亚洲444eee在线观看| 99精品视频一区二区三区| 91精品综合久久久久久| 国产精品高清亚洲| 裸体歌舞表演一区二区| 在线看国产一区二区| 久久久国产精品不卡| 无码av中文一区二区三区桃花岛| 日韩高清在线不卡| 在线观看亚洲精品| 欧美国产激情二区三区| 国产麻豆视频一区二区| 日韩欧美一级二级三级久久久| 天天射综合影视| 欧亚洲嫩模精品一区三区| 亚洲丝袜另类动漫二区| 久久av中文字幕片| 日本欧美韩国一区三区| 亚洲免费观看在线观看| 91精品在线免费| 激情另类小说区图片区视频区| 欧美日本国产视频| 日韩成人一区二区三区在线观看| 国产高清不卡二三区| 亚洲精品免费电影| 日韩一区二区三区在线视频| 日韩免费观看高清完整版在线观看| 久久伊人蜜桃av一区二区| 成人h版在线观看| 国精品**一区二区三区在线蜜桃| 日韩美一区二区三区| 国产精品1区2区| 亚洲日本欧美天堂| 欧美日韩一区二区三区四区五区| 亚洲国产精品黑人久久久| 精品一区二区国语对白| 日韩视频不卡中文| 日本亚洲电影天堂| 精品噜噜噜噜久久久久久久久试看| 五月综合激情网| 欧美一区二区女人| 人妖欧美一区二区| 久久精品视频一区二区| 国产麻豆精品视频| 国产精品欧美一区二区三区| 成人97人人超碰人人99| 亚洲欧美aⅴ...| 在线中文字幕一区| 日本aⅴ免费视频一区二区三区 | 91视频在线观看| 亚洲色图.com| www.成人网.com| 亚洲精品高清在线| 在线免费观看一区| 亚洲小少妇裸体bbw| 欧美成人精品二区三区99精品| 精品综合久久久久久8888| 久久久精品免费免费| 99这里只有久久精品视频| 亚洲国产日韩综合久久精品| 欧美区视频在线观看| 国产在线视频不卡二| 国产精品视频一二| 欧美日本在线播放| 国产中文字幕一区| 一区二区三区欧美在线观看| 欧美日韩亚州综合| 国产乱码精品一区二区三区五月婷 | 老司机午夜精品| 亚洲精品一区二区三区四区高清| 国产成人av福利| 亚洲成人在线观看视频| 欧美日产在线观看| 不卡的电视剧免费网站有什么| 亚洲欧洲在线观看av| 日韩欧美亚洲另类制服综合在线| 亚洲欧美另类久久久精品2019| 91精品中文字幕一区二区三区| 日本欧美大码aⅴ在线播放| 精品福利一二区| 成人激情校园春色| 日日夜夜精品免费视频| 中文字幕永久在线不卡| 91精品国产品国语在线不卡 | 欧美性色综合网| 韩国视频一区二区| 国产精品女主播av| 欧美日本一道本| 94-欧美-setu| 精品综合久久久久久8888| 中文字幕人成不卡一区| 久久久久久久久久久黄色| 欧美日韩精品综合在线|