markrcote / flot-axislabels

Axis Labels Plugin for Flot. This repo is unmaintained in part due to flot being in a similar situation.
95 stars 71 forks source link

Fix for infinite recursion bug #28

Open walkevin opened 10 years ago

walkevin commented 10 years ago

This is a pull request regarding the following bug: If, for whatever reason, jquery.flot.axislabels.js is loaded twice, the plugin gets registered twice in the $.plot.plugins array and therefore the hook function is registered twice, too. For this particular plugin, this leads to an infinite recursion, because somehow the trick with the secondPass flag fails and the second call to the hook function never returns, but again calls the draw function, which calls the hook function twice again, and the second call again never returns and so on.

A demonstration can be found here: https://gist.github.com/walkevin/cbb6454e521f30126c13 (Notice that you might need to change the source for the axislabels.js. I didn't find it on a CDN Service)

You might argue that it is the responsibility of the developer to assure that the script is loaded only once, but since the error is so catastrophic and has such an unexpected reason which is specific to this plugin, I'm suggesting a simple fix, just to make sure that the plugin is never registered twice.

PlippiePlop commented 10 years ago

This pull request can be automatically merged by project collaborators. Can someone please merge it?.

markrcote commented 9 years ago

Heya, sorry for taking so long to respond. I see what you're saying; however, I think it might be better to put this check into init() instead. I would also prefer setting the variable to false at the top of the file rather than checking if it's undefined.