<commit_before>#include <dirent.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <string>
#include <string.h>
#include <map>
#include <sys/mman.h>
#include <openssl/evp.h>
#include <iostream>

typedef off_t fsize_t;

//!  Relevent data about each file in the tree
/*!
  This class holds everything related to the files in the tree.
  SHA512's are calculated for files whose file sizes don't make
  it obvious that they are distinct.
*/
class File {
	public:
		__ino_t inode;
		std::string name;
		std::string relativepath;
		fsize_t size;
		unsigned char *sha = NULL; /*!< SHA512 for the file */ 
		bool hardlink; /*!< it's alread a hardlink */ 
		static std::map<__ino_t, File *> uk_inode; /*< files by inode */
		static std::multimap<fsize_t, File *> cx_size; /*< files by size */
		static std::multimap<__ino_t, File *> cx_hardlinks; //XXX for test only

		 //! populates various variables
		 /*!
		   Always populated inode, name, relativepath, and 
		   size. adds an entry to the inode and size lookup
		   containers
		 */
		File(const std::string &, const std::string &);
	private:
		void calc_sha();
		bool isHardlink(File *);
		void link(File *);
		bool equal (File &);
};<commit_msg>uninitialised value<commit_after>#include <dirent.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <string>
#include <string.h>
#include <map>
#include <sys/mman.h>
#include <openssl/evp.h>
#include <iostream>

typedef off_t fsize_t;

//!  Relevent data about each file in the tree
/*!
  This class holds everything related to the files in the tree.
  SHA512's are calculated for files whose file sizes don't make
  it obvious that they are distinct.
*/
class File {
	public:
		__ino_t inode;
		std::string name;
		std::string relativepath;
		fsize_t size;
		unsigned char *sha = NULL; /*!< SHA512 for the file */ 
		bool hardlink = false; /*!< it's alread a hardlink */
		static std::map<__ino_t, File *> uk_inode; /*< files by inode */
		static std::multimap<fsize_t, File *> cx_size; /*< files by size */
		static std::multimap<__ino_t, File *> cx_hardlinks; //XXX for test only

		 //! populates various variables
		 /*!
		   Always populated inode, name, relativepath, and 
		   size. adds an entry to the inode and size lookup
		   containers
		 */
		File(const std::string &, const std::string &);
	private:
		void calc_sha();
		bool isHardlink(File *);
		void link(File *);
		bool equal (File &);
};
{'fraction_non_alphanumeric': 0.1266085512660855, 'fraction_numerical': 0.0049813200498132005, 'mean_word_length': 3.6435452793834298, 'pattern_counts': {'":': 0, '<': 35, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2411780', 'n_tokens_mistral': 883, 'n_tokens_neox': 791, 'n_words': 276}