1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
<title>tesseract: ELIST Class Reference</title>
8
<link href="tabs.css" rel="stylesheet" type="text/css"/>
9
<link href="doxygen.css" rel="stylesheet" type="text/css" />
10
<link href="navtree.css" rel="stylesheet" type="text/css"/>
11
<script type="text/javascript" src="jquery.js"></script>
12
<script type="text/javascript" src="resize.js"></script>
13
<script type="text/javascript" src="navtree.js"></script>
14
<script type="text/javascript">
15
$(document).ready(initResizable);
17
<link href="search/search.css" rel="stylesheet" type="text/css"/>
18
<script type="text/javascript" src="search/search.js"></script>
19
<script type="text/javascript">
20
$(document).ready(function() { searchBox.OnSelectItem(0); });
25
<div id="top"><!-- do not remove this div! -->
29
<table cellspacing="0" cellpadding="0">
31
<tr style="height: 56px;">
34
<td style="padding-left: 0.5em;">
35
<div id="projectname">tesseract
36
 <span id="projectnumber">3.03</span>
48
<!-- Generated by Doxygen 1.7.6.1 -->
49
<script type="text/javascript">
50
var searchBox = new SearchBox("searchBox", "search",false,'Search');
52
<div id="navrow1" class="tabs">
54
<li><a href="index.html"><span>Main Page</span></a></li>
55
<li><a href="pages.html"><span>Related Pages</span></a></li>
56
<li><a href="modules.html"><span>Modules</span></a></li>
57
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
58
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
59
<li><a href="files.html"><span>Files</span></a></li>
61
<div id="MSearchBox" class="MSearchBoxInactive">
63
<img id="MSearchSelect" src="search/mag_sel.png"
64
onmouseover="return searchBox.OnSearchSelectShow()"
65
onmouseout="return searchBox.OnSearchSelectHide()"
67
<input type="text" id="MSearchField" value="Search" accesskey="S"
68
onfocus="searchBox.OnSearchFieldFocus(true)"
69
onblur="searchBox.OnSearchFieldFocus(false)"
70
onkeyup="searchBox.OnSearchFieldChange(event)"/>
71
</span><span class="right">
72
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
78
<div id="navrow2" class="tabs2">
80
<li><a href="annotated.html"><span>Class List</span></a></li>
81
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
82
<li><a href="functions.html"><span>Class Members</span></a></li>
86
<div id="side-nav" class="ui-resizable side-nav-resizable">
88
<div id="nav-tree-contents">
91
<div id="splitbar" style="-moz-user-select:none;"
92
class="ui-resizable-handle">
95
<script type="text/javascript">
96
initNavTree('a00364.html','');
98
<div id="doc-content">
100
<div class="summary">
101
<a href="#pub-methods">Public Member Functions</a> |
102
<a href="#friends">Friends</a> </div>
103
<div class="headertitle">
104
<div class="title">ELIST Class Reference</div> </div>
106
<div class="contents">
107
<!-- doxytag: class="ELIST" -->
108
<p><code>#include <<a class="el" href="a00819_source.html">elst.h</a>></code></p>
110
<p><a href="a01564.html">List of all members.</a></p>
111
<table class="memberdecls">
112
<tr><td colspan="2"><h2><a name="pub-methods"></a>
113
Public Member Functions</h2></td></tr>
114
<tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#ae37e11e80a427b1ea5c43321d7f8af56">ELIST</a> ()</td></tr>
115
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a9e3110796c3e5189fa846b44122176ac">internal_clear</a> (void(*zapper)(<a class="el" href="a00369.html">ELIST_LINK</a> *))</td></tr>
116
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a7788b6c4e4b9623e43c58fe3b2976edd">empty</a> () const </td></tr>
117
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#abbe9f968d190bf5bf261e13af7bfc543">singleton</a> () const </td></tr>
118
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a8bd9cf7457dd6a17a68860b77abd379a">shallow_copy</a> (<a class="el" href="a00364.html">ELIST</a> *from_list)</td></tr>
119
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a575eb2690055500a718e5ea8c6740de3">internal_deep_copy</a> (<a class="el" href="a00369.html">ELIST_LINK</a> *(*copier)(<a class="el" href="a00369.html">ELIST_LINK</a> *), const <a class="el" href="a00364.html">ELIST</a> *list)</td></tr>
120
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#aec667b2b89d45695712f041bc3e09198">assign_to_sublist</a> (<a class="el" href="a00368.html">ELIST_ITERATOR</a> *start_it, <a class="el" href="a00368.html">ELIST_ITERATOR</a> *end_it)</td></tr>
121
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a571dfff8a1c0cef0f0120708a1b32185">length</a> () const </td></tr>
122
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a82eb75fa241c49b6ccdc92d96f810ece">sort</a> (int comparator(const void *, const void *))</td></tr>
123
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00369.html">ELIST_LINK</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a01af0288f3fadb4d222a03f3fe7c6811">add_sorted_and_find</a> (int comparator(const void *, const void *), bool unique, <a class="el" href="a00369.html">ELIST_LINK</a> *new_link)</td></tr>
124
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#af61dc70c4e992e1c05c843c0d541db80">add_sorted</a> (int comparator(const void *, const void *), bool unique, <a class="el" href="a00369.html">ELIST_LINK</a> *new_link)</td></tr>
125
<tr><td colspan="2"><h2><a name="friends"></a>
126
Friends</h2></td></tr>
127
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00364.html#a4aec179a718fd9e202aa2075bfaa5709">ELIST_ITERATOR</a></td></tr>
129
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
130
<div class="textblock">
131
<p>Definition at line <a class="el" href="a00819_source.html#l00114">114</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
132
</div><hr/><h2>Constructor & Destructor Documentation</h2>
133
<a class="anchor" id="ae37e11e80a427b1ea5c43321d7f8af56"></a><!-- doxytag: member="ELIST::ELIST" ref="ae37e11e80a427b1ea5c43321d7f8af56" args="()" -->
134
<div class="memitem">
135
<div class="memproto">
136
<table class="memname">
138
<td class="memname"><a class="el" href="a00364.html#ae37e11e80a427b1ea5c43321d7f8af56">ELIST::ELIST</a> </td>
140
<td class="paramname"></td><td>)</td>
141
<td><code> [inline]</code></td>
147
<p>Definition at line <a class="el" href="a00819_source.html#l00125">125</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
148
<div class="fragment"><pre class="fragment"> { <span class="comment">//constructor</span>
154
<hr/><h2>Member Function Documentation</h2>
155
<a class="anchor" id="af61dc70c4e992e1c05c843c0d541db80"></a><!-- doxytag: member="ELIST::add_sorted" ref="af61dc70c4e992e1c05c843c0d541db80" args="(int comparator(const void *, const void *), bool unique, ELIST_LINK *new_link)" -->
156
<div class="memitem">
157
<div class="memproto">
158
<table class="memname">
160
<td class="memname">bool <a class="el" href="a00364.html#af61dc70c4e992e1c05c843c0d541db80">ELIST::add_sorted</a> </td>
162
<td class="paramtype">int  </td>
163
<td class="paramname"><em>comparator</em>const void *, const void *, </td>
166
<td class="paramkey"></td>
168
<td class="paramtype">bool </td>
169
<td class="paramname"><em>unique</em>, </td>
172
<td class="paramkey"></td>
174
<td class="paramtype"><a class="el" href="a00369.html">ELIST_LINK</a> * </td>
175
<td class="paramname"><em>new_link</em> </td>
180
<td></td><td><code> [inline]</code></td>
186
<p>Definition at line <a class="el" href="a00819_source.html#l00175">175</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
187
<div class="fragment"><pre class="fragment"> {
188
<span class="keywordflow">return</span> (<a class="code" href="a00364.html#a01af0288f3fadb4d222a03f3fe7c6811">add_sorted_and_find</a>(comparator, unique, new_link) == new_link);
193
<a class="anchor" id="a01af0288f3fadb4d222a03f3fe7c6811"></a><!-- doxytag: member="ELIST::add_sorted_and_find" ref="a01af0288f3fadb4d222a03f3fe7c6811" args="(int comparator(const void *, const void *), bool unique, ELIST_LINK *new_link)" -->
194
<div class="memitem">
195
<div class="memproto">
196
<table class="memname">
198
<td class="memname"><a class="el" href="a00369.html">ELIST_LINK</a> * <a class="el" href="a00364.html#a01af0288f3fadb4d222a03f3fe7c6811">ELIST::add_sorted_and_find</a> </td>
200
<td class="paramtype">int  </td>
201
<td class="paramname"><em>comparator</em>const void *, const void *, </td>
204
<td class="paramkey"></td>
206
<td class="paramtype">bool </td>
207
<td class="paramname"><em>unique</em>, </td>
210
<td class="paramkey"></td>
212
<td class="paramtype"><a class="el" href="a00369.html">ELIST_LINK</a> * </td>
213
<td class="paramname"><em>new_link</em> </td>
224
<p>Definition at line <a class="el" href="a00818_source.html#l00172">172</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
225
<div class="fragment"><pre class="fragment"> {
226
<span class="comment">// Check for adding at the end.</span>
227
<span class="keywordflow">if</span> (last == NULL || comparator(&last, &new_link) < 0) {
228
<span class="keywordflow">if</span> (last == NULL) {
229
new_link->next = new_link;
230
} <span class="keywordflow">else</span> {
231
new_link->next = last->next;
232
last->next = new_link;
235
} <span class="keywordflow">else</span> {
236
<span class="comment">// Need to use an iterator.</span>
237
<a class="code" href="a00368.html">ELIST_ITERATOR</a> it(<span class="keyword">this</span>);
238
<span class="keywordflow">for</span> (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
239
<a class="code" href="a00369.html">ELIST_LINK</a>* link = it.data();
240
<span class="keywordtype">int</span> compare = comparator(&link, &new_link);
241
<span class="keywordflow">if</span> (compare > 0) {
242
<span class="keywordflow">break</span>;
243
} <span class="keywordflow">else</span> <span class="keywordflow">if</span> (unique && compare == 0) {
244
<span class="keywordflow">return</span> link;
247
<span class="keywordflow">if</span> (it.cycled_list())
248
it.add_to_end(new_link);
249
<span class="keywordflow">else</span>
250
it.add_before_then_move(new_link);
252
<span class="keywordflow">return</span> new_link;
257
<a class="anchor" id="aec667b2b89d45695712f041bc3e09198"></a><!-- doxytag: member="ELIST::assign_to_sublist" ref="aec667b2b89d45695712f041bc3e09198" args="(ELIST_ITERATOR *start_it, ELIST_ITERATOR *end_it)" -->
258
<div class="memitem">
259
<div class="memproto">
260
<table class="memname">
262
<td class="memname">void <a class="el" href="a00364.html#aec667b2b89d45695712f041bc3e09198">ELIST::assign_to_sublist</a> </td>
264
<td class="paramtype"><a class="el" href="a00368.html">ELIST_ITERATOR</a> * </td>
265
<td class="paramname"><em>start_it</em>, </td>
268
<td class="paramkey"></td>
270
<td class="paramtype"><a class="el" href="a00368.html">ELIST_ITERATOR</a> * </td>
271
<td class="paramname"><em>end_it</em> </td>
282
<p>Definition at line <a class="el" href="a00818_source.html#l00077">77</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
283
<div class="fragment"><pre class="fragment"> { <span class="comment">//from list end</span>
284
<span class="keyword">const</span> <a class="code" href="a00372.html">ERRCODE</a> LIST_NOT_EMPTY =
285
<span class="stringliteral">"Destination list must be empty before extracting a sublist"</span>;
287
<span class="preprocessor"> #ifndef NDEBUG</span>
288
<span class="preprocessor"></span> <span class="keywordflow">if</span> (!<span class="keyword">this</span>)
289
NULL_OBJECT.<a class="code" href="a00372.html#abc4cc64aad0ddb74c02523b69c95a1c1">error</a> (<span class="stringliteral">"ELIST::assign_to_sublist"</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
290
<span class="preprocessor"> #endif</span>
291
<span class="preprocessor"></span>
292
<span class="keywordflow">if</span> (!<a class="code" href="a00364.html#a7788b6c4e4b9623e43c58fe3b2976edd">empty</a> ())
293
LIST_NOT_EMPTY.<a class="code" href="a00372.html#abc4cc64aad0ddb74c02523b69c95a1c1">error</a> (<span class="stringliteral">"ELIST.assign_to_sublist"</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
295
last = start_it->extract_sublist (end_it);
300
<a class="anchor" id="a7788b6c4e4b9623e43c58fe3b2976edd"></a><!-- doxytag: member="ELIST::empty" ref="a7788b6c4e4b9623e43c58fe3b2976edd" args="() const " -->
301
<div class="memitem">
302
<div class="memproto">
303
<table class="memname">
305
<td class="memname">bool <a class="el" href="a00364.html#a7788b6c4e4b9623e43c58fe3b2976edd">ELIST::empty</a> </td>
307
<td class="paramname"></td><td>)</td>
308
<td> const<code> [inline]</code></td>
314
<p>Definition at line <a class="el" href="a00819_source.html#l00133">133</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
315
<div class="fragment"><pre class="fragment"> { <span class="comment">//is list empty?</span>
316
<span class="keywordflow">return</span> !last;
321
<a class="anchor" id="a9e3110796c3e5189fa846b44122176ac"></a><!-- doxytag: member="ELIST::internal_clear" ref="a9e3110796c3e5189fa846b44122176ac" args="(void(*zapper)(ELIST_LINK *))" -->
322
<div class="memitem">
323
<div class="memproto">
324
<table class="memname">
326
<td class="memname">void <a class="el" href="a00364.html#a9e3110796c3e5189fa846b44122176ac">ELIST::internal_clear</a> </td>
328
<td class="paramtype">void(*)(<a class="el" href="a00369.html">ELIST_LINK</a> *) </td>
329
<td class="paramname"><em>zapper</em></td><td>)</td>
336
<p>Definition at line <a class="el" href="a00818_source.html#l00041">41</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
337
<div class="fragment"><pre class="fragment"> {
338
<span class="comment">//ptr to zapper functn</span>
339
<a class="code" href="a00369.html">ELIST_LINK</a> *ptr;
340
<a class="code" href="a00369.html">ELIST_LINK</a> *next;
342
<span class="preprocessor"> #ifndef NDEBUG</span>
343
<span class="preprocessor"></span> <span class="keywordflow">if</span> (!<span class="keyword">this</span>)
344
NULL_OBJECT.error (<span class="stringliteral">"ELIST::internal_clear"</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
345
<span class="preprocessor"> #endif</span>
346
<span class="preprocessor"></span>
347
<span class="keywordflow">if</span> (!<a class="code" href="a00364.html#a7788b6c4e4b9623e43c58fe3b2976edd">empty</a> ()) {
348
ptr = last->next; <span class="comment">//set to first</span>
349
last->next = NULL; <span class="comment">//break circle</span>
350
last = NULL; <span class="comment">//set list empty</span>
351
<span class="keywordflow">while</span> (ptr) {
361
<a class="anchor" id="a575eb2690055500a718e5ea8c6740de3"></a><!-- doxytag: member="ELIST::internal_deep_copy" ref="a575eb2690055500a718e5ea8c6740de3" args="(ELIST_LINK *(*copier)(ELIST_LINK *), const ELIST *list)" -->
362
<div class="memitem">
363
<div class="memproto">
364
<table class="memname">
366
<td class="memname">void <a class="el" href="a00364.html#a575eb2690055500a718e5ea8c6740de3">ELIST::internal_deep_copy</a> </td>
368
<td class="paramtype"><a class="el" href="a00369.html">ELIST_LINK</a> *(*)(<a class="el" href="a00369.html">ELIST_LINK</a> *) </td>
369
<td class="paramname"><em>copier</em>, </td>
372
<td class="paramkey"></td>
374
<td class="paramtype">const <a class="el" href="a00364.html">ELIST</a> * </td>
375
<td class="paramname"><em>list</em> </td>
388
<a class="anchor" id="a571dfff8a1c0cef0f0120708a1b32185"></a><!-- doxytag: member="ELIST::length" ref="a571dfff8a1c0cef0f0120708a1b32185" args="() const " -->
389
<div class="memitem">
390
<div class="memproto">
391
<table class="memname">
393
<td class="memname"><a class="el" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> <a class="el" href="a00364.html#a571dfff8a1c0cef0f0120708a1b32185">ELIST::length</a> </td>
395
<td class="paramname"></td><td>)</td>
402
<p>Definition at line <a class="el" href="a00818_source.html#l00101">101</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
403
<div class="fragment"><pre class="fragment"> { <span class="comment">// count elements</span>
404
<a class="code" href="a00368.html">ELIST_ITERATOR</a> it(const_cast<ELIST*>(<span class="keyword">this</span>));
405
<a class="code" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> <a class="code" href="a01042.html#acd4ea858d7133e40518e0832ff9d94b2">count</a> = 0;
407
<span class="preprocessor"> #ifndef NDEBUG</span>
408
<span class="preprocessor"></span> <span class="keywordflow">if</span> (!<span class="keyword">this</span>)
409
NULL_OBJECT.error (<span class="stringliteral">"ELIST::length"</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
410
<span class="preprocessor"> #endif</span>
411
<span class="preprocessor"></span>
412
<span class="keywordflow">for</span> (it.mark_cycle_pt (); !it.cycled_list (); it.forward ())
414
<span class="keywordflow">return</span> <a class="code" href="a01042.html#acd4ea858d7133e40518e0832ff9d94b2">count</a>;
419
<a class="anchor" id="a8bd9cf7457dd6a17a68860b77abd379a"></a><!-- doxytag: member="ELIST::shallow_copy" ref="a8bd9cf7457dd6a17a68860b77abd379a" args="(ELIST *from_list)" -->
420
<div class="memitem">
421
<div class="memproto">
422
<table class="memname">
424
<td class="memname">void <a class="el" href="a00364.html#a8bd9cf7457dd6a17a68860b77abd379a">ELIST::shallow_copy</a> </td>
426
<td class="paramtype"><a class="el" href="a00364.html">ELIST</a> * </td>
427
<td class="paramname"><em>from_list</em></td><td>)</td>
428
<td><code> [inline]</code></td>
434
<p>Definition at line <a class="el" href="a00819_source.html#l00141">141</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
435
<div class="fragment"><pre class="fragment"> { <span class="comment">//beware destructors!!</span>
436
last = from_list->last;
441
<a class="anchor" id="abbe9f968d190bf5bf261e13af7bfc543"></a><!-- doxytag: member="ELIST::singleton" ref="abbe9f968d190bf5bf261e13af7bfc543" args="() const " -->
442
<div class="memitem">
443
<div class="memproto">
444
<table class="memname">
446
<td class="memname">bool <a class="el" href="a00364.html#abbe9f968d190bf5bf261e13af7bfc543">ELIST::singleton</a> </td>
448
<td class="paramname"></td><td>)</td>
449
<td> const<code> [inline]</code></td>
455
<p>Definition at line <a class="el" href="a00819_source.html#l00137">137</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
456
<div class="fragment"><pre class="fragment"> {
457
<span class="keywordflow">return</span> last ? (last == last->next) : <span class="keyword">false</span>;
462
<a class="anchor" id="a82eb75fa241c49b6ccdc92d96f810ece"></a><!-- doxytag: member="ELIST::sort" ref="a82eb75fa241c49b6ccdc92d96f810ece" args="(int comparator(const void *, const void *))" -->
463
<div class="memitem">
464
<div class="memproto">
465
<table class="memname">
467
<td class="memname">void <a class="el" href="a00364.html#a82eb75fa241c49b6ccdc92d96f810ece">ELIST::sort</a> </td>
469
<td class="paramtype">int  </td>
470
<td class="paramname"><em>comparator</em>const void *, const void *</td><td>)</td>
477
<p>Definition at line <a class="el" href="a00818_source.html#l00125">125</a> of file <a class="el" href="a00818_source.html">elst.cpp</a>.</p>
478
<div class="fragment"><pre class="fragment"> {
479
<a class="code" href="a00368.html">ELIST_ITERATOR</a> it(<span class="keyword">this</span>);
480
<a class="code" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> <a class="code" href="a01042.html#acd4ea858d7133e40518e0832ff9d94b2">count</a>;
481
<a class="code" href="a00369.html">ELIST_LINK</a> **base; <span class="comment">//ptr array to sort</span>
482
<a class="code" href="a00369.html">ELIST_LINK</a> **current;
483
<a class="code" href="a00831.html#aba1f582fd0168f3ff9225d8c90fa9eb8">inT32</a> i;
485
<span class="preprocessor"> #ifndef NDEBUG</span>
486
<span class="preprocessor"></span> <span class="keywordflow">if</span> (!<span class="keyword">this</span>)
487
NULL_OBJECT.error (<span class="stringliteral">"ELIST::sort"</span>, <a class="code" href="a00823.html#a8a3a2e51383909b357fcdf8eda803637a781ad2788df9e25c59a70894c7832096">ABORT</a>, NULL);
488
<span class="preprocessor"> #endif</span>
489
<span class="preprocessor"></span>
490
<span class="comment">/* Allocate an array of pointers, one per list element */</span>
491
count = <a class="code" href="a00364.html#a571dfff8a1c0cef0f0120708a1b32185">length</a> ();
492
base = (<a class="code" href="a00369.html">ELIST_LINK</a> **) malloc (count * <span class="keyword">sizeof</span> (<a class="code" href="a00369.html">ELIST_LINK</a> *));
494
<span class="comment">/* Extract all elements, putting the pointers in the array */</span>
496
<span class="keywordflow">for</span> (it.mark_cycle_pt (); !it.cycled_list (); it.forward ()) {
497
*current = it.extract ();
501
<span class="comment">/* Sort the pointer array */</span>
502
qsort ((<span class="keywordtype">char</span> *) base, count, <span class="keyword">sizeof</span> (*base), comparator);
504
<span class="comment">/* Rebuild the list from the sorted pointers */</span>
506
<span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a01042.html#acd4ea858d7133e40518e0832ff9d94b2">count</a>; i++) {
507
it.add_to_end (*current);
515
<hr/><h2>Friends And Related Function Documentation</h2>
516
<a class="anchor" id="a4aec179a718fd9e202aa2075bfaa5709"></a><!-- doxytag: member="ELIST::ELIST_ITERATOR" ref="a4aec179a718fd9e202aa2075bfaa5709" args="" -->
517
<div class="memitem">
518
<div class="memproto">
519
<table class="memname">
521
<td class="memname">friend class <a class="el" href="a00368.html">ELIST_ITERATOR</a><code> [friend]</code></td>
527
<p>Definition at line <a class="el" href="a00819_source.html#l00116">116</a> of file <a class="el" href="a00819_source.html">elst.h</a>.</p>
531
<hr/>The documentation for this class was generated from the following files:<ul>
532
<li>/usr/local/google/home/jbreiden/tesseract-ocr-read-only/ccutil/<a class="el" href="a00819_source.html">elst.h</a></li>
533
<li>/usr/local/google/home/jbreiden/tesseract-ocr-read-only/ccutil/<a class="el" href="a00818_source.html">elst.cpp</a></li>
535
</div><!-- contents -->
537
<!-- window showing the filter options -->
538
<div id="MSearchSelectWindow"
539
onmouseover="return searchBox.OnSearchSelectShow()"
540
onmouseout="return searchBox.OnSearchSelectHide()"
541
onkeydown="return searchBox.OnSearchSelectKey(event)">
542
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Defines</a></div>
544
<!-- iframe showing the search results (closed by default) -->
545
<div id="MSearchResultsWindow">
546
<iframe src="javascript:void(0)" frameborder="0"
547
name="MSearchResults" id="MSearchResults">
551
<div id="nav-path" class="navpath">
553
<li class="navelem"><a class="el" href="a00364.html">ELIST</a> </li>
555
<li class="footer">Generated on Mon Feb 3 2014 10:59:16 for tesseract by
556
<a href="http://www.doxygen.org/index.html">
557
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>