This file is indexed.

/usr/include/freefem++/CodeAlloc.hpp is in libfreefem++-dev 3.47+dfsg1-2build1.

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
// -*- Mode : c++ -*-
//
// SUMMARY  :      
// USAGE    :        
// ORG      : 
// AUTHOR   : Frederic Hecht
// E-MAIL   : hecht@ann.jussieu.fr
//

/*
 
 This file is part of Freefem++
 
 Freefem++ is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
 the Free Software Foundation; either version 2.1 of the License, or
 (at your option) any later version.
 
 Freefem++  is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU Lesser General Public License for more details.
 
 You should have received a copy of the GNU Lesser General Public License
 along with Freefem++; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

class CodeAlloc { public:

  static size_t nb,nbt,lg, nbdl,nbpx, chunk ;   
  static CodeAlloc ** mem;
  static bool cleanning;
  static void * lgmax;
  static bool sort;
  static size_t memoryusage; // add FH mach 2014 ..
  static CodeAlloc * tnull;
  static bool isdel(int i)

  {
    return  ((char *) (void *)  mem[i] - (char *) 0) % 2 == 1;
  }
      
  static void setdel(int i)
  {
    mem[i] = (CodeAlloc *) (void *) (((char *) mem[i] - (char *) 0)+ 1);
  }
  static void resize(); 
  
 static  void * Add2CleanAtEnd(void * p)
  {
    if(p) {
      if(nbt>=nbpx) resize();
      if(nbt>0) sort = sort && mem[nbt-1] < p;
      nb++; 
      mem[nbt++]=(CodeAlloc*)p;  }
    return p;
  }
  
  void *operator new(size_t ll ) {
    lg+=ll;
    return Add2CleanAtEnd(::operator new(ll));} 

  
  static void Sort_mem();
  static  void clear();
  static void ErrorDel(void *pp);
  void operator delete(void * pp);
  virtual ~CodeAlloc() {}
  
};

template<class T> class CodeAllocT: public CodeAlloc{
  T * p;
  public: 
  CodeAllocT(int n): p(new T[n]) { assert(p);}
  static T * New(int n) { return (new CodeAllocT(n))->p;}
  ~CodeAllocT(){ delete [] p;}
};