OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 #include "gpu/command_buffer/service/command_buffer_service.h" | 5 #include "gpu/command_buffer/service/command_buffer_service.h" |
6 | 6 |
7 using ::base::SharedMemory; | 7 using ::base::SharedMemory; |
8 | 8 |
9 namespace command_buffer { | 9 namespace command_buffer { |
10 | 10 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 put_offset_change_callback_.reset(callback); | 75 put_offset_change_callback_.reset(callback); |
76 } | 76 } |
77 | 77 |
78 int32 CommandBufferService::CreateTransferBuffer(size_t size) { | 78 int32 CommandBufferService::CreateTransferBuffer(size_t size) { |
79 linked_ptr<SharedMemory> buffer(new SharedMemory); | 79 linked_ptr<SharedMemory> buffer(new SharedMemory); |
80 if (!buffer->Create(std::wstring(), false, false, size)) | 80 if (!buffer->Create(std::wstring(), false, false, size)) |
81 return -1; | 81 return -1; |
82 | 82 |
83 if (unused_registered_object_elements_.empty()) { | 83 if (unused_registered_object_elements_.empty()) { |
84 // Check we haven't exceeded the range that fits in a 32-bit integer. | 84 // Check we haven't exceeded the range that fits in a 32-bit integer. |
85 int32 handle = static_cast<int32>(registered_objects_.size()); | 85 if (registered_objects_.size() > std::numeric_limits<uint32>::max()) |
86 if (handle != registered_objects_.size()) | |
87 return -1; | 86 return -1; |
88 | 87 |
| 88 int32 handle = static_cast<int32>(registered_objects_.size()); |
89 registered_objects_.push_back(buffer); | 89 registered_objects_.push_back(buffer); |
90 return handle; | 90 return handle; |
91 } | 91 } |
92 | 92 |
93 int32 handle = *unused_registered_object_elements_.begin(); | 93 int32 handle = *unused_registered_object_elements_.begin(); |
94 unused_registered_object_elements_.erase( | 94 unused_registered_object_elements_.erase( |
95 unused_registered_object_elements_.begin()); | 95 unused_registered_object_elements_.begin()); |
96 DCHECK(!registered_objects_[handle].get()); | 96 DCHECK(!registered_objects_[handle].get()); |
97 registered_objects_[handle] = buffer; | 97 registered_objects_[handle] = buffer; |
98 return handle; | 98 return handle; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 | 150 |
151 bool CommandBufferService::GetErrorStatus() { | 151 bool CommandBufferService::GetErrorStatus() { |
152 return error_status_; | 152 return error_status_; |
153 } | 153 } |
154 | 154 |
155 void CommandBufferService::RaiseErrorStatus() { | 155 void CommandBufferService::RaiseErrorStatus() { |
156 error_status_ = true; | 156 error_status_ = true; |
157 } | 157 } |
158 | 158 |
159 } // namespace command_buffer | 159 } // namespace command_buffer |
OLD | NEW |