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 // Windows/Handle.h
3 #ifndef __WINDOWS_HANDLE_H
4 #define __WINDOWS_HANDLE_H
6 namespace NWindows {
8 class CHandle
9 {
10 protected:
11 HANDLE _handle;
12 public:
13 operator HANDLE() { return _handle; }
14 CHandle(): _handle(NULL) {}
15 ~CHandle() { Close(); }
16 bool Close()
17 {
18 if (_handle == NULL)
19 return true;
20 if (!::CloseHandle(_handle))
21 return false;
22 _handle = NULL;
23 return true;
24 }
25 void Attach(HANDLE handle)
26 { _handle = handle; }
27 HANDLE Detach()
28 {
29 HANDLE handle = _handle;
30 _handle = NULL;
31 return handle;
32 }
33 };
35 }
37 #endif