Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #23564

Re: Strange C developments

From jacob navia <jacob@spamsink.net>
Newsgroups comp.lang.c
Subject Re: Strange C developments
Date 2012-07-22 12:30 +0200
Organization lccwin
Message-ID <jugknh$s28$1@speranza.aioe.org> (permalink)
References (2 earlier) <judvvo$3r7$1@speranza.aioe.org> <jue270$9aj$1@speranza.aioe.org> <XqydnXsdeJjVKJfNnZ2dnUVZ_uKdnZ2d@posted.internetamerica> <juenil$rtt$1@speranza.aioe.org> <4-GdnYEX7OgWNpbNnZ2dnUVZ_qydnZ2d@posted.internetamerica>

Show all headers | View raw


Le 22/07/12 09:28, Gordon Burditt a écrit :
>> Le 21/07/12 15:57, Gordon Burditt a écrit :

> So, you make a rule that pointers to GC-memory must be kept in
> (a) auto variables,  (you may add or exclude "register variables" here)
    Registers are obviously looked for roots, so it is safe to store
    pointers in registers
> (b) static or global variables,
    Yes
> (c) gc_alloc()ed memory,
     Yes
> (d) function arguments,
    Yes
> or (e) function return values
   Yes
> and they must be in their original binary form.  Violating this causes
> undefined behavior.
>
Yes

