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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cplus-dem.c

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? C
?? 第 1 頁 / 共 5 頁
字號:
    if (mangled[0] == '_' || mangled[0] == '<')    goto Suppress;    p = strstr (mangled, "___");  if (p == NULL)    len0 = strlen (mangled);  else    {      if (p[3] == 'X')	{	  len0 = p - mangled;	  changed = 1;	}      else	goto Suppress;    }    /* Make demangled big enough for possible expansion by operator name.  */  grow_vect (&demangled,	     &demangled_size,  2 * len0 + 1,	     sizeof (char));    if (ISDIGIT ((unsigned char) mangled[len0 - 1])) {    for (i = len0 - 2; i >= 0 && ISDIGIT ((unsigned char) mangled[i]); i -= 1)      ;    if (i > 1 && mangled[i] == '_' && mangled[i - 1] == '_')      {	len0 = i - 1;	changed = 1;      }    else if (mangled[i] == '$')      {	len0 = i;	changed = 1;      }  }    for (i = 0, j = 0; i < len0 && ! ISALPHA ((unsigned char)mangled[i]);       i += 1, j += 1)    demangled[j] = mangled[i];    while (i < len0)    {      if (i < len0 - 2 && mangled[i] == '_' && mangled[i + 1] == '_')	{	  demangled[j] = '.';	  changed = 1;	  i += 2; j += 1;	}      else	{	  demangled[j] = mangled[i];	  i += 1;  j += 1;	}    }  demangled[j] = '\000';    for (i = 0; demangled[i] != '\0'; i += 1)    if (ISUPPER ((unsigned char)demangled[i]) || demangled[i] == ' ')      goto Suppress;  if (! changed)    return NULL;  else    return demangled;   Suppress:  grow_vect (&demangled,	     &demangled_size,  strlen (mangled) + 3,	     sizeof (char));  if (mangled[0] == '<')     strcpy (demangled, mangled);  else    sprintf (demangled, "<%s>", mangled);  return demangled;}/* This function performs most of what cplus_demangle use to do, but   to be able to demangle a name with a B, K or n code, we need to   have a longer term memory of what types have been seen. The original   now initializes and cleans up the squangle code info, while internal   calls go directly to this routine to avoid resetting that info. */static char *internal_cplus_demangle (struct work_stuff *work, const char *mangled){  string decl;  int success = 0;  char *demangled = NULL;  int s1, s2, s3, s4;  s1 = work->constructor;  s2 = work->destructor;  s3 = work->static_type;  s4 = work->type_quals;  work->constructor = work->destructor = 0;  work->type_quals = TYPE_UNQUALIFIED;  work->dllimported = 0;  if ((mangled != NULL) && (*mangled != '\0'))    {      string_init (&decl);      /* First check to see if gnu style demangling is active and if the	 string to be demangled contains a CPLUS_MARKER.  If so, attempt to	 recognize one of the gnu special forms rather than looking for a	 standard prefix.  In particular, don't worry about whether there	 is a "__" string in the mangled string.  Consider "_$_5__foo" for	 example.  */      if ((AUTO_DEMANGLING || GNU_DEMANGLING))	{	  success = gnu_special (work, &mangled, &decl);	}      if (!success)	{	  success = demangle_prefix (work, &mangled, &decl);	}      if (success && (*mangled != '\0'))	{	  success = demangle_signature (work, &mangled, &decl);	}      if (work->constructor == 2)        {          string_prepend (&decl, "global constructors keyed to ");          work->constructor = 0;        }      else if (work->destructor == 2)        {          string_prepend (&decl, "global destructors keyed to ");          work->destructor = 0;        }      else if (work->dllimported == 1)        {          string_prepend (&decl, "import stub for ");          work->dllimported = 0;        }      demangled = mop_up (work, &decl, success);    }  work->constructor = s1;  work->destructor = s2;  work->static_type = s3;  work->type_quals = s4;  return demangled;}/* Clear out and squangling related storage */static voidsquangle_mop_up (struct work_stuff *work){  /* clean up the B and K type mangling types. */  forget_B_and_K_types (work);  if (work -> btypevec != NULL)    {      free ((char *) work -> btypevec);    }  if (work -> ktypevec != NULL)    {      free ((char *) work -> ktypevec);    }}/* Copy the work state and storage.  */static voidwork_stuff_copy_to_from (struct work_stuff *to, struct work_stuff *from){  int i;  delete_work_stuff (to);  /* Shallow-copy scalars.  */  memcpy (to, from, sizeof (*to));  /* Deep-copy dynamic storage.  */  if (from->typevec_size)    to->typevec = XNEWVEC (char *, from->typevec_size);  for (i = 0; i < from->ntypes; i++)    {      int len = strlen (from->typevec[i]) + 1;      to->typevec[i] = XNEWVEC (char, len);      memcpy (to->typevec[i], from->typevec[i], len);    }  if (from->ksize)    to->ktypevec = XNEWVEC (char *, from->ksize);  for (i = 0; i < from->numk; i++)    {      int len = strlen (from->ktypevec[i]) + 1;      to->ktypevec[i] = XNEWVEC (char, len);      memcpy (to->ktypevec[i], from->ktypevec[i], len);    }  if (from->bsize)    to->btypevec = XNEWVEC (char *, from->bsize);  for (i = 0; i < from->numb; i++)    {      int len = strlen (from->btypevec[i]) + 1;      to->btypevec[i] = XNEWVEC (char , len);      memcpy (to->btypevec[i], from->btypevec[i], len);    }  if (from->ntmpl_args)    to->tmpl_argvec = XNEWVEC (char *, from->ntmpl_args);  for (i = 0; i < from->ntmpl_args; i++)    {      int len = strlen (from->tmpl_argvec[i]) + 1;      to->tmpl_argvec[i] = XNEWVEC (char, len);      memcpy (to->tmpl_argvec[i], from->tmpl_argvec[i], len);    }  if (from->previous_argument)    {      to->previous_argument = XNEW (string);      string_init (to->previous_argument);      string_appends (to->previous_argument, from->previous_argument);    }}/* Delete dynamic stuff in work_stuff that is not to be re-used.  */static voiddelete_non_B_K_work_stuff (struct work_stuff *work){  /* Discard the remembered types, if any.  */  forget_types (work);  if (work -> typevec != NULL)    {      free ((char *) work -> typevec);      work -> typevec = NULL;      work -> typevec_size = 0;    }  if (work->tmpl_argvec)    {      int i;      for (i = 0; i < work->ntmpl_args; i++)	if (work->tmpl_argvec[i])	  free ((char*) work->tmpl_argvec[i]);      free ((char*) work->tmpl_argvec);      work->tmpl_argvec = NULL;    }  if (work->previous_argument)    {      string_delete (work->previous_argument);      free ((char*) work->previous_argument);      work->previous_argument = NULL;    }}/* Delete all dynamic storage in work_stuff.  */static voiddelete_work_stuff (struct work_stuff *work){  delete_non_B_K_work_stuff (work);  squangle_mop_up (work);}/* Clear out any mangled storage */static char *mop_up (struct work_stuff *work, string *declp, int success){  char *demangled = NULL;  delete_non_B_K_work_stuff (work);  /* If demangling was successful, ensure that the demangled string is null     terminated and return it.  Otherwise, free the demangling decl.  */  if (!success)    {      string_delete (declp);    }  else    {      string_appendn (declp, "", 1);      demangled = declp->b;    }  return (demangled);}/*LOCAL FUNCTION	demangle_signature -- demangle the signature part of a mangled nameSYNOPSIS	static int	demangle_signature (struct work_stuff *work, const char **mangled,			    string *declp);DESCRIPTION	Consume and demangle the signature portion of the mangled name.	DECLP is the string where demangled output is being built.  At	entry it contains the demangled root name from the mangled name	prefix.  I.E. either a demangled operator name or the root function	name.  In some special cases, it may contain nothing.	*MANGLED points to the current unconsumed location in the mangled	name.  As tokens are consumed and demangling is performed, the	pointer is updated to continuously point at the next token to	be consumed.	Demangling GNU style mangled names is nasty because there is no	explicit token that marks the start of the outermost function	argument list.  */static intdemangle_signature (struct work_stuff *work,                    const char **mangled, string *declp){  int success = 1;  int func_done = 0;  int expect_func = 0;  int expect_return_type = 0;  const char *oldmangled = NULL;  string trawname;  string tname;  while (success && (**mangled != '\0'))    {      switch (**mangled)	{	case 'Q':	  oldmangled = *mangled;	  success = demangle_qualified (work, mangled, declp, 1, 0);	  if (success)	    remember_type (work, oldmangled, *mangled - oldmangled);	  if (AUTO_DEMANGLING || GNU_DEMANGLING)	    expect_func = 1;	  oldmangled = NULL;	  break;        case 'K':	  oldmangled = *mangled;	  success = demangle_qualified (work, mangled, declp, 1, 0);	  if (AUTO_DEMANGLING || GNU_DEMANGLING)	    {	      expect_func = 1;	    }	  oldmangled = NULL;	  break;	case 'S':	  /* Static member function */	  if (oldmangled == NULL)	    {	      oldmangled = *mangled;	    }	  (*mangled)++;	  work -> static_type = 1;	  break;	case 'C':	case 'V':	case 'u':	  work->type_quals |= code_for_qualifier (**mangled);	  /* a qualified member function */	  if (oldmangled == NULL)	    oldmangled = *mangled;	  (*mangled)++;	  break;	case 'L':	  /* Local class name follows after "Lnnn_" */	  if (HP_DEMANGLING)	    {	      while (**mangled && (**mangled != '_'))		(*mangled)++;	      if (!**mangled)		success = 0;	      else		(*mangled)++;	    }	  else	    success = 0;	  break;	case '0': case '1': case '2': case '3': case '4':	case '5': case '6': case '7': case '8': case '9':	  if (oldmangled == NULL)	    {	      oldmangled = *mangled;	    }          work->temp_start = -1; /* uppermost call to demangle_class */	  success = demangle_class (work, mangled, declp);	  if (success)	    {	      remember_type (work, oldmangled, *mangled - oldmangled);	    }	  if (AUTO_DEMANGLING || GNU_DEMANGLING || EDG_DEMANGLING)	    {              /* EDG and others will have the "F", so we let the loop cycle                 if we are looking at one. */              if (**mangled != 'F')                 expect_func = 1;	    }	  oldmangled = NULL;	  break;	case 'B':	  {	    string s;	    success = do_type (work, mangled, &s);	    if (success)	      {		string_append (&s, SCOPE_STRING (work));		string_prepends (declp, &s);		string_delete (&s);	      }	    oldmangled = NULL;	    expect_func = 1;	  }	  break;	case 'F':	  /* Function */	  /* ARM/HP style demangling includes a specific 'F' character after	     the class name.  For GNU style, it is just implied.  So we can	     safely just consume any 'F' at this point and be compatible	     with either style.  */	  oldmangled = NULL;	  func_done = 1;	  (*mangled)++;	  /* For lucid/ARM/HP style we have to forget any types we might	     have remembered up to this point, since they were not argument	     types.  GNU style considers all types seen as available for	     back references.  See comment in demangle_args() */	  if (LUCID_DEMANGLING || ARM_DEMANGLING || HP_DEMANGLING || EDG_DEMANGLING)	    {	      forget_types (work);	    }	  success = demangle_args (work, mangled, declp);	  /* After picking off the function args, we expect to either	     find the function return type (preceded by an '_') or the	     end of the string. */	  if (success && (AUTO_DEMANGLING || EDG_DEMANGLING) && **mangled == '_')	    {	      ++(*mangled);              /* At this level, we do not care about the return type. */              success = do_type (work, mangled, &tname);              string_delete (&tname);            }	  break;	case 't':	  /* G++ Template */	  string_init(&trawname);	  string_init(&tname);	  if (oldmangled == NULL)	    {	      oldmangled = *mangled;	    }	  success = demangle_template (work, mangled, &tname,				       &trawname, 1, 1);	  if (success)	    {	      remember_type (work, oldmangled, *mangled - oldmangled);	    }	  string_append (&tname, SCOPE_STRING (work));	  string_prepends(declp, &tname);	  if (work -> destructor & 1)	    {	      string_prepend (&trawname, "~");

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色综合网| 欧美在线|欧美| 亚洲精品一二三四区| 色偷偷成人一区二区三区91| 亚洲国产日韩精品| 久久亚洲欧美国产精品乐播| 91麻豆产精品久久久久久| 亚洲最大成人网4388xx| 亚洲精品一区二区三区福利| 成人sese在线| 奇米色一区二区三区四区| 国产精品伦理一区二区| 欧美色网站导航| 亚洲成人手机在线| 日本一区二区免费在线观看视频| 欧美日韩五月天| 国产精品一二三四| 偷拍一区二区三区| 18成人在线观看| 欧美xxxxx牲另类人与| 成人av影院在线| 日韩精品成人一区二区在线| 亚洲国产成人在线| 日韩视频中午一区| 色妹子一区二区| 国产成人精品一区二区三区网站观看 | 久久久精品tv| 91精品久久久久久久99蜜桃| 99久久久国产精品免费蜜臀| 九九视频精品免费| 亚洲午夜影视影院在线观看| 欧美国产欧美综合| 精品免费99久久| 欧美精品粉嫩高潮一区二区| 91蝌蚪porny九色| 高清久久久久久| 麻豆精品视频在线观看视频| 亚洲欧美视频在线观看视频| 久久久91精品国产一区二区三区| 欧美高清性hdvideosex| 91麻豆免费看| 成人美女在线观看| 国产剧情一区二区三区| 亚洲精品国产精品乱码不99| 日本一区二区三区高清不卡| 精品日韩在线观看| 日韩欧美在线综合网| 欧美久久久久久蜜桃| 在线一区二区三区四区| 国产大片一区二区| 美女一区二区三区在线观看| 日本不卡的三区四区五区| 亚洲国产成人91porn| 亚洲一区影音先锋| 国产精品视频一区二区三区不卡| 久久久久久久久久电影| 2020国产精品久久精品美国| 日韩欧美国产系列| 欧美一区二区性放荡片| 欧美一级艳片视频免费观看| 欧美日韩mp4| 欧美网站一区二区| 欧美亚洲一区三区| 国产风韵犹存在线视精品| 国产成人av福利| 国产在线日韩欧美| 国产高清不卡二三区| 成人av在线影院| www.久久精品| 国产精品综合二区| 成人app在线观看| 97se狠狠狠综合亚洲狠狠| 成人免费视频app| 91视频在线观看| 91福利在线导航| 欧美一区二区三区日韩| 精品国产sm最大网站免费看| 精品久久久久久久久久久院品网 | 在线观看不卡视频| 欧美性生活大片视频| 色噜噜久久综合| 欧美另类z0zxhd电影| 日韩色视频在线观看| 2020国产精品久久精品美国| 中文字幕免费不卡| 一区二区三区中文在线观看| 午夜影视日本亚洲欧洲精品| 亚洲国产精品一区二区www| 天堂av在线一区| 国产一区二区精品久久91| 99国产欧美久久久精品| 欧美三级电影在线观看| 欧美xxx久久| 一区二区中文字幕在线| 亚洲一区精品在线| 国内精品嫩模私拍在线| 99久久国产综合色|国产精品| 成人sese在线| 5858s免费视频成人| 欧美韩国日本不卡| 夜夜操天天操亚洲| 极品少妇一区二区三区精品视频| 成人免费黄色大片| 欧美性受xxxx| 国产欧美综合色| 天天综合色天天| 91亚洲精品久久久蜜桃| 欧美一级高清大全免费观看| 亚洲国产电影在线观看| 五月婷婷综合网| 激情综合五月婷婷| 在线看日韩精品电影| 精品国产精品一区二区夜夜嗨| 亚洲欧美日韩成人高清在线一区| 日韩二区在线观看| 大白屁股一区二区视频| 欧美放荡的少妇| 中文字幕一区二区日韩精品绯色| 青青草国产精品亚洲专区无| 91在线视频18| 久久久久青草大香线综合精品| 亚洲一区二区三区四区在线观看 | 91免费国产视频网站| 国产情人综合久久777777| 日本欧美大码aⅴ在线播放| 欧美性大战xxxxx久久久| 亚洲乱码国产乱码精品精可以看| 成人精品一区二区三区四区 | 亚洲成av人片在线观看无码| 欧美亚洲动漫精品| 亚洲日本在线a| 91小视频在线观看| 亚洲少妇最新在线视频| 成人国产在线观看| 中文字幕一区二区在线播放| 粉嫩高潮美女一区二区三区 | 中日韩av电影| 国产一区二区三区蝌蚪| 欧美精品一区二区三区蜜桃视频| 另类成人小视频在线| 精品女同一区二区| 国精产品一区一区三区mba桃花| xf在线a精品一区二区视频网站| 国产一区二三区好的| 久久免费看少妇高潮| 国产九色精品成人porny| 国产日韩视频一区二区三区| 国产白丝网站精品污在线入口| 国产亚洲精品aa午夜观看| 国产jizzjizz一区二区| 亚洲婷婷综合色高清在线| 在线视频欧美精品| 水野朝阳av一区二区三区| 日韩欧美国产不卡| 国产69精品一区二区亚洲孕妇| 欧美韩国日本综合| 在线观看视频91| 蜜臀av一区二区在线观看 | 精品剧情v国产在线观看在线| 激情另类小说区图片区视频区| 久久综合av免费| av资源网一区| 亚洲成av人在线观看| www国产精品av| 色综合天天综合网天天看片| 亚洲一二三四在线观看| 日韩欧美中文一区二区| 成人黄色电影在线| 亚洲亚洲精品在线观看| 精品日产卡一卡二卡麻豆| 成人免费观看男女羞羞视频| 亚洲一区二区精品久久av| 欧美sm美女调教| 波多野结衣欧美| 日本不卡高清视频| 国产精品美女久久福利网站| 欧美三级在线播放| 国模少妇一区二区三区| 一区二区三区在线不卡| 精品日韩成人av| 欧美综合一区二区| 国产剧情一区二区| 亚洲高清视频的网址| 国产亚洲精品aa午夜观看| 欧美日韩一区成人| 国产高清久久久| 日本不卡在线视频| 中文字幕中文乱码欧美一区二区 | 91在线无精精品入口| 精品一区二区三区视频| 亚洲欧美日韩国产综合| 久久影院视频免费| 欧美三级韩国三级日本三斤 | 99久久精品免费| 久久se精品一区精品二区| 亚洲精品伦理在线| 久久久久国产精品麻豆ai换脸| 欧美人妖巨大在线| 99re这里只有精品首页| 国产真实乱对白精彩久久|