Name Description Size
CreateCoder.cpp #ifdef EXTERNAL_CODECS extern CExternalCodecs g_ExternalCodecs; #define CHECK_GLOBAL_CODECS \ if (!__externalCodecs || !__externalCodecs->IsSet()) __externalCodecs = &g_ExternalCodecs; #endif 13042
CreateCoder.h if EXTERNAL_CODECS is not defined, the code supports only codecs that are statically linked at compile-time and link-time. if EXTERNAL_CODECS is defined, the code supports also codecs from another executable modules, that can be linked dynamically at run-time: - EXE module can use codecs from external DLL files. - DLL module can use codecs from external EXE and DLL files. CExternalCodecs contains information about codecs and interfaces to create them. The order of codecs: 1) Internal codecs 2) External codecs 5233
CWrappers.cpp ---------- CByteInBufWrap ---------- 5918
CWrappers.h 2159
FilePathAutoRename.cpp 986
FilePathAutoRename.h 197
FileStreams.cpp 11134
FileStreams.h 3650
FilterCoder.cpp AES filters need 16-bytes alignment for HARDWARE-AES instructions. So we call IFilter::Filter(, size), where (size != 16 * N) only for last data block. AES-CBC filters need data size aligned for 16-bytes. So the encoder can add zeros to the end of original stream. Some filters (BCJ and others) don't process data at the end of stream in some cases. So the encoder and decoder write such last bytes without change. 9542
FilterCoder.h 6401
InBuffer.cpp if ((size_t)(_bufLim - _buf) >= size) { const Byte *src = _buf; for (size_t i = 0; i < size; i++) buf[i] = src[i]; _buf += size; return size; } for (size_t i = 0; i < size; i++) { if (_buf >= _bufLim) if (!ReadBlock()) return i; buf[i] = *_buf++; } return size; 3029
InBuffer.h 2075
InOutTempBuffer.cpp STDMETHODIMP CSequentialOutTempBufferImp::Write(const void *data, UInt32 size, UInt32 *processed) { if (!_buf->Write(data, size)) { if (processed) processed = 0; return E_FAIL; } if (processed) processed = size; return S_OK; } 2690
InOutTempBuffer.h class CSequentialOutTempBufferImp: public ISequentialOutStream, public CMyUnknownImp { CInOutTempBuffer *_buf; public: void Init(CInOutTempBuffer *buffer) { _buf = buffer; } MY_UNKNOWN_IMP STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize); }; 1017
LimitedStreams.cpp 9521
LimitedStreams.h 6125
LockedStream.cpp 44
LockedStream.h 85
MethodId.cpp 40
MethodId.h 145
MethodProps.cpp 11712
MethodProps.h 7023
OffsetStream.cpp 982
OffsetStream.h 553
OutBuffer.cpp 2168
OutBuffer.h 1380
ProgressUtils.cpp 1087
ProgressUtils.h 707
PropId.cpp 1442
RegisterArc.h 2620
RegisterCodec.h 3304
StdAfx.h 101
StreamBinder.cpp _canWrite_Event.Lock(); if (_readingWasClosed) _readingWasClosed2 = true; 3828
StreamBinder.h We don't use probably UNSAFE version: reader thread: _canWrite_Event.Set(); _readingWasClosed = true _canWrite_Event.Set(); writer thread: _canWrite_Event.Wait() if (_readingWasClosed) Can second call of _canWrite_Event.Set() be executed without memory barrier, if event is already set? 1414
StreamObjects.cpp 7288
StreamObjects.h 4313
StreamUtils.cpp 1638
StreamUtils.h 463
UniqBlocks.cpp 1260
UniqBlocks.h 547
VirtThread.cpp 842
VirtThread.h 587