<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
Hi!<br>
<br>
I removed CLICK_DECLS and CLICK_ENDDECLS as well as the duplicate lines
57 and 58 from your code and used ac++ 1.0 to compile it without any
error message. What is the difference in your setting? Is there
anything magic behind the two macros?<br>
<br>
Best regards,<br>
<br>
Olaf<br>
<br>
<br>
On 06/27/2011 06:03 PM, Guilherme . wrote:
<blockquote
cite="mid:BANLkTi=J7iytx8xt-+W3qi1WJq2cLJ9jYg@mail.gmail.com"
type="cite">Hi!<br>
<br>
The ac++ is reporting following error:<br>
<br>
include//click/bighashmap_arena.hh:71: error: `unuse' is not a member
of `HashMap_Arena'<br>
<br>
But as one can clearly see from the header file it is:<br>
<br>
1 // -*- c-basic-offset: 4; related-file-name:
"../../lib/bighashmap_arena.cc" -*-<br>
2 #ifndef CLICK_BIGHASHMAP_ARENA_HH<br>
3 #define CLICK_BIGHASHMAP_ARENA_HH<br>
4 CLICK_DECLS<br>
5 <br>
6 class HashMap_Arena { public:<br>
7 <br>
8 HashMap_Arena(uint32_t element_size);<br>
9 <br>
10 void use() { _refcount++; }<br>
11 void unuse();<br>
12 <br>
13 bool detached() const { return _detached; }<br>
14 void detach() { _detached = true; }<br>
15 <br>
16 void *alloc();<br>
17 void free(void *);<br>
18 <br>
19 private:<br>
20 <br>
21 struct Link {<br>
22 Link *next;<br>
23 };<br>
24 Link *_free;<br>
25 <br>
26 enum { NELEMENTS = 127 }; // not a power of 2 so we don't fall
into a<br>
27 // too-large bucket<br>
28 char *_cur_buffer;<br>
29 int _buffer_pos;<br>
30 <br>
31 uint32_t _element_size;<br>
32 <br>
33 char **_buffers;<br>
34 int _nbuffers;<br>
35 int _buffers_cap;<br>
36 <br>
37 uint32_t _refcount;<br>
38 bool _detached;<br>
39 <br>
40 HashMap_Arena(const HashMap_Arena &);<br>
41 ~HashMap_Arena();<br>
42 HashMap_Arena &operator=(const HashMap_Arena &);<br>
43 <br>
44 void *hard_alloc();<br>
45 <br>
46 friend class Link; // shut up, compiler<br>
47 <br>
48 };<br>
49 <br>
50 class HashMap_ArenaFactory { public:<br>
51 <br>
52 HashMap_ArenaFactory();<br>
53 virtual ~HashMap_ArenaFactory();<br>
54 <br>
55 static void static_initialize();<br>
56 static void static_cleanup();<br>
57 <br>
58 static HashMap_Arena *get_arena(uint32_t, HashMap_ArenaFactory
* =0);<br>
57 <br>
58 static HashMap_Arena *get_arena(uint32_t, HashMap_ArenaFactory
* =0);<br>
59 virtual HashMap_Arena *get_arena_func(uint32_t);<br>
60 <br>
61 private:<br>
62 <br>
63 HashMap_Arena **_arenas[2];<br>
64 int _narenas[2];<br>
65 <br>
66 static HashMap_ArenaFactory *the_factory;<br>
67 <br>
68 };<br>
69 <br>
70 /*inline*/ void<br>
71 HashMap_Arena::unuse()<br>
72 {<br>
73 _refcount--;<br>
74 if (_refcount <= 0)<br>
75 delete this;<br>
76 }<br>
77 <br>
78 inline void *<br>
79 HashMap_Arena::alloc()<br>
80 {<br>
81 if (_free) {<br>
82 void *ret = _free;<br>
83 _free = _free->next;<br>
84 return ret;<br>
85 } else if (_buffer_pos > 0) {<br>
86 _buffer_pos -= _element_size;<br>
87 return _cur_buffer + _buffer_pos;<br>
88 } else<br>
89 return hard_alloc();<br>
90 }<br>
91 <br>
92 inline void<br>
93 HashMap_Arena::free(void *v)<br>
94 {<br>
95 Link *link = reinterpret_cast<Link *>(v);<br>
96 link->next = _free;<br>
97 _free = link;<br>
98 }<br>
99 <br>
100 CLICK_ENDDECLS<br>
101 #endif<br>
<br>
The 'inline' keyword was uncommented by me just to make sure that
wasn't the breaking point.<br>
<br>
Anyone got any ideas why this might be breaking?<br>
<br>
Thank you,<br>
Guilherme<br>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
aspectc-user mailing list
<a class="moz-txt-link-abbreviated" href="mailto:aspectc-user@aspectc.org">aspectc-user@aspectc.org</a>
<a class="moz-txt-link-freetext" href="http://www.aspectc.org/mailman/listinfo/aspectc-user">http://www.aspectc.org/mailman/listinfo/aspectc-user</a>
</pre>
</blockquote>
<br>
</body>
</html>