| OLD | NEW |
| 1 /* Vector API for GDB. | 1 /* Vector API for GDB. |
| 2 Copyright (C) 2004-2012 Free Software Foundation, Inc. | 2 Copyright (C) 2004-2012 Free Software Foundation, Inc. |
| 3 Contributed by Nathan Sidwell <nathan@codesourcery.com> | 3 Contributed by Nathan Sidwell <nathan@codesourcery.com> |
| 4 | 4 |
| 5 This file is part of GDB. | 5 This file is part of GDB. |
| 6 | 6 |
| 7 This program is free software; you can redistribute it and/or modify | 7 This program is free software; you can redistribute it and/or modify |
| 8 it under the terms of the GNU General Public License as published by | 8 it under the terms of the GNU General Public License as published by |
| 9 the Free Software Foundation; either version 3 of the License, or | 9 the Free Software Foundation; either version 3 of the License, or |
| 10 (at your option) any later version. | 10 (at your option) any later version. |
| 11 | 11 |
| 12 This program is distributed in the hope that it will be useful, | 12 This program is distributed in the hope that it will be useful, |
| 13 but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 15 GNU General Public License for more details. | 15 GNU General Public License for more details. |
| 16 | 16 |
| 17 You should have received a copy of the GNU General Public License | 17 You should have received a copy of the GNU General Public License |
| 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ | 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| 19 | 19 |
| 20 #if !defined (GDB_VEC_H) | 20 #if !defined (GDB_VEC_H) |
| 21 #define GDB_VEC_H | 21 #define GDB_VEC_H |
| 22 | 22 |
| 23 #include <stddef.h> | 23 #include <stddef.h> |
| 24 |
| 25 #ifndef GDBSERVER |
| 24 #include "gdb_string.h" | 26 #include "gdb_string.h" |
| 25 #include "gdb_assert.h" | 27 #include "gdb_assert.h" |
| 28 #endif |
| 26 | 29 |
| 27 /* The macros here implement a set of templated vector types and | 30 /* The macros here implement a set of templated vector types and |
| 28 associated interfaces. These templates are implemented with | 31 associated interfaces. These templates are implemented with |
| 29 macros, as we're not in C++ land. The interface functions are | 32 macros, as we're not in C++ land. The interface functions are |
| 30 typesafe and use static inline functions, sometimes backed by | 33 typesafe and use static inline functions, sometimes backed by |
| 31 out-of-line generic functions. | 34 out-of-line generic functions. |
| 32 | 35 |
| 33 Because of the different behavior of structure objects, scalar | 36 Because of the different behavior of structure objects, scalar |
| 34 objects and of pointers, there are three flavors, one for each of | 37 objects and of pointers, there are three flavors, one for each of |
| 35 these variants. Both the structure object and pointer variants | 38 these variants. Both the structure object and pointer variants |
| (...skipping 988 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1024 \ | 1027 \ |
| 1025 static inline T *VEC_OP (T,safe_insert) \ | 1028 static inline T *VEC_OP (T,safe_insert) \ |
| 1026 (VEC(T) **vec_, unsigned ix_, const T *obj_ VEC_ASSERT_DECL) \ | 1029 (VEC(T) **vec_, unsigned ix_, const T *obj_ VEC_ASSERT_DECL) \ |
| 1027 { \ | 1030 { \ |
| 1028 VEC_OP (T,reserve) (vec_, 1 VEC_ASSERT_PASS); \ | 1031 VEC_OP (T,reserve) (vec_, 1 VEC_ASSERT_PASS); \ |
| 1029 \ | 1032 \ |
| 1030 return VEC_OP (T,quick_insert) (*vec_, ix_, obj_ VEC_ASSERT_PASS); \ | 1033 return VEC_OP (T,quick_insert) (*vec_, ix_, obj_ VEC_ASSERT_PASS); \ |
| 1031 } | 1034 } |
| 1032 | 1035 |
| 1033 #endif /* GDB_VEC_H */ | 1036 #endif /* GDB_VEC_H */ |
| OLD | NEW |