Greg Stark <st...@enterprisedb.com> writes: >> Yeah, it looks like the memcpy is sometimes unnecessary because res and >> ptr point to the same place. It might be worth cleaning up just to >> avoid the valgrind warning, but I doubt it would save any noticeable >> number of cycles.
> I assume valgrind is warning about it because memcpy's behaviour is > undefined if the blocks overlap. I'm having trouble imagining an > implementation that would fail if they're precisely the same pointer > though. Me either. A counterexample is that compilers typically implement structure assignment via memcpy, and the behavior of "*d = *s" is not undefined merely because d and s point to the same place. In this particular example it looks like res and ptr might be the same often enough that adding an "if (res != ptr)" test would save enough cycles to be worth its cost ... but it's pretty marginal. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers