lkml.org 
[lkml]   [2002]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: Generic list push/pop
    Date
    On Sunday 18 August 2002 21:28, you wrote:
    > Hi,
    >
    > On Sun, 18 Aug 2002, Daniel Phillips wrote:
    > > #define push_list(_LIST_, _NODE_) \
    > > _NODE_->next = _LIST_; \
    > > _LIST_ =_NODE_;
    > >
    > > #define pop_list(_LIST_) ({ \
    > > typeof(_LIST_) _NODE_ = _LIST_; \
    > > _LIST_ = _LIST_->next; \
    > > _NODE_; })
    >
    > How do we protect against:
    >
    > push_list(getFuckingList(), node);
    > node_t node = pop_list(getFuckingList());
    >
    > ? Couldn't this break the _LIST_ = _LIST_->next; ?

    Yes, there are various sloppy things there, including missing parens
    around args and missing wrapper around the statement. It should also
    be written to evaluate each arg exactly once. With all that done it
    will be even uglier but at least it will work reliably.

    --
    Daniel

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:28    [W:0.022 / U:29.616 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site