diff options
| author | Jean Boussier <jean.boussier@gmail.com> | 2025-06-18 09:56:22 +0100 |
|---|---|---|
| committer | Jean Boussier <jean.boussier@gmail.com> | 2025-06-23 10:04:58 +0100 |
| commit | 393e9a5f3e3e4173579e204a642e9fe55ddaf461 (patch) | |
| tree | 50cd670e75d9a7d56e2bf9eed16027ce4246db88 /internal | |
| parent | ce38cba528b4da8fe306377dc9bb6eaf7a639c53 (diff) | |
Optimize `rb_namespace_available`
Rather than to lazily check the env using a trinary
value, we can more straightforwardly check for the
env during the VM boot.
This allow `rb_namespace_available` to just be a pointer
dereference.
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/inits.h | 3 | ||||
| -rw-r--r-- | internal/namespace.h | 9 |
2 files changed, 11 insertions, 1 deletions
diff --git a/internal/inits.h b/internal/inits.h index 03de289dd4..e618d87cc3 100644 --- a/internal/inits.h +++ b/internal/inits.h @@ -25,6 +25,9 @@ int Init_enc_set_filesystem_encoding(void); /* newline.c */ void Init_newline(void); +/* namespace.c */ +void Init_enable_namespace(void); + /* vm.c */ void Init_BareVM(void); void Init_vm_objects(void); diff --git a/internal/namespace.h b/internal/namespace.h index ad1507b50c..54ab129d6e 100644 --- a/internal/namespace.h +++ b/internal/namespace.h @@ -51,7 +51,14 @@ typedef struct rb_namespace_struct rb_namespace_t; #define NAMESPACE_CC(cc) (cc ? NAMESPACE_METHOD_ENTRY(cc->cme_) : NULL) #define NAMESPACE_CC_ENTRIES(ccs) (ccs ? NAMESPACE_METHOD_ENTRY(ccs->cme) : NULL) -int rb_namespace_available(void); +RUBY_EXTERN bool ruby_namespace_enabled; + +static inline bool +rb_namespace_available(void) +{ + return ruby_namespace_enabled; +} + void rb_namespace_enable_builtin(void); void rb_namespace_disable_builtin(void); void rb_namespace_push_loading_namespace(const rb_namespace_t *); |
