From 8f099cafbb945165ffb8423e5101c0ade2606a8b Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Wed, 14 Mar 2012 04:04:57 -0400 Subject: [PATCH] Remove boost::lambda from ConditionalOverlayCell::get_validity --- src/frontend/terminaloverlay.cc | 8 ++++---- src/terminal/terminalframebuffer.h | 6 ++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/frontend/terminaloverlay.cc b/src/frontend/terminaloverlay.cc index 78c56b1..4186c02 100644 --- a/src/frontend/terminaloverlay.cc +++ b/src/frontend/terminaloverlay.cc @@ -29,6 +29,8 @@ using namespace boost::lambda; using namespace Overlay; using std::max; +using std::mem_fun_ref; +using std::bind2nd; void ConditionalOverlayCell::apply( Framebuffer &fb, uint64_t confirmed_epoch, int row, bool flag ) const { @@ -88,12 +90,10 @@ Validity ConditionalOverlayCell::get_validity( const Framebuffer &fb, int row, return CorrectNoCredit; } - if ( (current.contents == replacement.contents) - || (current.is_blank() && replacement.is_blank()) ) { + if ( current.contents_match( replacement ) ) { vector::const_iterator it = find_if( original_contents.begin(), original_contents.end(), - (replacement.is_blank() && bind( &Cell::is_blank, _1 )) - || replacement.contents == (&_1)->*&Cell::contents ); + bind2nd( mem_fun_ref( &Cell::contents_match ), replacement ) ); if ( it == original_contents.end() ) { return Correct; } else { diff --git a/src/terminal/terminalframebuffer.h b/src/terminal/terminalframebuffer.h index b2c11b8..2c3c5f7 100644 --- a/src/terminal/terminalframebuffer.h +++ b/src/terminal/terminalframebuffer.h @@ -96,6 +96,12 @@ namespace Terminal { || ( (contents.size() == 1) && ( (contents.front() == 0x20) || (contents.front() == 0xA0) ) ) ); } + + bool contents_match ( const Cell& other ) const + { + return ( is_blank() && other.is_blank() ) + || ( contents == other.contents ); + } }; class Row {