Nikolay Sivov : oleaut32: Use type names and sizeof() instead of hardcoded values for save/load methods.
Alexandre Julliard
julliard at winehq.org
Mon Aug 22 13:29:13 CDT 2011
Module: wine
Branch: master
Commit: 2de8137f11d53538c2e58a931ae476186a145f98
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2de8137f11d53538c2e58a931ae476186a145f98
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Sun Aug 21 18:44:54 2011 +0400
oleaut32: Use type names and sizeof() instead of hardcoded values for save/load methods.
---
dlls/oleaut32/olefont.c | 190 ++++++++++++++++-------------------------------
1 files changed, 64 insertions(+), 126 deletions(-)
diff --git a/dlls/oleaut32/olefont.c b/dlls/oleaut32/olefont.c
index be88f51..a66a25b 100644
--- a/dlls/oleaut32/olefont.c
+++ b/dlls/oleaut32/olefont.c
@@ -287,13 +287,6 @@ struct OLEFontImpl
IConnectionPoint *pFontEventsCP;
};
-/*
- * Here, I define utility macros to help with the casting of the
- * "this" parameter.
- * There is a version to accommodate all of the VTables implemented
- * by this object.
- */
-
static inline OLEFontImpl *impl_from_IFont(IFont *iface)
{
return CONTAINING_RECORD(iface, OLEFontImpl, IFont_iface);
@@ -1626,80 +1619,50 @@ static HRESULT WINAPI OLEFontImpl_Load(
IPersistStream* iface,
IStream* pLoadStream)
{
- char readBuffer[0x100];
+ OLEFontImpl *this = impl_from_IPersistStream(iface);
+ BYTE version, attributes, string_size;
+ char readBuffer[0x100];
ULONG cbRead;
- BYTE bVersion;
- BYTE bAttributes;
- BYTE bStringSize;
INT len;
- OLEFontImpl *this = impl_from_IPersistStream(iface);
-
- /*
- * Read the version byte
- */
- IStream_Read(pLoadStream, &bVersion, 1, &cbRead);
-
- if ( (cbRead!=1) ||
- (bVersion!=0x01) )
- return E_FAIL;
-
- /*
- * Charset
- */
- IStream_Read(pLoadStream, &this->description.sCharset, 2, &cbRead);
-
- if (cbRead!=2)
- return E_FAIL;
-
- /*
- * Attributes
- */
- IStream_Read(pLoadStream, &bAttributes, 1, &cbRead);
+ /* Version */
+ IStream_Read(pLoadStream, &version, sizeof(BYTE), &cbRead);
+ if ((cbRead != sizeof(BYTE)) || (version != 0x01)) return E_FAIL;
- if (cbRead!=1)
- return E_FAIL;
+ /* Charset */
+ IStream_Read(pLoadStream, &this->description.sCharset, sizeof(WORD), &cbRead);
+ if (cbRead != sizeof(WORD)) return E_FAIL;
- this->description.fItalic = (bAttributes & FONTPERSIST_ITALIC) != 0;
- this->description.fStrikethrough = (bAttributes & FONTPERSIST_STRIKETHROUGH) != 0;
- this->description.fUnderline = (bAttributes & FONTPERSIST_UNDERLINE) != 0;
+ /* Attributes */
+ IStream_Read(pLoadStream, &attributes, sizeof(BYTE), &cbRead);
+ if (cbRead != sizeof(BYTE)) return E_FAIL;
- /*
- * Weight
- */
- IStream_Read(pLoadStream, &this->description.sWeight, 2, &cbRead);
+ this->description.fItalic = (attributes & FONTPERSIST_ITALIC) != 0;
+ this->description.fStrikethrough = (attributes & FONTPERSIST_STRIKETHROUGH) != 0;
+ this->description.fUnderline = (attributes & FONTPERSIST_UNDERLINE) != 0;
- if (cbRead!=2)
- return E_FAIL;
+ /* Weight */
+ IStream_Read(pLoadStream, &this->description.sWeight, sizeof(WORD), &cbRead);
+ if (cbRead != sizeof(WORD)) return E_FAIL;
- /*
- * Size
- */
- IStream_Read(pLoadStream, &this->description.cySize.s.Lo, 4, &cbRead);
-
- if (cbRead!=4)
- return E_FAIL;
+ /* Size */
+ IStream_Read(pLoadStream, &this->description.cySize.s.Lo, sizeof(DWORD), &cbRead);
+ if (cbRead != sizeof(DWORD)) return E_FAIL;
this->description.cySize.s.Hi = 0;
- /*
- * FontName
- */
- IStream_Read(pLoadStream, &bStringSize, 1, &cbRead);
-
- if (cbRead!=1)
- return E_FAIL;
+ /* Name */
+ IStream_Read(pLoadStream, &string_size, sizeof(BYTE), &cbRead);
+ if (cbRead != sizeof(BYTE)) return E_FAIL;
- IStream_Read(pLoadStream, readBuffer, bStringSize, &cbRead);
-
- if (cbRead!=bStringSize)
- return E_FAIL;
+ IStream_Read(pLoadStream, readBuffer, string_size, &cbRead);
+ if (cbRead != string_size) return E_FAIL;
HeapFree(GetProcessHeap(), 0, this->description.lpstrName);
- len = MultiByteToWideChar( CP_ACP, 0, readBuffer, bStringSize, NULL, 0 );
+ len = MultiByteToWideChar( CP_ACP, 0, readBuffer, string_size, NULL, 0 );
this->description.lpstrName = HeapAlloc( GetProcessHeap(), 0, (len+1) * sizeof(WCHAR) );
- MultiByteToWideChar( CP_ACP, 0, readBuffer, bStringSize, this->description.lpstrName, len );
+ MultiByteToWideChar( CP_ACP, 0, readBuffer, string_size, this->description.lpstrName, len );
this->description.lpstrName[len] = 0;
/* Ensure use of this font causes a new one to be created */
@@ -1718,91 +1681,66 @@ static HRESULT WINAPI OLEFontImpl_Save(
IStream* pOutStream,
BOOL fClearDirty)
{
+ OLEFontImpl *this = impl_from_IPersistStream(iface);
+ BYTE attributes, string_size;
+ const BYTE version = 0x01;
char* writeBuffer = NULL;
- ULONG cbWritten;
- BYTE bVersion = 0x01;
- BYTE bAttributes;
- BYTE bStringSize;
+ ULONG written;
- OLEFontImpl *this = impl_from_IPersistStream(iface);
+ TRACE("(%p)->(%p %d)\n", this, pOutStream, fClearDirty);
- /*
- * Read the version byte
- */
- IStream_Write(pOutStream, &bVersion, 1, &cbWritten);
+ /* Version */
+ IStream_Write(pOutStream, &version, sizeof(BYTE), &written);
+ if (written != sizeof(BYTE)) return E_FAIL;
- if (cbWritten!=1)
- return E_FAIL;
+ /* Charset */
+ IStream_Write(pOutStream, &this->description.sCharset, sizeof(WORD), &written);
+ if (written != sizeof(WORD)) return E_FAIL;
- /*
- * Charset
- */
- IStream_Write(pOutStream, &this->description.sCharset, 2, &cbWritten);
-
- if (cbWritten!=2)
- return E_FAIL;
-
- /*
- * Attributes
- */
- bAttributes = 0;
+ /* Attributes */
+ attributes = 0;
if (this->description.fItalic)
- bAttributes |= FONTPERSIST_ITALIC;
+ attributes |= FONTPERSIST_ITALIC;
if (this->description.fStrikethrough)
- bAttributes |= FONTPERSIST_STRIKETHROUGH;
+ attributes |= FONTPERSIST_STRIKETHROUGH;
if (this->description.fUnderline)
- bAttributes |= FONTPERSIST_UNDERLINE;
+ attributes |= FONTPERSIST_UNDERLINE;
- IStream_Write(pOutStream, &bAttributes, 1, &cbWritten);
+ IStream_Write(pOutStream, &attributes, sizeof(BYTE), &written);
+ if (written != sizeof(BYTE)) return E_FAIL;
- if (cbWritten!=1)
- return E_FAIL;
+ /* Weight */
+ IStream_Write(pOutStream, &this->description.sWeight, sizeof(WORD), &written);
+ if (written != sizeof(WORD)) return E_FAIL;
- /*
- * Weight
- */
- IStream_Write(pOutStream, &this->description.sWeight, 2, &cbWritten);
-
- if (cbWritten!=2)
- return E_FAIL;
-
- /*
- * Size
- */
- IStream_Write(pOutStream, &this->description.cySize.s.Lo, 4, &cbWritten);
+ /* Size */
+ IStream_Write(pOutStream, &this->description.cySize.s.Lo, sizeof(DWORD), &written);
+ if (written != sizeof(DWORD)) return E_FAIL;
- if (cbWritten!=4)
- return E_FAIL;
-
- /*
- * FontName
- */
- if (this->description.lpstrName!=0)
- bStringSize = WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
+ /* FontName */
+ if (this->description.lpstrName)
+ string_size = WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
strlenW(this->description.lpstrName), NULL, 0, NULL, NULL );
else
- bStringSize = 0;
-
- IStream_Write(pOutStream, &bStringSize, 1, &cbWritten);
+ string_size = 0;
- if (cbWritten!=1)
- return E_FAIL;
+ IStream_Write(pOutStream, &string_size, sizeof(BYTE), &written);
+ if (written != sizeof(BYTE)) return E_FAIL;
- if (bStringSize!=0)
+ if (string_size)
{
- if (!(writeBuffer = HeapAlloc( GetProcessHeap(), 0, bStringSize ))) return E_OUTOFMEMORY;
+ if (!(writeBuffer = HeapAlloc( GetProcessHeap(), 0, string_size ))) return E_OUTOFMEMORY;
WideCharToMultiByte( CP_ACP, 0, this->description.lpstrName,
strlenW(this->description.lpstrName),
- writeBuffer, bStringSize, NULL, NULL );
+ writeBuffer, string_size, NULL, NULL );
- IStream_Write(pOutStream, writeBuffer, bStringSize, &cbWritten);
- HeapFree(GetProcessHeap(), 0, writeBuffer);
+ IStream_Write(pOutStream, writeBuffer, string_size, &written);
+ HeapFree(GetProcessHeap(), 0, writeBuffer);
- if (cbWritten!=bStringSize)
- return E_FAIL;
+ if (written != string_size) return E_FAIL;
}
return S_OK;
More information about the wine-cvs
mailing list