Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 // LSBFEncoder.cpp
3 #include "StdAfx.h"
5 #include "LSBFEncoder.h"
6 #include "Common/Defs.h"
8 namespace NStream {
9 namespace NLSBF {
11 void CEncoder::WriteBits(UInt32 value, int numBits)
12 {
13 while(numBits > 0)
14 {
15 if (numBits < m_BitPos)
16 {
17 m_CurByte |= (value & ((1 << numBits) - 1)) << (8 - m_BitPos);
18 m_BitPos -= numBits;
19 return;
20 }
21 numBits -= m_BitPos;
22 m_Stream.WriteByte((Byte)(m_CurByte | (value << (8 - m_BitPos))));
23 value >>= m_BitPos;
24 m_BitPos = 8;
25 m_CurByte = 0;
26 }
27 }
29 }}