# Re: Smoking out C extension mistakes

**URL:** <https://www.ruby-forum.com/t/re-smoking-out-c-extension-mistakes/52164>\
**Category:** Ruby\
**Created:** [January 11, 2006, 5:10pm UTC](https://www.ruby-forum.com/t/re-smoking-out-c-extension-mistakes/52164 "2006-01-11T17:10:38Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![BergerS\_Daniel](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bc8723/32.png) [@BergerS\_Daniel](https://www.ruby-forum.com/u/BergerS_Daniel)\
**Post date:** [January 11, 2006, 5:10pm UTC](https://www.ruby-forum.com/t/re-smoking-out-c-extension-mistakes/52164/1 "2006-01-11T17:10:38Z")

</div>

> P\> You could use:  
> P\> if(foo == Qnil)  
> P\> instead of using the NIL\_P macro.
> 
> #define NIL\_P(v) ((VALUE)(v) == Qnil)
> 
> 🙂
> 
> Guy Decoux

So, is there a way to catch my mistake or not Guy?

- Dan

---

<div class="post-metadata">

**Author:** ![BergerS\_Daniel](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/bc8723/32.png) [@BergerS\_Daniel](https://www.ruby-forum.com/u/BergerS_Daniel)\
**Post date:** [January 11, 2006, 5:24pm UTC](https://www.ruby-forum.com/t/re-smoking-out-c-extension-mistakes/52164/2 "2006-01-11T17:24:00Z")

</div>

> > > > > “B” == Berger, Daniel [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

B\> So, is there a way to catch my mistake or not Guy?

You can’t have a problem with NIL\_P(), it just use ==

But you can have problems with other macros, like

RSTRING(str)

str must be a valid struct RString, otherwise just expect that ruby  
crash when it use the result 🙂

Guy Decoux
