这篇教程C++ GetProcPtr函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetProcPtr函数的典型用法代码示例。如果您正苦于以下问题:C++ GetProcPtr函数的具体用法?C++ GetProcPtr怎么用?C++ GetProcPtr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetProcPtr函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: proc_callstatic VALUEproc_call(VALUE procval, SEL sel, int argc, const VALUE *argv){#if 0 rb_proc_t *proc; rb_block_t *blockptr = 0; GetProcPtr(procval, proc); if (BUILTIN_TYPE(proc->block.iseq) != T_NODE && proc->block.iseq->arg_block != -1) { if (rb_block_given_p()) { rb_proc_t *proc; VALUE procval; procval = rb_block_proc(); GetProcPtr(procval, proc); blockptr = &proc->block; } } return vm_invoke_proc(GET_THREAD(), proc, proc->block.self, argc, argv, blockptr);#endif rb_vm_block_t *proc; GetProcPtr(procval, proc); return rb_vm_block_eval(proc, argc, argv);}
开发者ID:MSch,项目名称:MacRuby,代码行数:27,
示例2: proc_eqstatic VALUEproc_eq(VALUE self, SEL sel, VALUE other){ if (self == other) { return Qtrue; } else if (rb_obj_is_kind_of(other, rb_cProc)) { rb_vm_block_t *self_b, *other_b; GetProcPtr(self, self_b); GetProcPtr(other, other_b); return self_b == other_b ? Qtrue : Qfalse; } return Qfalse;}
开发者ID:MSch,项目名称:MacRuby,代码行数:14,
示例3: proc_dupstatic VALUEproc_dup(VALUE self){ VALUE procval = proc_alloc(rb_cProc); rb_proc_t *src, *dst; GetProcPtr(self, src); GetProcPtr(procval, dst); dst->block = src->block; dst->envval = src->envval; dst->safe_level = dst->safe_level; dst->special_cref_stack = src->special_cref_stack; return procval;}
开发者ID:RWB01,项目名称:Code-Translator,代码行数:15,
示例4: rb_vm_make_procVALUErb_vm_make_proc(rb_thread_t *th, const rb_block_t *block, VALUE klass){ VALUE procval, envval, blockprocval = 0; rb_proc_t *proc; rb_control_frame_t *cfp = RUBY_VM_GET_CFP_FROM_BLOCK_PTR(block); if (block->proc) { rb_bug("rb_vm_make_proc: Proc value is already created."); } if (GC_GUARDED_PTR_REF(cfp->lfp[0])) { rb_proc_t *p; blockprocval = vm_make_proc_from_block( th, (rb_block_t *)GC_GUARDED_PTR_REF(*cfp->lfp)); GetProcPtr(blockprocval, p); *cfp->lfp = GC_GUARDED_PTR(&p->block); } envval = rb_vm_make_env_object(th, cfp); if (PROCDEBUG) { check_env_value(envval); } procval = rb_proc_alloc(klass); GetProcPtr(procval, proc); proc->blockprocval = blockprocval; proc->block.self = block->self; proc->block.lfp = block->lfp; proc->block.dfp = block->dfp; proc->block.iseq = block->iseq; proc->block.proc = procval; proc->envval = envval; proc->safe_level = th->safe_level; if (VMDEBUG) { if (th->stack < block->dfp && block->dfp < th->stack + th->stack_size) { rb_bug("invalid ptr: block->dfp"); } if (th->stack < block->lfp && block->lfp < th->stack + th->stack_size) { rb_bug("invalid ptr: block->lfp"); } } return procval;}
开发者ID:qnighy,项目名称:ruby-1.9.2p0,代码行数:48,
示例5: proc_hashstatic VALUEproc_hash(VALUE self, SEL sel){ rb_vm_block_t *b; GetProcPtr(self, b); return LONG2FIX(b);}
开发者ID:MSch,项目名称:MacRuby,代码行数:7,
示例6: rb_proc_arityintrb_proc_arity(VALUE proc){ rb_vm_block_t *b; GetProcPtr(proc, b); return rb_vm_arity_n(b->arity);}
开发者ID:MSch,项目名称:MacRuby,代码行数:7,
示例7: proc_dupstatic VALUEproc_dup(VALUE self, SEL sel){ rb_vm_block_t *src; GetProcPtr(self, src); return Data_Wrap_Struct(CLASS_OF(self), NULL, NULL, src);}
开发者ID:MSch,项目名称:MacRuby,代码行数:7,
示例8: rb_proc_call_with_blockVALUErb_proc_call_with_block(VALUE self, int argc, VALUE *argv, VALUE pass_procval){ rb_proc_t *proc; rb_block_t *block = 0; GetProcPtr(self, proc); if (!NIL_P(pass_procval)) { rb_proc_t *pass_proc; GetProcPtr(pass_procval, pass_proc); block = &pass_proc->block; } return rb_vm_invoke_proc(GET_THREAD(), proc, proc->block.self, argc, argv, block);}
开发者ID:srirammca53,项目名称:update_status,代码行数:16,
示例9: proc_yieldstatic VALUEproc_yield(int argc, VALUE *argv, VALUE procval){ rb_proc_t *proc; GetProcPtr(procval, proc); return th_invoke_proc(GET_THREAD(), proc, proc->block.self, argc, argv);}
开发者ID:RWB01,项目名称:Code-Translator,代码行数:7,
示例10: proc_dump/* * call-seq: * proc.dump(limit) => String * * Dump a Proc to a String. */static VALUE proc_dump(VALUE self, VALUE limit){ if(rb_safe_level() >= 4) { /* no access to potentially sensitive data from the sandbox */ rb_raise(rb_eSecurityError, "Insecure: can't dump proc"); } {#ifdef RUBY_VM rb_proc_t * p; VALUE iseq, str; rb_iseq_t * iseqdat; GetProcPtr(self, p); iseq = p->block.iseq->self; iseqdat = iseq_check(iseq); iseqdat->type = ISEQ_TYPE_TOP; /* TODO: is this right? */ str = marshal_dump(iseq, limit); return str;#else struct BLOCK * b; VALUE body, var, arr; Data_Get_Struct(self, struct BLOCK, b); body = wrap_node(b->body); var = wrap_node(b->var); arr = rb_assoc_new(body, var); return marshal_dump(arr, limit);#endif }}
开发者ID:shmulim,项目名称:ruby-internal,代码行数:37,
示例11: proc_to_sstatic VALUEproc_to_s(VALUE self){ VALUE str = 0; rb_proc_t *proc; const char *cname = rb_obj_classname(self); rb_iseq_t *iseq; const char *is_lambda; GetProcPtr(self, proc); iseq = proc->block.iseq; is_lambda = proc->is_lambda ? " (lambda)" : ""; if (RUBY_VM_NORMAL_ISEQ_P(iseq)) { int line_no = 0; if (iseq->insn_info_table) { line_no = rb_iseq_first_lineno(iseq); } str = rb_sprintf("#<%s:%[email C++ GetProcessAffinityMask函数代码示例 C++ GetProcAddress函数代码示例
|