コード例 #1
0
bool PyUnicodeUCS2::resize(size_t newsize)
{
	if (mStr != NULL)
		mStr = (wchar_t*)ASCENT_REALLOC(mStr,(newsize+1) * 2);
	else
		mStr = (wchar_t*)ASCENT_MALLOC((newsize+1) * 2);

	mStrLen = newsize;

	if (mStr == NULL)
	{
		mStrLen = 0;
		return false;
	}

	return true;
}
コード例 #2
0
bool PyString::set(const char* str, size_t len)
{
	if (str == NULL || len == 0)
		return false;

	if (mStr != NULL)
		mStr = static_cast<char*>(ASCENT_REALLOC(mStr, len+1));
	else
		mStr = static_cast<char*>(ASCENT_MALLOC(len+1));

	mStrLen = len;
	
	if (mStr == NULL)
		return false;

	ASCENT_MEMCPY(mStr, str, mStrLen);
	mStr[mStrLen] = '\0';
	return true;
}
コード例 #3
0
bool PyString::resize( size_t new_size )
{
	/* handling rare conditions separately */
	if (mStr != NULL && new_size == 0)
	{
		SafeFree(mStr);
		mStrLen = new_size;
		return true;
	}

	mStrLen = new_size;

	if (mStr != NULL)
		mStr = static_cast<char*>(ASCENT_REALLOC(mStr, mStrLen+1));
	else
		mStr = static_cast<char*>(ASCENT_MALLOC(mStrLen+1));

	if (mStr == NULL)
		return false;

	mStr[mStrLen] = '\0';
	return true;

}