blob: 03d91e974380ad52b8f57a777045a6160b149699 [file] [log] [blame]
// FuzzTarget.h
//
// Base class of fuzz targets.
//
// Copyright 2018-2019 by
// Armin Hasitzka.
//
// This file is part of the FreeType project, and may only be used,
// modified, and distributed under the terms of the FreeType project
// license, LICENSE.TXT. By continuing to use, modify, or distribute
// this file you indicate that you have read the license and
// understand and accept it fully.
#ifndef TARGETS_SUPPORT_FUZZTARGET_H_
#define TARGETS_SUPPORT_FUZZTARGET_H_
#include <cstdint>
#include <ft2build.h>
#include FT_FREETYPE_H
#include <freetype/internal/ftobjs.h>
#include "utils/noncopyable.h"
namespace freetype {
class FuzzTarget
: private noncopyable
{
public:
virtual
~FuzzTarget();
virtual void
run( const uint8_t* data,
size_t size ) = 0;
protected:
FuzzTarget();
FT_Library
get_ft_library()
{
return library;
}
FT_Memory
get_ft_memory()
{
return library->memory;
}
private:
FT_Library library = nullptr;
};
}
#endif // TARGETS_SUPPORT_FUZZTARGET_H_