summaryrefslogtreecommitdiff
path: root/vm_core.h
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-09-03 11:32:02 -0700
committerGitHub <noreply@github.com>2019-09-03 11:32:02 -0700
commit39c3252cd175074581855e5f9681cc723c15ff72 (patch)
treed10d0915b8611efeb9dd231542c20b6bc60609a4 /vm_core.h
parentf702cd6ace7e134714d42ffb1606c25b5ded24c7 (diff)
Merge pull request #2422 from jeremyevans/rb_keyword_given_p
Add rb_keyword_given_p to the C-API
Notes
Notes: Merged-By: jeremyevans <code@jeremyevans.net>
Diffstat (limited to 'vm_core.h')
-rw-r--r--vm_core.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/vm_core.h b/vm_core.h
index 1ebcea7a2d..eec80e41ef 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -1166,11 +1166,11 @@ typedef rb_control_frame_t *
enum {
/* Frame/Environment flag bits:
- * MMMM MMMM MMMM MMMM ____ __FF FFFF EEEX (LSB)
+ * MMMM MMMM MMMM MMMM ____ _FFF FFFF EEEX (LSB)
*
* X : tag for GC marking (It seems as Fixnum)
* EEE : 3 bits Env flags
- * FF..: 6 bits Frame flags
+ * FF..: 7 bits Frame flags
* MM..: 15 bits frame magic (to check frame corruption)
*/
@@ -1194,6 +1194,7 @@ enum {
VM_FRAME_FLAG_CFRAME = 0x0080,
VM_FRAME_FLAG_LAMBDA = 0x0100,
VM_FRAME_FLAG_MODIFIED_BLOCK_PARAM = 0x0200,
+ VM_FRAME_FLAG_CFRAME_KW = 0x0400,
/* env flag */
VM_ENV_FLAG_LOCAL = 0x0002,
@@ -1249,6 +1250,12 @@ VM_FRAME_LAMBDA_P(const rb_control_frame_t *cfp)
}
static inline int
+VM_FRAME_CFRAME_KW_P(const rb_control_frame_t *cfp)
+{
+ return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_CFRAME_KW) != 0;
+}
+
+static inline int
VM_FRAME_FINISHED_P(const rb_control_frame_t *cfp)
{
return VM_ENV_FLAGS(cfp->ep, VM_FRAME_FLAG_FINISH) != 0;