diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-04-27 07:20:06 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-04-27 07:20:06 -0700 |
| commit | 495f66b9f17a36f9e85b370d9d51d5d8809b3ae8 (patch) | |
| tree | ca56305bb4392c8caedd4f5f7a61dce3af5d21ef /src | |
| parent | ecd87aa5458f4d5c56dc1d2814975beed6b22dfc (diff) | |
| parent | 96e247a4ad5bd137d8c9c7539b3d7457abd1b3f5 (diff) | |
| download | mruby-495f66b9f17a36f9e85b370d9d51d5d8809b3ae8.tar.gz mruby-495f66b9f17a36f9e85b370d9d51d5d8809b3ae8.zip | |
Merge pull request #1217 from skandhas/pr-detect-cyclic-include-in-Moudle#include
detect cyclic-include in Module#include
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/class.c b/src/class.c index 6b9f246e9..40335e039 100644 --- a/src/class.c +++ b/src/class.c @@ -690,6 +690,9 @@ mrb_include_module(mrb_state *mrb, struct RClass *c, struct RClass *m) struct RClass *p = c, *ic; int superclass_seen = 0; + if (c->mt == m->mt) { + mrb_raise(mrb, E_ARGUMENT_ERROR, "cyclic include detected"); + } while (p) { if (c != p && p->tt == MRB_TT_CLASS) { superclass_seen = 1; |
