Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bugs in Octave module loading #47

Closed
wants to merge 3 commits into from
Closed

Fix bugs in Octave module loading #47

wants to merge 3 commits into from

Conversation

kwwette
Copy link
Contributor

@kwwette kwwette commented May 9, 2013

  • fix a memory leak in setting of global variables
  • install functions only once, to speed up module loads

See the git commit messages for further details.

Patches was tested by running Octave examples/test suite for versions 3.2.4, 3.4.3, 3.6.3

…lValue()

- this introduces a memory leak, which becomes significant for large
  modules (many global variables) and many module re-loadings (e.g.
  during a long-running script)
- the original motivation was to prevent double-frees on exit, but this
  problem appears to have been fixed by the _Exit() hack in later commits,
  and in any case is an issue only for Octave ~3.2, so it should be safe to
  remove; tested by running Octave examples/test suite with Debian 3.2.4 and
  built-from-source 3.2.4, 3.4.3, and 3.6.3
- once installed, Octave functions can never really be uninstalled
  (clear -f doesn't prevent the function being called again), so
  it makes no sense to install functions more than once
- this can lead to a significant speed-up of module loading times,
  up to a factor of 10 for a large module loaded multiple times
@wsfulton wsfulton closed this May 12, 2013
wsfulton pushed a commit that referenced this pull request Feb 14, 2017
wsfulton pushed a commit that referenced this pull request Feb 14, 2017
wsfulton pushed a commit that referenced this pull request Feb 14, 2017
wsfulton pushed a commit that referenced this pull request Feb 14, 2017
wsfulton pushed a commit that referenced this pull request Feb 14, 2017
wsfulton pushed a commit that referenced this pull request Feb 14, 2017
wsfulton pushed a commit that referenced this pull request Feb 14, 2017
This adds a second file SwigMem.m that like SwigRef.m is common to all modules. You might need to update
your build instructions accordingly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants