Skip to content

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

@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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions