This file is indexed.

/usr/share/GNUstep/Documentation/Developer/BaseAdditions/Reference/GCObject.gsdoc is in gnustep-base-doc 1.25.1-2ubuntu3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
<?xml version="1.0"?>
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 1.0.4//EN" "http://www.gnustep.org/gsdoc-1_0_4.dtd">
<gsdoc base="GCObject" up="BaseAdditions">
  <head>
    <title>GCObject documentation</title>
    <author name="Richard Frith-Macdonald">
      <email address="rfm@gnu.org">
        rfm@gnu.org
      </email>
    </author>
    <copy>2002 Free Software Foundation, Inc.</copy>
  </head>
  <body>
    <front><contents /></front>
    <chapter>
      <heading>
        Software documentation for the GCArray class
      </heading>
      <class name="GCArray" super="NSArray" ovadd="1.0.0">
        <declared>GNUstepBase/GCObject.h</declared>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <ivariable type="id*" name="_contents" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="unsigned int" name="_count" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="BOOL*" name="_isGCObject" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="gcInfo" name="gc" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
      </class>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the GCDictionary class
      </heading>
      <class name="GCDictionary" super="NSDictionary" ovadd="1.0.0">
        <declared>GNUstepBase/GCObject.h</declared>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <ivariable type="NSMapTable*" name="_map" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="gcInfo" name="gc" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
      </class>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the GCMutableArray class
      </heading>
      <class name="GCMutableArray" super="NSMutableArray" ovadd="1.0.0">
        <declared>GNUstepBase/GCObject.h</declared>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <ivariable type="id*" name="_contents" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="unsigned int" name="_count" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="BOOL*" name="_isGCObject" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="unsigned int" name="_maxCount" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="gcInfo" name="gc" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
      </class>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the GCMutableDictionary
        class
      </heading>
      <class name="GCMutableDictionary" super="NSMutableDictionary" ovadd="1.0.0">
        <declared>GNUstepBase/GCObject.h</declared>
        <desc>
          <em>Description forthcoming.</em>
        </desc>
        <ivariable type="NSMapTable*" name="_map" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          </desc>
        </ivariable>
        <ivariable type="gcInfo" name="gc" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
      </class>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the GCObject class
      </heading>
      <class name="GCObject" super="NSObject" ovadd="1.0.0">
        <declared>GNUstepBase/GCObject.h</declared>
        <desc>
          <p>
            The GCObject class is both the base class for all
            garbage collected objects, and an infrastructure
            for handling garbage collection.
          </p>
          <p>
            It maintains a list of all garbage collectable objects
            and provides a method to run a garbage collection pass
            on those objects.
          </p>
        </desc>
        <ivariable type="gcInfo" name="gc" validity="protected" ovadd="1.0.0">
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </ivariable>
        <method type="void" factory="yes" ovadd="1.0.0">
          <sel>gcCollectGarbage</sel>
          <desc>
            <p>
              This method runs a garbage collection, causing
              unreferenced objects to be deallocated. This
              is done using a simple three pass algorithm -
            </p>
            <deflist>
              <term>Pass 1</term>
              <desc>
                All the garbage collectable objects are sent a
                <ref type="method" id="-gcDecrementRefCountOfContainedObjects">-gcDecrementRefCountOfContainedObjects</ref> message.
              </desc>
              <term>Pass 2</term>
              <desc>
                All objects having a refCount greater than 0 are
                sent an
                <ref type="method" id="-gcIncrementRefCountOfContainedObjects">-gcIncrementRefCountOfContainedObjects</ref> message.
              </desc>
              <term>Pass 3</term>
              <desc>
                All the objects that still have the refCount of 0
                are part of cyclic graphs and none of the objects
                from this graph are held by some object outside
                graph. These objects receive the
                <ref type="method" id="-dealloc">
                  -dealloc
                </ref>
                message. In this method they should send the
                <ref type="method" id="-dealloc">
                  -dealloc
                </ref>
                message to any garbage collectable (GCObject
                and subclass) instances they contain.
              </desc>
            </deflist>
            <p>
              During garbage collection, the
              <ref type="method" id="+gcIsCollecting">
                +gcIsCollecting
              </ref>
              method returns <code>YES</code>.
            </p>
          </desc>
        </method>
        <method type="BOOL" factory="yes" ovadd="1.0.0">
          <sel>gcIsCollecting</sel>
          <desc>
            Returns a flag to indicate whether a garbage
            collection is in progress.
          </desc>
        </method>
        <method type="void" factory="yes" ovadd="1.0.0">
          <sel>gcObjectWillBeDeallocated:</sel>
          <arg type="GCObject*">anObject</arg>
          <desc>
            Called to remove <var>anObject</var> from the list
            of garbage collectable objects. <br /> This method is
            provided so that classes which are not subclasses
            of GCObject (but which have the same initial instance
            variable layout) can use multiple inheritance
            (behaviors) to act as GCObject instances, but
            can have their own
            <ref type="method" id="-dealloc">
              -dealloc
            </ref>
            methods. <br /> These classes should call this in
            their own
            <ref type="method" id="-dealloc">
              -dealloc
            </ref>
            methods.
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>gcDecrementRefCount</sel>
          <desc>
            Decrements the garbage collection reference
            count for the receiver. <br />
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>gcDecrementRefCountOfContainedObjects</sel>
          <desc>
            <p>
              Marks the receiver as not having been visited in
              the current garbage collection process (first pass of
              collection).
            </p>
            <p>
              All container subclasses should override this method
              to call the super implementation then decrement the
              ref counts of their contents as well as sending the
              <ref type="method" id="-gcDecrementRefCountOfContainedObjects">-gcDecrementRefCountOfContainedObjects</ref> message to each of them.
            </p>
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>gcIncrementRefCount</sel>
          <desc>
            Increments the garbage collection reference
            count for the receiver. <br />
          </desc>
        </method>
        <method type="BOOL" ovadd="1.0.0">
          <sel>gcIncrementRefCountOfContainedObjects</sel>
          <desc>
            <p>
              Checks to see if the receiver has already been
              visited in the current garbage collection
              process, and either marks the receiver as
              visited (and returns <code>YES</code>) or returns
              <code>NO</code> to indicate that it had already
              been visited.
            </p>
            <p>
              All container subclasses should override this method
              to call the super implementation then, if the method
              returns <code>YES</code>, increment the reference
              count of any contained objects and send the
              <ref type="method" id="-gcIncrementRefCountOfContainedObjects">-gcIncrementRefCountOfContainedObjects</ref> to each of the contained objects too.
            </p>
          </desc>
        </method>
      </class>
    </chapter>
    <chapter>
      <heading>
        Software documentation for the GCObject(Extra)
        category
      </heading>
      <category name="Extra" class="GCObject" ovadd="1.0.0">
        <declared>GNUstepBase/GCObject.h</declared>
        <desc>
          This category implements accessor methods for the
          instance variables used for garbage collecting.
          If/when we can ensure that all garbage collecting
          classes use the same initial ivar layout, we can
          remove these methods and the garbage collector can
          access the ivars directly, making a pretty big
          performance improvement during collecting. <br />
          NB. These methods must *only* be used by the garbage
          collecting process or in methods called from the
          garbage collector. Anything else is not thread-safe.
        </desc>
        <method type="BOOL" ovadd="1.0.0">
          <sel>gcAlreadyVisited</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="GCObject*" ovadd="1.0.0">
          <sel>gcNextObject</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="GCObject*" ovadd="1.0.0">
          <sel>gcPreviousObject</sel>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="GCObject*" ovadd="1.0.0">
          <sel>gcSetNextObject:</sel>
          <arg type="GCObject*">anObject</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="GCObject*" ovadd="1.0.0">
          <sel>gcSetPreviousObject:</sel>
          <arg type="GCObject*">anObject</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
        <method type="void" ovadd="1.0.0">
          <sel>gcSetVisited:</sel>
          <arg type="BOOL">flag</arg>
          <desc>
            <em>Description forthcoming.</em>
          </desc>
        </method>
      </category>
    </chapter>
  </body>
</gsdoc>