>> Also, if you always keep pointers to everything never setting them to
>> NULL, and all pointers are global (or the roots are in the main()
>> function, the collector will never collect anything.
>
> Those aren't eligible for collection.  I might have global root pointers
> for linked lists, but the nodes I delete out of the list won't have
> anything pointing at it.  And if I need to delete the list, I can
> assign NULL then.
>
Yes. In general it is a good idea doing that even if you do not use the
collector. Suppose you do NOT set it to NULL and then (without a
collector) you free() the list. You have now a dangling pointer, that
is much WORST than a NULL pointer since many functions test for NULL but
can't test for dangling pointers.


> Do I have to set the pointer to NULL if it's stored in an auto
> variable (not in main()) and the ptr = NULL; statement would be
> immediately followed by a return statement?  (Don't look at
> stack frames for functions that have already returned.)
>

No, in general set pointers to NULL when using global variables or
functions that run for very long periods of time. In short lived
functions garbage will be collectible when the function exits so it
is a slight optiization to avoid that.

BUT

Setting a pointer to NUL is such a CHEAP operation (some nanoseconds)
that setting unused pointers ALWAYS to NULL will never affect really
the performance of your program.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Strange C developments Jase Schick <nospam@nospam.com> - 2012-07-20 21:14 +0000
  Re: Strange C developments Les Cargill <lcargill99@comcast.com> - 2012-07-20 18:03 -0500
  Re: Strange C developments "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2012-07-20 16:03 -0700
    Re: Strange C developments Tim Rentsch <txr@alumni.caltech.edu> - 2012-07-21 15:11 -0700
    Re: Strange C developments tom st denis <tom@iahu.ca> - 2012-08-02 06:08 -0700
      Re: Strange C developments Jens Gustedt <jens.gustedt@loria.fr> - 2012-08-02 21:23 +0200
        Re: Strange C developments tom st denis <tom@iahu.ca> - 2012-08-03 04:13 -0700
          Re: Strange C developments Noob <root@127.0.0.1> - 2012-08-03 13:19 +0200
          Re: Strange C developments Anders Wegge Keller <wegge@wegge.dk> - 2012-08-03 13:31 +0200
          Re: Strange C developments Jens Gustedt <jens.gustedt@loria.fr> - 2012-08-03 23:47 +0200
      Re: Strange C developments gwowen <gwowen@gmail.com> - 2012-08-03 02:20 -0700
  Re: Strange C developments Rui Maciel <rui.maciel@gmail.com> - 2012-07-21 01:25 +0100
  Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-20 19:38 -0500
  Re: Strange C developments Nobody <nobody@nowhere.com> - 2012-07-21 10:32 +0100
    Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-21 09:31 -0500
      Re: Strange C developments Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-07-21 17:38 +0100
        Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-21 12:58 -0500
        Re: Strange C developments Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-07-21 11:42 -0700
          Re: Strange C developments Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-07-21 20:13 +0100
            Re: Strange C developments Nobody <nobody@nowhere.com> - 2012-07-21 20:48 +0100
              Re: Strange C developments Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-07-21 23:32 +0100
  Re: Strange C developments jacob navia <jacob@spamsink.net> - 2012-07-21 11:43 +0200
    Re: Strange C developments Quentin Pope <qp19433@hotmail.NOSPAM.com> - 2012-07-21 10:23 +0000
      Re: Strange C developments jacob navia <jacob@spamsink.net> - 2012-07-21 13:01 +0200
        Re: Strange C developments gordonb.y4pdz@burditt.org (Gordon Burditt) - 2012-07-21 08:57 -0500
          Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-21 10:40 -0500
          Re: Strange C developments jacob navia <jacob@spamsink.net> - 2012-07-21 19:03 +0200
            Re: Strange C developments gordonb.5rhpu@burditt.org (Gordon Burditt) - 2012-07-22 02:08 -0500
              Re: Strange C developments jacob navia <jacob@spamsink.net> - 2012-07-22 12:32 +0200
                Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-22 08:26 -0500
            Re: Strange C developments Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-24 01:23 -0700
              Re: Strange C developments Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-07-24 05:36 -0700
                Re: Strange C developments Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-30 02:04 -0700
              Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-24 09:55 -0500
                Re: Strange C developments 88888 Dihedral <dihedral88888@googlemail.com> - 2012-08-02 06:44 -0700
                Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-08-03 08:48 -0500
          Re: Strange C developments jacob navia <jacob@spamsink.net> - 2012-07-21 19:06 +0200
            Re: Strange C developments gordonb.ibds9@burditt.org (Gordon Burditt) - 2012-07-22 02:28 -0500
              Re: Strange C developments jacob navia <jacob@spamsink.net> - 2012-07-22 12:30 +0200
              Re: Strange C developments Philip Lantz <prl@canterey.us> - 2012-07-24 00:58 -0700
        Re: Strange C developments Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-24 01:13 -0700
      Re: Strange C developments Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-07-21 05:44 -0700
        Re: Strange C developments Tim Rentsch <txr@alumni.caltech.edu> - 2012-07-21 15:31 -0700
          Re: Strange C developments Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-07-21 16:59 -0700
            Re: Strange C developments Tim Rentsch <txr@alumni.caltech.edu> - 2012-07-21 23:46 -0700
              Re: Strange C developments "io_x" <a@b.c.invalid> - 2012-07-22 10:37 +0200
                Re: Strange C developments Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-07-22 03:28 -0700
                Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-22 09:05 -0500
                Re: Strange C developments Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-24 02:10 -0700
                Re: Strange C developments "io_x" <a@b.c.invalid> - 2012-07-27 20:47 +0200
                Re: Strange C developments Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-30 02:09 -0700
                Re: Strange C developments "BartC" <bc@freeuk.com> - 2012-07-30 13:05 +0100
                Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-08-03 10:45 -0500
                Re: Strange C developments "io_x" <a@b.c.invalid> - 2012-07-30 16:52 +0200
                Re: Strange C developments "io_x" <a@b.c.invalid> - 2012-07-30 18:26 +0200
                Re: Strange C developments Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-08-03 12:12 -0700
                Re: Strange C developments "BartC" <bc@freeuk.com> - 2012-08-04 12:18 +0100
                Re: Strange C developments Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2012-08-10 09:50 +0300
                Re: Strange C developments Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 11:19 -0700
                Re: Strange C developments "io_x" <a@b.c.invalid> - 2012-09-09 12:06 +0200
                Re: Strange C developments Kaz Kylheku <kaz@kylheku.com> - 2012-09-09 05:25 +0000
          Re: Strange C developments Melzzzzz <mel@zzzzz.com> - 2012-07-22 02:48 +0200
          Re: Strange C developments William Ahern <william@wilbur.25thandClement.com> - 2012-07-21 21:45 -0700
            Re: Strange C developments Tim Rentsch <txr@alumni.caltech.edu> - 2012-07-22 02:40 -0700
              Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-22 10:38 -0500
          Re: Strange C developments William Ahern <william@wilbur.25thandClement.com> - 2012-07-21 22:38 -0700
            Re: Strange C developments jacob navia <jacob@spamsink.net> - 2012-07-22 08:43 +0200
            Re: Strange C developments "BartC" <bc@freeuk.com> - 2012-07-22 11:24 +0100
              Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-08-03 09:09 -0500
                Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-08-03 16:54 -0500
          Re: Strange C developments Tim Rentsch <txr@alumni.caltech.edu> - 2012-07-21 23:16 -0700
            Re: Strange C developments Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2012-07-22 17:50 +0300
              Re: Strange C developments BGB <cr88192@hotmail.com> - 2012-07-22 11:27 -0500
                Re: Strange C developments Ike Naar <ike@iceland.freeshell.org> - 2012-07-22 20:55 +0000
                Re: Strange C developments Philip Lantz <prl@canterey.us> - 2012-07-24 00:56 -0700
                Re: Strange C developments Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-07-24 01:57 -0700
              Re: Strange C developments Tim Rentsch <txr@alumni.caltech.edu> - 2012-09-07 11:20 -0700
      Re: Strange C developments Tim Rentsch <txr@alumni.caltech.edu> - 2012-07-21 15:13 -0700
  Re: Strange C developments John Bode <jfbode1029@gmail.com> - 2012-07-23 14:59 -0700

csiph-web