iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
自我挑戰組

C again系列 第 8

ruby_process_options

  • 分享至 

  • xImage
  •  

從 ruby_options() 用到 TAG_NONE 在 vm_core.h 裡找到 TAG 的定義,名字都是熟悉的 ruby 操作,應該是直接對應,之後再進一步看:

#define TAG_NONE	RUBY_TAG_NONE
#define TAG_RETURN	RUBY_TAG_RETURN
#define TAG_BREAK	RUBY_TAG_BREAK
#define TAG_NEXT	RUBY_TAG_NEXT
#define TAG_RETRY	RUBY_TAG_RETRY
#define TAG_REDO	RUBY_TAG_REDO
#define TAG_RAISE	RUBY_TAG_RAISE
#define TAG_THROW	RUBY_TAG_THROW
#define TAG_FATAL	RUBY_TAG_FATAL
#define TAG_MASK	RUBY_TAG_MASK

ruby_options() 裡實際執行的是 ruby_process_options(),它們外層的 ruby_run_node() 預期要收到 iseq,再呼叫 rb_ec_exec_node 執行 iseq 內容


上一篇
ruby_options()
下一篇
iseq & VALUE & rb_iseq_struct
系列文
C again30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言