Skip to content

Commit f958824

Browse files
authored
Merge pull request #53 from alicevision/dev_alignfreeBug
[win32] Bugfix freeing page-aligned memory on Win32
2 parents fb5251e + c388b2e commit f958824

3 files changed

Lines changed: 15 additions & 10 deletions

File tree

src/popsift/common/assist.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,13 @@ static void* memalign(size_t alignment, size_t size)
139139
#endif
140140
}
141141

142+
static void memalign_free( void* ptr )
143+
{
144+
#ifdef _WIN32
145+
_aligned_free( ptr );
146+
#else
147+
free( ptr );
148+
#endif
149+
}
150+
142151
}; // namespace popsift

src/popsift/common/plane_2d.cu

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,20 +101,16 @@ void PlaneBase::freeHost2D( void* data, PlaneMapMode m )
101101
{
102102
if (!data)
103103
return;
104-
if (m == CudaAllocated) {
104+
else if (m == CudaAllocated) {
105105
cudaFreeHost(data);
106106
return;
107107
}
108-
if (m == Unaligned) {
108+
else if (m == Unaligned) {
109109
free(data);
110110
return;
111111
}
112-
if (m == PageAligned) {
113-
#ifdef _WIN32
114-
_aligned_free(data);
115-
#else
116-
free(data);
117-
#endif
112+
else if (m == PageAligned) {
113+
memalign_free( data );
118114
return;
119115
}
120116
assert(!"Invalid PlaneMapMode");

src/popsift/features.cu

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ FeaturesHost::FeaturesHost( int num_ext, int num_ori )
5151

5252
FeaturesHost::~FeaturesHost( )
5353
{
54-
free( _ext );
55-
free( _ori );
54+
memalign_free( _ext );
55+
memalign_free( _ori );
5656
}
5757

5858
void FeaturesHost::reset( int num_ext, int num_ori )

0 commit comments

Comments
 (0)