On 01/04/2013, at 8:49 PM, [email protected] wrote:
> Updated Branches:
> refs/heads/master 366fab2ae -> 3050ce9bd
>
>
> TS-1713 just make ts can build on clang
>
>
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/3050ce9b
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/3050ce9b
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/3050ce9b
>
> Branch: refs/heads/master
> Commit: 3050ce9bdfe65016b93d26d213d76cf39d46e804
> Parents: 366fab2
> Author: weijin <[email protected]>
> Authored: Tue Apr 2 11:47:29 2013 +0800
> Committer: weijin <[email protected]>
> Committed: Tue Apr 2 11:48:07 2013 +0800
>
> ----------------------------------------------------------------------
> iocore/hostdb/I_HostDBProcessor.h | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/3050ce9b/iocore/hostdb/I_HostDBProcessor.h
> ----------------------------------------------------------------------
> diff --git a/iocore/hostdb/I_HostDBProcessor.h
> b/iocore/hostdb/I_HostDBProcessor.h
> index 1408810..28f1647 100644
> --- a/iocore/hostdb/I_HostDBProcessor.h
> +++ b/iocore/hostdb/I_HostDBProcessor.h
> @@ -355,11 +355,12 @@ struct HostDBRoundRobin
> unsigned short length;
> ink_time_t timed_rr_ctime;
>
> - HostDBInfo info[];
> + HostDBInfo info[1];
I'm not sure that this really addresses the issue. The clang warning is telling
us that it's dangerous to use manual memory management trick with non-POD data
types. I'd tend to agree with this. We should turn HostDBInfo into a POD and
add some static init functions to use as constructors/destructors (eg. the init
code in HostDBContinuation::dnsEvent() is pretty janky.
>
> static int size(int nn, int srv_len = 0)
> {
> - return INK_ALIGN((int) (sizeof(HostDBRoundRobin) + nn *
> sizeof(HostDBInfo) + srv_len), 8);
> + ink_assert(nn > 0);
> + return INK_ALIGN((int) (sizeof(HostDBRoundRobin) + (nn-1) *
> sizeof(HostDBInfo) + srv_len), 8);
> }
>
> /** Find the index of @a addr in member @a info.
>