diff --git a/src/zm_monitor.cpp b/src/zm_monitor.cpp index 72b07e4d6..699e6dc83 100644 --- a/src/zm_monitor.cpp +++ b/src/zm_monitor.cpp @@ -337,7 +337,8 @@ Monitor::Monitor( n_zones( p_n_zones ), zones( p_zones ), timestamps( 0 ), - images( 0 ) + images( 0 ), + privacy_bitmask( NULL ) { strncpy( name, p_name, sizeof(name) ); @@ -698,11 +699,13 @@ void Monitor::AddZones( int p_n_zones, Zone *p_zones[] ) void Monitor::AddPrivacyBitmask( Zone *p_zones[] ) { - delete[] privacy_bitmask; + if ( privacy_bitmask ) + delete[] privacy_bitmask; privacy_bitmask = NULL; Image *privacy_image = NULL; for ( int i = 0; i < n_zones; i++ ) + { if ( p_zones[i]->IsPrivacy() ) { if ( !privacy_image ) @@ -713,6 +716,7 @@ void Monitor::AddPrivacyBitmask( Zone *p_zones[] ) privacy_image->Fill( 0xff, p_zones[i]->GetPolygon() ); privacy_image->Outline( 0xff, p_zones[i]->GetPolygon() ); } + } // end foreach zone if ( privacy_image ) privacy_bitmask = privacy_image->Buffer(); }