Skip to content

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

Open
@dan-nf

Description

@dan-nf

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 a9031fb)

Running on Windows; using arrayfire 3.8.0.

Minimum working example:

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions