Skip to content

Commit 976bb07

Browse files
yuanmingzexlz
authored andcommitted
Fix mem free bug and null pointer error
When exiting libfreenect2::CpuDepthPacketProcessor::process() is called but listener_ pointer is NULL. Adding checking to listener_. First time deleting not alloced mem pointer buffer_ will fail. When creating Mat buffer_ set it to NULL.
1 parent dd13c65 commit 976bb07

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

examples/protonect/src/cpu_depth_packet_processor.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ struct Mat
107107

108108
public:
109109
/** Default constructor. */
110-
Mat()
110+
Mat():buffer_(0), buffer_end_(0)
111111
{
112112
}
113113

@@ -1091,17 +1091,20 @@ void CpuDepthPacketProcessor::process(const DepthPacket &packet)
10911091
}
10921092
}
10931093

1094-
if(listener_->onNewFrame(Frame::Ir, impl_->ir_frame))
1095-
{
1096-
impl_->newIrFrame();
1097-
}
1094+
impl_->stopTiming(LOG_INFO);
10981095

1099-
if(listener_->onNewFrame(Frame::Depth, impl_->depth_frame))
1100-
{
1101-
impl_->newDepthFrame();
1096+
if (listener_ != 0 ){
1097+
if(listener_->onNewFrame(Frame::Ir, impl_->ir_frame))
1098+
{
1099+
impl_->newIrFrame();
1100+
}
1101+
1102+
if(listener_->onNewFrame(Frame::Depth, impl_->depth_frame))
1103+
{
1104+
impl_->newDepthFrame();
1105+
}
11021106
}
11031107

1104-
impl_->stopTiming(LOG_INFO);
11051108
}
11061109

11071110
} /* namespace libfreenect2 */

0 commit comments

Comments
 (0)