From 65994695a273a361db97cd31474b250f3f574be0 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Wed, 20 Sep 2017 04:29:53 +0200 Subject: [PATCH] Mat can be deleted Signed-off-by: deadprogram --- core.cpp | 6 ++++++ core.go | 6 ++++++ core.h | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core.cpp b/core.cpp index ddb435cc..9f9d8f9b 100644 --- a/core.cpp +++ b/core.cpp @@ -1,10 +1,16 @@ #include "core.h" #include +// Mat Mat Mat_New() { return new cv::Mat(); } +void Mat_Delete(Mat m) { + delete m; +} + +// MatVec3b MatVec3b MatVec3b_New() { return new cv::Mat_(); } diff --git a/core.go b/core.go index d7310118..3cc30add 100644 --- a/core.go +++ b/core.go @@ -31,6 +31,12 @@ func NewMat() Mat { return Mat{p: C.Mat_New()} } +// Delete object. +func (m *Mat) Delete() { + C.Mat_Delete(m.p) + m.p = nil +} + // CMatVec3b is an alias for C pointer. type CMatVec3b C.MatVec3b diff --git a/core.h b/core.h index d76f12ee..efe4ed26 100644 --- a/core.h +++ b/core.h @@ -40,7 +40,8 @@ typedef struct RawData { void DrawRectsToImage(MatVec3b img, struct Rects rects); Mat Mat_New(); - + void Mat_Delete(Mat m); + MatVec3b MatVec3b_New(); struct ByteArray MatVec3b_ToJpegData(MatVec3b m, int quality); void MatVec3b_Delete(MatVec3b m);