mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-01-28 07:58:08 +01:00
add mem_stream_make_sized, meant to make saving games more efficient
This commit is contained in:
parent
75474e1891
commit
5c683f173a
2 changed files with 19 additions and 3 deletions
|
@ -70,10 +70,8 @@ mem_stream_make( MPFORMAL VTableMgr* vtmgr, void* closure,
|
||||||
XP_PlayerAddr channelNo, MemStreamCloseCallback onClose )
|
XP_PlayerAddr channelNo, MemStreamCloseCallback onClose )
|
||||||
{
|
{
|
||||||
StreamCtxVTable* vtable;
|
StreamCtxVTable* vtable;
|
||||||
MemStreamCtxt* result = (MemStreamCtxt*)XP_MALLOC( mpool,
|
MemStreamCtxt* result = (MemStreamCtxt*)XP_CALLOC( mpool,
|
||||||
sizeof(*result) );
|
sizeof(*result) );
|
||||||
XP_MEMSET( result, 0, sizeof(*result) );
|
|
||||||
|
|
||||||
MPASSIGN(result->mpool, mpool);
|
MPASSIGN(result->mpool, mpool);
|
||||||
|
|
||||||
vtable = (StreamCtxVTable*)vtmgr_getVTable( vtmgr, VTABLE_MEM_STREAM );
|
vtable = (StreamCtxVTable*)vtmgr_getVTable( vtmgr, VTABLE_MEM_STREAM );
|
||||||
|
@ -92,6 +90,19 @@ mem_stream_make( MPFORMAL VTableMgr* vtmgr, void* closure,
|
||||||
return (XWStreamCtxt*)result;
|
return (XWStreamCtxt*)result;
|
||||||
} /* make_mem_stream */
|
} /* make_mem_stream */
|
||||||
|
|
||||||
|
XWStreamCtxt*
|
||||||
|
mem_stream_make_sized( MPFORMAL VTableMgr* vtmgr, XP_U16 startSize,
|
||||||
|
void* closure, XP_PlayerAddr channelNo,
|
||||||
|
MemStreamCloseCallback onClose )
|
||||||
|
{
|
||||||
|
MemStreamCtxt* result =
|
||||||
|
(MemStreamCtxt*)mem_stream_make( MPPARM(mpool) vtmgr, closure,
|
||||||
|
channelNo, onClose );
|
||||||
|
result->buf = (XP_U8*)XP_MALLOC( mpool, startSize );
|
||||||
|
result->nBytesAllocated = startSize;
|
||||||
|
return (XWStreamCtxt*)result;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mem_stream_getBytes( XWStreamCtxt* p_sctx, void* where, XP_U16 count )
|
mem_stream_getBytes( XWStreamCtxt* p_sctx, void* where, XP_U16 count )
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,6 +38,11 @@ XWStreamCtxt* mem_stream_make( MPFORMAL VTableMgr* vtmgr,
|
||||||
subclass */
|
subclass */
|
||||||
MemStreamCloseCallback onCloseWritten );
|
MemStreamCloseCallback onCloseWritten );
|
||||||
|
|
||||||
|
XWStreamCtxt* mem_stream_make_sized( MPFORMAL VTableMgr* vtmgr,
|
||||||
|
XP_U16 initialSize,
|
||||||
|
void* closure, XP_PlayerAddr addr,
|
||||||
|
MemStreamCloseCallback onCloseWritten );
|
||||||
|
|
||||||
|
|
||||||
#ifdef CPLUS
|
#ifdef CPLUS
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue