This file is indexed.

/usr/include/synce_vector_template.h is in libsynce0-dev 0.15-1.1.

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
/* $Id: synce_vector_template.h 1504 2004-01-12 09:34:36Z twogood $ */

#include <synce.h>
#include <synce_log.h>
#include <stdlib.h>

#define SYNCE_VECTOR_DECLARE(name, prefix, type) \
 \
struct _ ## name \
{ \
  type* items; \
  size_t used; \
  size_t size; \
}; \
 \
typedef struct _ ## name name; \
 \
/** Create a new vector object */ \
name* prefix ## _new(); \
 \
/** Destroy vector object */ \
void prefix ## _destroy(name* v, bool free_items); \
 \
/** Add an item to vector */ \
name* prefix ## _add(name* v, type value); \
 \
/** Add many items to vector */ \
name* prefix ## _add_many( \
    name* v,  \
    type* values,  \
    size_t count);


#define SYNCE_VECTOR_IMPLEMENT(name, prefix, type) \
 \
static void prefix ## _enlarge(name* v, size_t size) \
{ \
  if (v->size < size) \
  { \
    size_t new_size = v->size ? v->size : 2; \
 \
    while (new_size < size) \
      new_size <<= 1; \
 \
    v->items = realloc(v->items, sizeof(type) * new_size); \
    if (!v->items) \
    { \
      synce_error("Failed to allocate space for %i elements - crashing!", new_size); \
    } \
 \
    v->size  = new_size; \
  } \
} \
 \
name* prefix ## _new() \
{ \
  return (name*)calloc(1, sizeof(name)); \
} \
 \
void prefix ## _destroy(name* v, bool free_items) \
{ \
  if (v) \
  { \
    if (free_items && v->items) \
      free(v->items); \
    free(v); \
  } \
} \
 \
name* prefix ## _add(name* v, type value) \
{ \
  prefix ## _enlarge(v, v->used + 1); \
  v->items[v->used++] = value; \
  return v; \
} \
 \
name* prefix ## _add_many( \
    name* v,  \
    type* values,  \
    size_t count) \
{ \
  unsigned i; \
   \
  prefix ## _enlarge(v, v->used + count); \
 \
  for (i = 0; i < count; i++) \
  { \
    v->items[v->used++] = values[i]; \
  } \
   \
  return v; \
}