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

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

?? store.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/* *	HT Editor *	store.cc * *	Copyright (C) 1999-2003 Sebastian Biallas (sb@biallas.net) * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License version 2 as *	published by the Free Software Foundation. * *	This program is distributed in the hope that it will be useful, *	but WITHOUT ANY WARRANTY; without even the implied warranty of *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *	GNU General Public License for more details. * *	You should have received a copy of the GNU General Public License *	along with this program; if not, write to the Free Software *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <cerrno>#include <cstring>#include "atom.h"#include "htdebug.h"#include "endianess.h"#include "language.h"#include "snprintf.h"#include "store.h"#include "strtools.h"#include "tools.h"static char hexchars[] = "0123456789abcdef";char oidchar(ObjectID oID, int byte){	unsigned char c = (oID >> (byte*8)) & 0xff;	if ((c<32) || (c>0x7f)) c = '?';	return c;}void putIDComment(ObjectStream &o, uint32 id){	char buf[64];	char id_str[4];	id_str[3] = id&0xff;	id_str[2] = (id>>8)&0xff;	id_str[1] = (id>>16)&0xff;	id_str[0] = (id>>24)&0xff;	escape_special(buf, sizeof buf, id_str, 4);	o.putComment(buf);}ObjectNotRegisteredException::ObjectNotRegisteredException(ObjectID aID)	: MsgfException("Object %x/%c%c%c-%x not registered.", aID,	  oidchar(aID, 3), oidchar(aID, 2), oidchar(aID, 1), aID & 0xff){}/* *	ObjectStreamInter */ ObjectStreamInter::ObjectStreamInter(Stream *s, bool own_s) : ObjectStream(s, own_s){}Object *ObjectStreamInter::getObjectInternal(const char *name, ObjectID id){	if (id == OBJID_INVALID) {		GET_INT32X(*this, id);		if (!id) {			return NULL;		}	}	object_builder build = (object_builder)getAtomValue(id);	if (!build) throw ObjectNotRegisteredException(id);	Object *o = build();	o->load(*this);	return o;}void	ObjectStreamInter::putObject(const Object *object, const char *name, ObjectID id){	if (!object) {		if (id == OBJID_INVALID) {			PUTX_INT32X(*this, 0, "id");			return;		} else {			throw IllegalArgumentException(HERE);		}	}	if (id == OBJID_INVALID) {		id = object->getObjectID();		putIDComment(*this, id);		PUTX_INT32X(*this, id, "id");	}	if (!getAtomValue(id)) {		throw ObjectNotRegisteredException(id);	}	object->store(*this);}/* *	ObjectStreamBin */ ObjectStreamBin::ObjectStreamBin(Stream *s, bool own_s) : ObjectStreamInter(s, own_s){} void ObjectStreamBin::getBinary(void *buf, uint size, const char *desc){	mStream->readx(buf, size);}bool ObjectStreamBin::getBool(const char *desc){	bool b;	mStream->readx(&b, 1);	return b;}uint64 ObjectStreamBin::getInt(uint size, const char *desc){	assert(size <= 8);	byte neta[8];	mStream->readx(&neta, size);	return createHostInt64(neta, size, big_endian);}char *ObjectStreamBin::getString(const char *desc){	return mStream->readstrz();}byte *ObjectStreamBin::getLenString(int &length, const char *desc){	byte b;	mStream->readx(&b, 1);	switch (b) {    	case 0xfe: {		byte neta[2];		mStream->readx(&neta, 2);		length = createHostInt(neta, 2, big_endian);		break;	}	case 0xff: {		byte neta[4];		mStream->readx(&neta, 4);		length = createHostInt(neta, 4, big_endian);		break;	}	default:		length = b;		break;	}	if (length==0) return NULL;	byte *p = ht_malloc(length);	mStream->readx(p, length);	return p;}void ObjectStreamBin::putBinary(const void *mem, uint size, const char *desc){	mStream->writex(mem, size);}void ObjectStreamBin::putBool(bool b, const char *desc){	b = (b) ? 1 : 0;	mStream->writex(&b, 1);}void ObjectStreamBin::putCommentf(const char *comment_format, ...){	// NOP}void ObjectStreamBin::putComment(const char *comment){	// NOP}void ObjectStreamBin::putInt(uint64 i, uint size, const char *desc, uint int_fmt_hint){	assert(size <= 8);	byte neta[8];	createForeignInt64(neta, i, size, big_endian);	mStream->writex(neta, size);}void ObjectStreamBin::putSeparator(){	// NOP}void ObjectStreamBin::putString(const char *string, const char *desc){	mStream->writestrz(string);}void ObjectStreamBin::putLenString(const byte *string, int len, const char *desc){	byte bLen;	if (len < 0xfe) {		bLen = len;		mStream->writex(&bLen, 1);	} else if (len <= 0xffff) {		byte neta[2];		createForeignInt(neta, len, 2, big_endian);		bLen = 0xfe;		mStream->writex(&bLen, 1);		mStream->writex(neta, 2);	} else {		byte neta[4];		createForeignInt(neta, len, 4, big_endian);		bLen = 0xff;		mStream->writex(&bLen, 1);		mStream->writex(neta, 4);	}	mStream->writex(string, len);}void	ObjectStreamBin::corrupt(){	throw MsgfException("corrupt file");}/* *	ObjectStreamText */ ObjectStreamText::ObjectStreamText(Stream *s, bool own_s) : ObjectStreamInter(s, own_s){	indent = 0;	cur = ' ';	// must be initialized to a whitespace char	line = 1;	errorline = 0;}void	ObjectStreamText::getBinary(void *buf, uint size, const char *desc){	readDesc(desc);	expect('=');	expect('[');	byte *pp=(byte *)buf;	for (uint i=0; i<size; i++) {		skipWhite();		int bb;		if ((bb = hexdigit(cur))==-1) setSyntaxError();		int b = bb*16;		readChar();		if ((bb = hexdigit(cur))==-1) setSyntaxError();		b += bb;		*pp++=b;		readChar();	}	expect(']');}bool ObjectStreamText::getBool(const char *desc){	readDesc(desc);	expect('=');	skipWhite();	if (cur=='f') {		readDesc("false");		return false;	} else {		readDesc("true");		return true;	}}uint64 ObjectStreamText::getInt(uint size, const char *desc){	readDesc(desc);	expect('=');	skipWhite();	if (mapchar[(byte)cur]!='0') setSyntaxError();	char str[40];	char *s=str;	do {		*s++ = cur;		if (s-str >= 39) setSyntaxError();		readChar();	} while (mapchar[(byte)cur]=='0' || mapchar[(byte)cur]=='A');	*s=0;	uint64 a;	if (!str2int(str, a)) setSyntaxError();	return a;}Object *ObjectStreamText::getObjectInternal(const char *name, ObjectID id){	readDesc(name);	expect('=');	expect('{');	Object *o = ObjectStreamInter::getObjectInternal(name, id);	expect('}');	return o;}char *ObjectStreamText::getString(const char *desc){	readDesc(desc);	expect('=');	skipWhite();	if (cur == '"') {		String s;		readChar();		while (cur != '"') {			s += cur;			if (cur == '\\') {				readChar();				s += cur;				cur = 0; // hackish			}			readChar();		}		readChar();		s.unescape();		return s.grabContentChar();	} else {		readDesc("NULL");		return NULL;	}}byte *ObjectStreamText::getLenString(int &len, const char *desc){	readDesc(desc);	expect('=');	skipWhite();	if (cur == '"') {		String s;		readChar();		while (cur != '"') {			s += cur;			if (cur == '\\') {				readChar();				s += cur;				cur = 0; // hackish			}			readChar();		}		readChar();		s.unescape();		len = s.length();		return s.grabContent();	} else {		readDesc("NULL");		return NULL;	}}void ObjectStreamText::putBinary(const void *mem, uint size, const char *desc){	putDesc(desc);	putChar('[');	for (uint i=0; i < size; i++) {		byte a = *((byte *)mem+i);		putChar(hexchars[(a & 0xf0) >> 4]);		putChar(hexchars[(a & 0x0f)]);		if (i+1 < size) putChar(' ');	}	putS("]\n");}void ObjectStreamText::putBool(bool b, const char *desc){	putDesc(desc);	if (b) putS("true"); else putS("false");	putChar('\n');}void ObjectStreamText::putComment(const char *comment){	putIndent();	putS("# ");	putS(comment);	putChar('\n');}void ObjectStreamText::putInt(uint64 i, uint size, const char *desc, uint int_fmt_hint){	putDesc(desc);	char number[40];	switch (int_fmt_hint) {		case OS_FMT_DEC:			ht_snprintf(number, sizeof number, "%qd\n", i);			break;		case OS_FMT_HEX:		default:			ht_snprintf(number, sizeof number, "0x%qx\n", i);			break;	}	putS(number);}void ObjectStreamText::putObject(const Object *object, const char *name, ObjectID id){	putDesc(name);	putS("{\n");	indent++;	ObjectStreamInter::putObject(object, name, id);	indent--;	putIndent();	putS("}\n");}void ObjectStreamText::putSeparator(){	putIndent();	putS("# ------------------------ \n");}void ObjectStreamText::putString(const char *string, const char *desc){	putDesc(desc);	if (string) {		String s(string);		putChar('"');		s.escape("\"", true);		putS(s.contentChar());		putChar('"');	} else {		putS("NULL");	}	putChar('\n');}void ObjectStreamText::putLenString(const byte *string, int len, const char *desc){	putDesc(desc);	if (string) {		int strl=len*4+1;		char *str = ht_malloc(strl);		putChar('"');		escape_special(str, strl, string, len, "\"");		putS(str);		putChar('"');		free(str);	} else {		putS("NULL");	}	putChar('\n');}class TextSyntaxError: public MsgfException {public:	TextSyntaxError(uint line)		: MsgfException("syntax error in line %d", line)	{	}};void	ObjectStreamText::setSyntaxError(){	// FIXME: errorline still usable ?	if (!errorline) {		errorline = line;		throw TextSyntaxError(line);	}}int	ObjectStreamText::getErrorLine(){	return errorline;}void	ObjectStreamText::expect(char c){	skipWhite();	if (cur != c) setSyntaxError();	readChar();}void	ObjectStreamText::skipWhite(){	while (1) {		switch (mapchar[(byte)cur]) {		case '\n':			line++;  // fallthrough		case ' ':			readChar();			break;		case '#':			do {				readChar();			} while (cur != '\n');			break;		default: return;		}	}}char ObjectStreamText::readChar(){	mStream->readx(&cur, 1);	return cur;}void ObjectStreamText::readDesc(const char *desc){	skipWhite();	if (!desc) desc = "data";	while (*desc) {		if (*desc != cur) setSyntaxError();		readChar();		desc++;	}}void ObjectStreamText::putDesc(const char *desc){	putIndent();	putS(desc ? desc : "data");	putChar('=');}void ObjectStreamText::putIndent(){	for(int i=0; i < indent; i++) putChar(' ');}void ObjectStreamText::putChar(char c){	mStream->writex(&c, 1);}void ObjectStreamText::putS(const char *s){	uint len=strlen(s);	if (mStream->write(s, len) != len) setSyntaxError();}void	ObjectStreamText::corrupt(){	errorline = line;	throw MsgfException("corrupt format near line %d", line);}/* *	ObjectStreamNative View:set/getData() methods *	(endian-dependend) */ObjectStreamNative::ObjectStreamNative(Stream *s, bool own_s, bool d): ObjectStream(s, own_s), duplicate(d), allocd(true){}void *ObjectStreamNative::duppa(const void *p, int size){	if (duplicate) {		MemArea *m = new MemArea(p, size, true);		allocd += m;		return m->ptr;	} else {		// FIXME: un-const'ing p		return const_cast<void*>(p);	}}void ObjectStreamNative::getBinary(void *buf, uint size, const char *desc){	void *pp;	mStream->readx(&pp, sizeof pp);	memcpy(buf, pp, size);}bool ObjectStreamNative::getBool(const char *desc){	bool b;	mStream->readx(&b, sizeof b);	return b;}uint64 ObjectStreamNative::getInt(uint size, const char *desc){	switch (size) {	case 1: {		uint8 i;		mStream->readx(&i, size);		return i;	}	case 2: {		uint16 i;		mStream->readx(&i, size);		return i;	}	case 4: {		uint32 i;		mStream->readx(&i, size);		return i;	}	case 8: {		uint64 i;		mStream->readx(&i, size);		return i;	}	}	throw IllegalArgumentException(HERE);}Object *ObjectStreamNative::getObjectInternal(const char *name, ObjectID id){	Object *pp;	mStream->readx(&pp, sizeof pp);	return pp;}char	*ObjectStreamNative::getString(const char *desc){	char *pp;	mStream->readx(&pp, sizeof pp);	return pp;}byte	*ObjectStreamNative::getLenString(int &len, const char *desc){	byte *pp;	mStream->readx(&pp, sizeof pp);	// FIXME?	if (pp) len = strlen((char*)pp); else len = 0;	return pp;}void	ObjectStreamNative::putBinary(const void *mem, uint size, const char *desc){	void *pp = mem ? duppa(mem, size) : NULL;	mStream->writex(&pp, sizeof pp);}void	ObjectStreamNative::putBool(bool b, const char *desc){	mStream->writex(&b, sizeof b);}void	ObjectStreamNative::putComment(const char *comment){	// NOP}void	ObjectStreamNative::putInt(uint64 i, uint size, const char *desc, uint int_fmt_hint){	switch (size) {	case 1: {		uint8 x = i;		mStream->writex(&x, size);		return;	}	case 2: {		uint16 x = i;		mStream->writex(&x, size);		return;	}	case 4: {		uint32 x = i;		mStream->writex(&x, size);		return;	}	case 8:		mStream->writex(&i, size);		return;	}	throw IllegalArgumentException(HERE);}void ObjectStreamNative::putObject(const Object *object, const char *name, ObjectID id){	Object *d = duplicate ? d->clone() : d;	mStream->write(&d, sizeof d);}void	ObjectStreamNative::putSeparator(){	// NOP}void	ObjectStreamNative::putString(const char *string, const char *desc){	const char *pp = string ? (const char*)duppa(string, strlen(string)+1) : NULL;	mStream->write(&pp, sizeof pp);}void	ObjectStreamNative::putLenString(const byte *string, int len, const char *desc){	const char *pp = string ? (const char*)duppa(string, len+1) : NULL;	mStream->write(&pp, sizeof pp);}void	ObjectStreamNative::corrupt(){}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区丝袜| 成人午夜看片网址| 国产精品影音先锋| 欧美日韩一区在线| 国产精品萝li| 久久精品久久99精品久久| 91色|porny| 国产亚洲欧美中文| 奇米影视在线99精品| 91麻豆产精品久久久久久| 久久精品一区二区三区不卡牛牛 | 日韩一级视频免费观看在线| 综合亚洲深深色噜噜狠狠网站| 蜜臀国产一区二区三区在线播放 | 又紧又大又爽精品一区二区| 丰满岳乱妇一区二区三区| 日韩欧美中文字幕一区| 亚洲国产精品久久一线不卡| 95精品视频在线| 中文字幕的久久| 国产91丝袜在线观看| 亚洲精品一区在线观看| 美女国产一区二区三区| 欧美日韩不卡一区二区| 午夜精品久久久久久久99樱桃| 99精品1区2区| 亚洲青青青在线视频| 91麻豆自制传媒国产之光| 国产精品福利影院| 成人免费三级在线| 国产精品免费免费| 成人avav在线| 综合色天天鬼久久鬼色| 99国产精品久| 亚洲欧美色图小说| 97精品久久久午夜一区二区三区 | 亚洲国产精品天堂| 欧美男人的天堂一二区| 午夜电影一区二区三区| 在线播放中文一区| 欧美a一区二区| 精品久久国产97色综合| 国产资源在线一区| 中文字幕二三区不卡| 99国产精品久久久| 亚洲成人免费影院| 日韩欧美亚洲国产另类| 国产美女精品人人做人人爽 | 69成人精品免费视频| 免费精品99久久国产综合精品| 日韩美女天天操| 国产成人在线看| 自拍偷拍国产精品| 在线播放视频一区| 国产综合色在线视频区| 亚洲欧洲精品天堂一级| 欧美性受xxxx黑人xyx| 美女视频第一区二区三区免费观看网站| 日韩精品一区二区三区视频 | 欧美人妖巨大在线| 免费国产亚洲视频| 欧美国产精品一区二区三区| 91美女片黄在线| 美腿丝袜亚洲综合| 中文一区一区三区高中清不卡| 色丁香久综合在线久综合在线观看| 亚洲一二三区在线观看| 欧美精品一区二区三区四区| 91在线你懂得| 免费视频一区二区| 日韩伦理免费电影| 日韩免费高清av| 91麻豆文化传媒在线观看| 蜜桃久久久久久| 亚洲精品视频一区二区| 精品国产91洋老外米糕| 91视频在线观看免费| 精品一区二区三区的国产在线播放| 国产精品久久久久久久第一福利| 欧美丝袜丝nylons| 国产成人综合精品三级| 视频在线在亚洲| 国产精品国产自产拍高清av| 91麻豆精品国产91久久久资源速度| 国产激情一区二区三区桃花岛亚洲| 亚洲综合精品自拍| 国产精品青草久久| 欧美电影免费观看高清完整版在线 | 久久久久久久久久美女| 欧美三级电影在线观看| 成人精品一区二区三区四区| 美女任你摸久久| 亚洲高清视频中文字幕| 国产精品热久久久久夜色精品三区| 欧美精品欧美精品系列| 色天使久久综合网天天| 国产不卡视频在线播放| 久国产精品韩国三级视频| 午夜视频在线观看一区二区 | 精品视频色一区| 93久久精品日日躁夜夜躁欧美| 国产剧情一区在线| 美日韩黄色大片| 日日夜夜精品视频天天综合网| 亚洲欧美国产毛片在线| 日本一区二区动态图| 国产欧美日韩激情| 国产欧美日产一区| 日本一区二区三区久久久久久久久不| 日韩免费观看2025年上映的电影| 欧美三级日韩三级国产三级| 欧洲一区在线电影| 在线影视一区二区三区| 色婷婷国产精品久久包臀| 不卡电影免费在线播放一区| 国产精品一区二区久久不卡| 国产精品一区二区三区网站| 国产一区二区不卡| 国产精品一区二区在线播放| 国产精品91一区二区| 国产99久久久国产精品潘金| 国模冰冰炮一区二区| 国产福利91精品一区| 成人黄色电影在线 | 国产精品色一区二区三区| 国产精品亲子乱子伦xxxx裸| 国产精品久久看| 综合电影一区二区三区 | 国产精品久久精品日日| 自拍视频在线观看一区二区| 一区二区在线观看不卡| 午夜精品在线看| 另类欧美日韩国产在线| 国产精品99久| 91亚洲精品久久久蜜桃| 欧美探花视频资源| 欧美va亚洲va在线观看蝴蝶网| 国产欧美日韩亚州综合| 亚洲色图另类专区| 视频一区国产视频| 国产综合色产在线精品| 99re8在线精品视频免费播放| 在线一区二区视频| 欧美mv日韩mv国产网站app| 国产日本欧洲亚洲| 亚洲成人自拍一区| 精品一区二区久久| 成人av电影在线| 欧美日韩国产123区| 337p日本欧洲亚洲大胆色噜噜| 中文成人av在线| 五月综合激情婷婷六月色窝| 国产精品一二一区| 在线观看一区不卡| 精品成人一区二区| 一区二区在线电影| 国产精品一区二区果冻传媒| 色av综合在线| 国产三级欧美三级日产三级99 | 欧美韩日一区二区三区| 亚洲电影在线播放| 国产成人午夜视频| 5566中文字幕一区二区电影| 日本一区二区视频在线观看| 午夜久久电影网| 91在线精品一区二区| 精品久久久久av影院| 亚洲网友自拍偷拍| 成人精品免费网站| 精品国产免费一区二区三区四区 | 欧美国产日本韩| 蜜臀久久久久久久| 一本大道久久a久久综合| 精品剧情v国产在线观看在线| 亚洲午夜成aⅴ人片| 成人激情免费电影网址| 久久一区二区视频| 日韩精品电影在线| 一本色道久久综合亚洲91| 国产亚洲欧美中文| 国产一区二区导航在线播放| 欧美日韩高清影院| 亚洲在线中文字幕| 欧美精品视频www在线观看| 国产精品不卡在线| 国产精品主播直播| 日韩欧美一级二级三级| 日日夜夜一区二区| 欧美精品在线视频| 亚洲成人av电影在线| 91福利在线播放| 亚洲视频免费看| 91香蕉视频黄| 亚洲欧美日本韩国| 色婷婷综合久久久中文一区二区| 日本一区二区高清| 国产99久久久久久免费看农村| 久久嫩草精品久久久精品| 精品一区二区三区影院在线午夜| 日韩丝袜情趣美女图片|