arrayfire / arrayfire/arrayfire-python

af.features.Features crashes when its __del__ method is called

Open
#268 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
422
Forks
63
PR merge metrics
No merged PRs in 30d

Description

When using a `Features()` object, arrayfire crashes silently when calling the object's `__del__()` method if the object's `get_xpos()` method has already been deleted (or has fallen out of scope).

Potentially due to a similar root case as mentioned in #169 (or due to the changes made as a result of this in commit a9031fb5e0db371bc88c958f0b8d43efd7fe8f45)

Running on Windows; using arrayfire 3.8.0.

Minimum working example:
```python
import arrayfire as af

def get_feature_locations(features):
# Get x and y positions of features
x_pos = features.get_xpos()
y_pos = features.get_ypos()

# If this is uncommented, the code works as intended
# return x_pos, y_pos

img = af.randn(d0=500, d1=500)
features, descriptors = af.orb(img, threshold=1, max_features=10, num_levels=1)
feature_locations = get_feature_locations(features)

print("Before delete")
del features
print("After delete")
```

Which outputs:
```
Before delete
```

Uncommenting line 10 (`return x_pos, y_pos`) outputs:
```
Before delete
After delete
```

Thanks!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.