Make Terminal::Framebuffer::Rows shared and copy-on-write.

* Support both std:: and std::tr1:: shared_ptr. FreeBSD 10 now uses C++11 by default.
* Remove Framebuffer pointers in STMClient
This commit is contained in:
John Hood
2014-06-14 18:21:38 -04:00
parent c090d257f2
commit b41bad918d
8 changed files with 186 additions and 83 deletions
+3 -11
View File
@@ -58,7 +58,7 @@ private:
struct winsize window_size;
Terminal::Framebuffer *local_framebuffer, *new_state;
Terminal::Framebuffer local_framebuffer, new_state;
Overlay::OverlayManager overlays;
Network::Transport< Network::UserStream, Terminal::Complete > *network;
Terminal::Display display;
@@ -89,8 +89,8 @@ public:
escape_requires_lf( false ), escape_key_help( L"?" ),
saved_termios(), raw_termios(),
window_size(),
local_framebuffer( NULL ),
new_state( NULL ),
local_framebuffer( 1, 1 ),
new_state( 1, 1 ),
overlays(),
network( NULL ),
display( true ), /* use TERM environment var to initialize display */
@@ -122,14 +122,6 @@ public:
~STMClient()
{
if ( local_framebuffer != NULL ) {
delete local_framebuffer;
}
if ( new_state != NULL ) {
delete new_state;
}
if ( network != NULL ) {
delete network;
}