MCPcopy Create free account
hub / github.com/buggins/coolreader / CreateCopy

Method CreateCopy

crengine/src/lvstream.cpp:2962–2990  ·  view source on GitHub ↗

Creates memory stream as copy of another stream.

Source from the content-addressed store, hash-verified

2960 }
2961 /// Creates memory stream as copy of another stream.
2962 lverror_t CreateCopy( LVStreamRef srcStream, lvopen_mode_t mode )
2963 {
2964 Close();
2965 if ( mode!=LVOM_READ || srcStream.isNull() )
2966 return LVERR_FAIL;
2967 lvsize_t sz = srcStream->GetSize();
2968 if ( (int)sz <= 0 || sz > 0x200000 )
2969 return LVERR_FAIL;
2970 m_bufsize = sz;
2971 m_size = 0;
2972 m_pos = 0;
2973 m_pBuffer = (lUInt8*)malloc((int)m_bufsize);
2974 if (m_pBuffer) {
2975 lvsize_t bytesRead = 0;
2976 srcStream->Read( m_pBuffer, m_bufsize, &bytesRead );
2977 if ( bytesRead!=m_bufsize ) {
2978 free(m_pBuffer);
2979 m_pBuffer = 0;
2980 m_size = 0;
2981 m_pos = 0;
2982 m_bufsize = 0;
2983 return LVERR_FAIL;
2984 }
2985 }
2986 m_size = sz;
2987 m_own_buffer = true;
2988 m_mode = mode;
2989 return LVERR_OK;
2990 }
2991
2992
2993 lverror_t CreateCopy( const lUInt8 * pBuf, lvsize_t size, lvopen_mode_t mode )

Callers 2

LVCreateStringStreamFunction · 0.80
LVCreateMemoryStreamFunction · 0.80

Calls 4

CloseFunction · 0.85
isNullMethod · 0.45
GetSizeMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected