Skip to content

Commit 9a02bd8

Browse files
Swap new and new.h header files
Originally, the Arduino core used "new.h", rather than the standard "new", probably because the implementation was incomplete, and for the most commonly used new and delete operators, no include is needed at all (they are defined implicitly by the compiler). However, now Arduino does expose the "new" name, as an alias for the older "new.h". Given that the standard name is "new", it makes more sense to put the actual content in "new", and make "new.h" a compatibility header that includes "new" instead of the other way around.
1 parent 3055c1e commit 9a02bd8

File tree

2 files changed

+32
-34
lines changed

2 files changed

+32
-34
lines changed

Diff for: cores/arduino/new

+29-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
/*
2-
this header is for compatibility with standard c++ header names
3-
so that #include<new> works as expected
2+
Copyright (c) 2014 Arduino. All right reserved.
3+
4+
This library is free software; you can redistribute it and/or
5+
modify it under the terms of the GNU Lesser General Public
6+
License as published by the Free Software Foundation; either
7+
version 2.1 of the License, or (at your option) any later version.
8+
9+
This library is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12+
See the GNU Lesser General Public License for more details.
13+
14+
You should have received a copy of the GNU Lesser General Public
15+
License along with this library; if not, write to the Free Software
16+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
417
*/
5-
#include "new.h"
18+
19+
#ifndef NEW_H
20+
#define NEW_H
21+
22+
#include <stdlib.h>
23+
24+
void * operator new(size_t size);
25+
void * operator new[](size_t size);
26+
void * operator new(size_t size, void * ptr) noexcept;
27+
void operator delete(void * ptr);
28+
void operator delete[](void * ptr);
29+
30+
#endif
31+

Diff for: cores/arduino/new.h

+3-31
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,3 @@
1-
/*
2-
Copyright (c) 2014 Arduino. All right reserved.
3-
4-
This library is free software; you can redistribute it and/or
5-
modify it under the terms of the GNU Lesser General Public
6-
License as published by the Free Software Foundation; either
7-
version 2.1 of the License, or (at your option) any later version.
8-
9-
This library is distributed in the hope that it will be useful,
10-
but WITHOUT ANY WARRANTY; without even the implied warranty of
11-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12-
See the GNU Lesser General Public License for more details.
13-
14-
You should have received a copy of the GNU Lesser General Public
15-
License along with this library; if not, write to the Free Software
16-
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17-
*/
18-
19-
#ifndef NEW_H
20-
#define NEW_H
21-
22-
#include <stdlib.h>
23-
24-
void * operator new(size_t size);
25-
void * operator new[](size_t size);
26-
void * operator new(size_t size, void * ptr) noexcept;
27-
void operator delete(void * ptr);
28-
void operator delete[](void * ptr);
29-
30-
#endif
31-
1+
// This file originally used a non-standard name for this Arduino core
2+
// only, so still expose the old new.h name for compatibility.
3+
#include "new"

0 commit comments

Comments
 (0)