blob: 97640fd86cc65b56795e8d8ae4ff718a822acc47 (
plain)
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
|
// SPDX-License-Identifier: GPL-2.0-or-later
/** @file
* TODO: insert short description here
*//*
* Authors: see git history
*
* Copyright (C) 2018 Authors
* Released under GNU GPL v2+, read the file 'COPYING' for more information.
*/
#include <glib.h>
#include "livarot/sweep-tree.h"
#include "livarot/sweep-tree-list.h"
SweepTreeList::SweepTreeList(int s) :
nbTree(0),
maxTree(s),
trees((SweepTree *) g_malloc(s * sizeof(SweepTree))),
racine(nullptr)
{
/* FIXME: Use new[] for trees initializer above, but watch out for bad things happening when
* SweepTree::~SweepTree is called.
*/
}
SweepTreeList::~SweepTreeList()
{
g_free(trees);
trees = nullptr;
}
SweepTree *SweepTreeList::add(Shape *iSrc, int iBord, int iWeight, int iStartPoint, Shape */*iDst*/)
{
if (nbTree >= maxTree) {
return nullptr;
}
int const n = nbTree++;
trees[n].MakeNew(iSrc, iBord, iWeight, iStartPoint);
return trees + n;
}
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
|