Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Spot Spot
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 132
    • Issues 132
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • SpotSpot
  • SpotSpot
  • Issues
  • #129
Closed
Open
Issue created Jan 07, 2016 by Alexandre Duret-Lutz@adlOwner

twa::~twa should call unregister_all_my_variables()

On Wed, Jan 6, 2016 at 7:34 PM, Miriam Blank sent the following question:

This code prints errors. How can I avoid them?

code:

    spot::bdd_dict_ptr dict = spot::make_bdd_dict();
    spot::kripke_ptr model = std::make_shared<MyKripke>(dict);
    model->register_ap("p");

errors:

    some maps are not empty
    Variable Map:
    0 Var[p] x1 { 0xb32fd0 }
    1 Free
    Anonymous lists: [0]
    Free list: (1, 1)
    Aborted

The current solution to put get_dict()->unregister_all_my_variables(this); in the destructor of MyKripke is not very elegant.

Since we introduced twa::register_ap() to hide most of the interactions with the bdd_dict, it should probably be cleaner if unregister_all_my_variables() was called in the twa destructor so that it is not necessary to call it in the destructor of every subclass.

Assignee
Assign to
Time tracking