Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: sandbox/win/src/crosscall_client.h

Issue 821693003: replace COMPILE_ASSERT with static_assert in sandbox/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase on master Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sandbox/win/src/Wow64.cc ('k') | sandbox/win/src/crosscall_params.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SANDBOX_SRC_CROSSCALL_CLIENT_H_ 5 #ifndef SANDBOX_SRC_CROSSCALL_CLIENT_H_
6 #define SANDBOX_SRC_CROSSCALL_CLIENT_H_ 6 #define SANDBOX_SRC_CROSSCALL_CLIENT_H_
7 7
8 #include "sandbox/win/src/crosscall_params.h" 8 #include "sandbox/win/src/crosscall_params.h"
9 #include "sandbox/win/src/sandbox.h" 9 #include "sandbox/win/src/sandbox.h"
10 10
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 return sizeof(T); 71 return sizeof(T);
72 } 72 }
73 73
74 // Returns true if the current type is used as an In or InOut parameter. 74 // Returns true if the current type is used as an In or InOut parameter.
75 bool IsInOut() { 75 bool IsInOut() {
76 return false; 76 return false;
77 } 77 }
78 78
79 // Returns this object's type. 79 // Returns this object's type.
80 ArgType GetType() { 80 ArgType GetType() {
81 COMPILE_ASSERT(sizeof(T) == sizeof(uint32), need_specialization); 81 static_assert(sizeof(T) == sizeof(uint32), "specialization needed");
82 return UINT32_TYPE; 82 return UINT32_TYPE;
83 } 83 }
84 84
85 private: 85 private:
86 const T& t_; 86 const T& t_;
87 }; 87 };
88 88
89 // This copy helper template specialization if for the void pointer 89 // This copy helper template specialization if for the void pointer
90 // case both 32 and 64 bit. 90 // case both 32 and 64 bit.
91 template<> 91 template<>
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 // of CrossCall functions with ever more input parameters. 293 // of CrossCall functions with ever more input parameters.
294 294
295 #define XCALL_GEN_PARAMS_OBJ(num, params) \ 295 #define XCALL_GEN_PARAMS_OBJ(num, params) \
296 typedef ActualCallParams<num, kIPCChannelSize> ActualParams; \ 296 typedef ActualCallParams<num, kIPCChannelSize> ActualParams; \
297 void* raw_mem = ipc_provider.GetBuffer(); \ 297 void* raw_mem = ipc_provider.GetBuffer(); \
298 if (NULL == raw_mem) \ 298 if (NULL == raw_mem) \
299 return SBOX_ERROR_NO_SPACE; \ 299 return SBOX_ERROR_NO_SPACE; \
300 ActualParams* params = new(raw_mem) ActualParams(tag); 300 ActualParams* params = new(raw_mem) ActualParams(tag);
301 301
302 #define XCALL_GEN_COPY_PARAM(num, params) \ 302 #define XCALL_GEN_COPY_PARAM(num, params) \
303 COMPILE_ASSERT(kMaxIpcParams >= num, too_many_parameters); \ 303 static_assert(kMaxIpcParams >= num, "too many parameters"); \
304 CopyHelper<Par##num> ch##num(p##num); \ 304 CopyHelper<Par##num> ch##num(p##num); \
305 if (!params->CopyParamIn(num - 1, ch##num.GetStart(), ch##num.GetSize(), \ 305 if (!params->CopyParamIn(num - 1, ch##num.GetStart(), ch##num.GetSize(), \
306 ch##num.IsInOut(), ch##num.GetType())) \ 306 ch##num.IsInOut(), ch##num.GetType())) \
307 return SBOX_ERROR_NO_SPACE; 307 return SBOX_ERROR_NO_SPACE;
308 308
309 #define XCALL_GEN_UPDATE_PARAM(num, params) \ 309 #define XCALL_GEN_UPDATE_PARAM(num, params) \
310 if (!ch##num.Update(params->GetParamPtr(num-1))) {\ 310 if (!ch##num.Update(params->GetParamPtr(num-1))) {\
311 ipc_provider.FreeBuffer(raw_mem); \ 311 ipc_provider.FreeBuffer(raw_mem); \
312 return SBOX_ERROR_BAD_PARAMS; \ 312 return SBOX_ERROR_BAD_PARAMS; \
313 } 313 }
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 XCALL_GEN_UPDATE_PARAM(5, call_params); 474 XCALL_GEN_UPDATE_PARAM(5, call_params);
475 XCALL_GEN_UPDATE_PARAM(6, call_params); 475 XCALL_GEN_UPDATE_PARAM(6, call_params);
476 XCALL_GEN_UPDATE_PARAM(7, call_params); 476 XCALL_GEN_UPDATE_PARAM(7, call_params);
477 XCALL_GEN_FREE_CHANNEL(); 477 XCALL_GEN_FREE_CHANNEL();
478 } 478 }
479 return result; 479 return result;
480 } 480 }
481 } // namespace sandbox 481 } // namespace sandbox
482 482
483 #endif // SANDBOX_SRC_CROSSCALL_CLIENT_H__ 483 #endif // SANDBOX_SRC_CROSSCALL_CLIENT_H__
OLDNEW
« no previous file with comments | « sandbox/win/src/Wow64.cc ('k') | sandbox/win/src/crosscall_params.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698