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

Unified Diff: mojo/system/memory.h

Issue 425523002: Mojo: Convert MemoryTest.Valid to the new user pointer handling (see r285350). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/system/entrypoints.cc ('k') | mojo/system/memory.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/system/memory.h
diff --git a/mojo/system/memory.h b/mojo/system/memory.h
index 512a05d4e307102f62b22a69ba552ba1440aca11..bbbbbf42aae1a6d80bf09cd0ce53a6e0a09bcd23 100644
--- a/mojo/system/memory.h
+++ b/mojo/system/memory.h
@@ -46,17 +46,6 @@ template <size_t alignment>
void MOJO_SYSTEM_IMPL_EXPORT CheckUserPointerWithSize(const void* pointer,
size_t size);
-// TODO(vtl): Delete all the |Verify...()| things (and replace them with
-// |Check...()|.
-template <size_t size, size_t alignment>
-bool MOJO_SYSTEM_IMPL_EXPORT VerifyUserPointerHelper(const void* pointer);
-
-// Note: This is also used by options_validation.h.
-template <size_t size, size_t alignment>
-bool MOJO_SYSTEM_IMPL_EXPORT VerifyUserPointerWithCountHelper(
- const void* pointer,
- size_t count);
-
} // namespace internal
// Forward declarations so that they can be friended.
@@ -65,30 +54,6 @@ template <typename Type> class UserPointerWriter;
template <typename Type> class UserPointerReaderWriter;
template <class Options> class UserOptionsReader;
-// Verify (insofar as possible/necessary) that a |T| can be read from the user
-// |pointer|.
-template <typename T>
-bool VerifyUserPointer(const T* pointer) {
- return internal::VerifyUserPointerHelper<sizeof(T), MOJO_ALIGNOF(T)>(pointer);
-}
-
-// Verify (insofar as possible/necessary) that |count| |T|s can be read from the
-// user |pointer|; |count| may be zero. (This is done carefully since |count *
-// sizeof(T)| may overflow a |size_t|.)
-template <typename T>
-bool VerifyUserPointerWithCount(const T* pointer, size_t count) {
- return internal::VerifyUserPointerWithCountHelper<sizeof(T),
- MOJO_ALIGNOF(T)>(pointer,
- count);
-}
-
-// Verify that |size| bytes (which may be zero) can be read from the user
-// |pointer|, and that |pointer| has the specified |alignment| (if |size| is
-// nonzero).
-template <size_t alignment>
-bool MOJO_SYSTEM_IMPL_EXPORT VerifyUserPointerWithSize(const void* pointer,
- size_t size);
-
// Provides a convenient way to implicitly get null |UserPointer<Type>|s.
struct NullUserPointer {};
@@ -214,6 +179,13 @@ class UserPointer {
static_cast<NonVoidType*>(pointer_) + i));
}
+ // Gets the value of the |UserPointer| as a |uintptr_t|. This should not be
+ // casted back to a pointer (and dereferenced), but may be used as a key for
+ // lookup or passed back to the user.
+ uintptr_t GetPointerValue() const {
+ return reinterpret_cast<uintptr_t>(pointer_);
+ }
+
// These provides safe (read-only/write-only/read-and-write) access to a
// |UserPointer<Type>| (probably pointing to an array) using just an ordinary
// pointer (obtained via |GetPointer()|).
@@ -375,33 +347,6 @@ class UserPointerReaderWriter {
DISALLOW_COPY_AND_ASSIGN(UserPointerReaderWriter);
};
-// Represents a user pointer that will never be dereferenced by the system. The
-// pointer value (i.e., the address) may be as a key for lookup, or may be a
-// value that is only passed to the user at some point.
-template <typename Type>
-class UserPointerValue {
- public:
- UserPointerValue() : pointer_() {}
- explicit UserPointerValue(Type* pointer) : pointer_(pointer) {}
- ~UserPointerValue() {}
-
- // Returns the *value* of the pointer, which shouldn't be cast back to a
- // pointer and dereferenced.
- uintptr_t GetValue() const {
- return reinterpret_cast<uintptr_t>(pointer_);
- }
-
- private:
- Type* pointer_;
- // Allow copy and assignment.
-};
-
-// Provides a convenient way to make a |UserPointerValue<Type>|.
-template <typename Type>
-inline UserPointerValue<Type> MakeUserPointerValue(Type* pointer) {
- return UserPointerValue<Type>(pointer);
-}
-
} // namespace system
} // namespace mojo
« no previous file with comments | « mojo/system/entrypoints.cc ('k') | mojo/system/memory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698