Skip to content

Commit af7f49c

Browse files
committed
Fix command_buffer coverity issues
- Change command handle constructors to accept const ref for vector types - Add std::move to certain vector assignments - Add missing call to store command handle in command buffer in urCommandBufferAppendMemBufferCopyExp
1 parent 0c60db6 commit af7f49c

File tree

2 files changed

+28
-27
lines changed

2 files changed

+28
-27
lines changed

source/adapters/cuda/command_buffer.cpp

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ ur_result_t ur_exp_command_buffer_handle_t_::addWaitNodes(
105105
}
106106
// Set DepsLists as an output parameter for communicating the list of wait
107107
// nodes created.
108-
DepsList = WaitNodes;
108+
DepsList = std::move(WaitNodes);
109109
return UR_RESULT_SUCCESS;
110110
}
111111

@@ -115,7 +115,7 @@ kernel_command_handle::kernel_command_handle(
115115
const size_t *GlobalWorkOffsetPtr, const size_t *GlobalWorkSizePtr,
116116
const size_t *LocalWorkSizePtr, uint32_t NumKernelAlternatives,
117117
ur_kernel_handle_t *KernelAlternatives, CUgraphNode SignalNode,
118-
std::vector<CUgraphNode> WaitNodes)
118+
const std::vector<CUgraphNode> &WaitNodes)
119119
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
120120
WaitNodes),
121121
Kernel(Kernel), Params(Params), WorkDim(WorkDim) {
@@ -146,7 +146,7 @@ kernel_command_handle::kernel_command_handle(
146146
ur_exp_command_buffer_command_handle_t_::
147147
ur_exp_command_buffer_command_handle_t_(
148148
ur_exp_command_buffer_handle_t CommandBuffer, CUgraphNode Node,
149-
CUgraphNode SignalNode, std::vector<CUgraphNode> WaitNodes)
149+
CUgraphNode SignalNode, const std::vector<CUgraphNode> &WaitNodes)
150150
: CommandBuffer(CommandBuffer), Node(Node), SignalNode(SignalNode),
151151
WaitNodes(WaitNodes), RefCountInternal(1), RefCountExternal(1) {
152152
CommandBuffer->incrementInternalReferenceCount();
@@ -339,7 +339,7 @@ static ur_result_t enqueueCommandBufferFillHelper(
339339
}
340340

341341
std::vector<CUgraphNode> WaitNodes =
342-
NumEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
342+
NumEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
343343
auto NewCommand = new T(CommandBuffer, GraphNode, SignalNode, WaitNodes);
344344
CommandBuffer->CommandHandles.push_back(NewCommand);
345345

@@ -540,7 +540,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urCommandBufferAppendKernelLaunchExp(
540540
}
541541

542542
std::vector<CUgraphNode> WaitNodes =
543-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
543+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
544544
auto NewCommand = new kernel_command_handle(
545545
hCommandBuffer, hKernel, GraphNode, NodeParams, workDim,
546546
pGlobalWorkOffset, pGlobalWorkSize, pLocalWorkSize,
@@ -598,7 +598,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urCommandBufferAppendUSMMemcpyExp(
598598
}
599599

600600
std::vector<CUgraphNode> WaitNodes =
601-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
601+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
602602
auto NewCommand = new usm_memcpy_command_handle(hCommandBuffer, GraphNode,
603603
SignalNode, WaitNodes);
604604
hCommandBuffer->CommandHandles.push_back(NewCommand);
@@ -666,9 +666,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urCommandBufferAppendMemBufferCopyExp(
666666
}
667667

668668
std::vector<CUgraphNode> WaitNodes =
669-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
669+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
670670
auto NewCommand = new buffer_copy_command_handle(hCommandBuffer, GraphNode,
671671
SignalNode, WaitNodes);
672+
hCommandBuffer->CommandHandles.push_back(NewCommand);
672673

673674
if (phCommand) {
674675
NewCommand->incrementInternalReferenceCount();
@@ -730,7 +731,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urCommandBufferAppendMemBufferCopyRectExp(
730731
}
731732

732733
std::vector<CUgraphNode> WaitNodes =
733-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
734+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
734735
auto NewCommand = new buffer_copy_rect_command_handle(
735736
hCommandBuffer, GraphNode, SignalNode, WaitNodes);
736737
hCommandBuffer->CommandHandles.push_back(NewCommand);
@@ -791,7 +792,7 @@ ur_result_t UR_APICALL urCommandBufferAppendMemBufferWriteExp(
791792
}
792793

793794
std::vector<CUgraphNode> WaitNodes =
794-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
795+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
795796
auto NewCommand = new buffer_write_command_handle(hCommandBuffer, GraphNode,
796797
SignalNode, WaitNodes);
797798
hCommandBuffer->CommandHandles.push_back(NewCommand);
@@ -851,7 +852,7 @@ ur_result_t UR_APICALL urCommandBufferAppendMemBufferReadExp(
851852
}
852853

853854
std::vector<CUgraphNode> WaitNodes =
854-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
855+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
855856
auto NewCommand = new buffer_read_command_handle(hCommandBuffer, GraphNode,
856857
SignalNode, WaitNodes);
857858
hCommandBuffer->CommandHandles.push_back(NewCommand);
@@ -916,7 +917,7 @@ ur_result_t UR_APICALL urCommandBufferAppendMemBufferWriteRectExp(
916917
}
917918

918919
std::vector<CUgraphNode> WaitNodes =
919-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
920+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
920921
auto NewCommand = new buffer_write_rect_command_handle(
921922
hCommandBuffer, GraphNode, SignalNode, WaitNodes);
922923
hCommandBuffer->CommandHandles.push_back(NewCommand);
@@ -981,7 +982,7 @@ ur_result_t UR_APICALL urCommandBufferAppendMemBufferReadRectExp(
981982
}
982983

983984
std::vector<CUgraphNode> WaitNodes =
984-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
985+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
985986
auto NewCommand = new buffer_read_rect_command_handle(
986987
hCommandBuffer, GraphNode, SignalNode, WaitNodes);
987988
hCommandBuffer->CommandHandles.push_back(NewCommand);
@@ -1037,7 +1038,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urCommandBufferAppendUSMPrefetchExp(
10371038
}
10381039

10391040
std::vector<CUgraphNode> WaitNodes =
1040-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
1041+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
10411042
auto NewCommand = new usm_prefetch_command_handle(hCommandBuffer, GraphNode,
10421043
SignalNode, WaitNodes);
10431044
hCommandBuffer->CommandHandles.push_back(NewCommand);
@@ -1093,7 +1094,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urCommandBufferAppendUSMAdviseExp(
10931094
}
10941095

10951096
std::vector<CUgraphNode> WaitNodes =
1096-
numEventsInWaitList ? DepsList : std::vector<CUgraphNode>();
1097+
numEventsInWaitList ? std::move(DepsList) : std::vector<CUgraphNode>();
10971098
auto NewCommand = new usm_advise_command_handle(hCommandBuffer, GraphNode,
10981099
SignalNode, WaitNodes);
10991100
hCommandBuffer->CommandHandles.push_back(NewCommand);

source/adapters/cuda/command_buffer.hpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ enum class CommandType {
5656
struct ur_exp_command_buffer_command_handle_t_ {
5757
ur_exp_command_buffer_command_handle_t_(
5858
ur_exp_command_buffer_handle_t CommandBuffer, CUgraphNode Node,
59-
CUgraphNode SignalNode, std::vector<CUgraphNode> WaitNodes);
59+
CUgraphNode SignalNode, const std::vector<CUgraphNode> &WaitNodes);
6060

6161
virtual ~ur_exp_command_buffer_command_handle_t_() {}
6262

@@ -102,7 +102,7 @@ struct kernel_command_handle : ur_exp_command_buffer_command_handle_t_ {
102102
const size_t *GlobalWorkOffsetPtr, const size_t *GlobalWorkSizePtr,
103103
const size_t *LocalWorkSizePtr, uint32_t NumKernelAlternatives,
104104
ur_kernel_handle_t *KernelAlternatives, CUgraphNode SignalNode,
105-
std::vector<CUgraphNode> WaitNodes);
105+
const std::vector<CUgraphNode> &WaitNodes);
106106

107107
CommandType getCommandType() const noexcept override {
108108
return CommandType::Kernel;
@@ -161,7 +161,7 @@ struct kernel_command_handle : ur_exp_command_buffer_command_handle_t_ {
161161
struct usm_memcpy_command_handle : ur_exp_command_buffer_command_handle_t_ {
162162
usm_memcpy_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
163163
CUgraphNode Node, CUgraphNode SignalNode,
164-
std::vector<CUgraphNode> WaitNodes)
164+
const std::vector<CUgraphNode> &WaitNodes)
165165
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
166166
WaitNodes) {}
167167
CommandType getCommandType() const noexcept override {
@@ -172,7 +172,7 @@ struct usm_memcpy_command_handle : ur_exp_command_buffer_command_handle_t_ {
172172
struct usm_fill_command_handle : ur_exp_command_buffer_command_handle_t_ {
173173
usm_fill_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
174174
CUgraphNode Node, CUgraphNode SignalNode,
175-
std::vector<CUgraphNode> WaitNodes)
175+
const std::vector<CUgraphNode> &WaitNodes)
176176
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
177177
WaitNodes) {}
178178
CommandType getCommandType() const noexcept override {
@@ -183,7 +183,7 @@ struct usm_fill_command_handle : ur_exp_command_buffer_command_handle_t_ {
183183
struct buffer_copy_command_handle : ur_exp_command_buffer_command_handle_t_ {
184184
buffer_copy_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
185185
CUgraphNode Node, CUgraphNode SignalNode,
186-
std::vector<CUgraphNode> WaitNodes)
186+
const std::vector<CUgraphNode> &WaitNodes)
187187
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
188188
WaitNodes) {}
189189
CommandType getCommandType() const noexcept override {
@@ -195,7 +195,7 @@ struct buffer_copy_rect_command_handle
195195
: ur_exp_command_buffer_command_handle_t_ {
196196
buffer_copy_rect_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
197197
CUgraphNode Node, CUgraphNode SignalNode,
198-
std::vector<CUgraphNode> WaitNodes)
198+
const std::vector<CUgraphNode> &WaitNodes)
199199
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
200200
WaitNodes) {}
201201
CommandType getCommandType() const noexcept override {
@@ -206,7 +206,7 @@ struct buffer_copy_rect_command_handle
206206
struct buffer_read_command_handle : ur_exp_command_buffer_command_handle_t_ {
207207
buffer_read_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
208208
CUgraphNode Node, CUgraphNode SignalNode,
209-
std::vector<CUgraphNode> WaitNodes)
209+
const std::vector<CUgraphNode> &WaitNodes)
210210
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
211211
WaitNodes) {}
212212
CommandType getCommandType() const noexcept override {
@@ -218,7 +218,7 @@ struct buffer_read_rect_command_handle
218218
: ur_exp_command_buffer_command_handle_t_ {
219219
buffer_read_rect_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
220220
CUgraphNode Node, CUgraphNode SignalNode,
221-
std::vector<CUgraphNode> WaitNodes)
221+
const std::vector<CUgraphNode> &WaitNodes)
222222
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
223223
WaitNodes) {}
224224
CommandType getCommandType() const noexcept override {
@@ -229,7 +229,7 @@ struct buffer_read_rect_command_handle
229229
struct buffer_write_command_handle : ur_exp_command_buffer_command_handle_t_ {
230230
buffer_write_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
231231
CUgraphNode Node, CUgraphNode SignalNode,
232-
std::vector<CUgraphNode> WaitNodes)
232+
const std::vector<CUgraphNode> &WaitNodes)
233233
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
234234
WaitNodes) {}
235235
CommandType getCommandType() const noexcept override {
@@ -241,7 +241,7 @@ struct buffer_write_rect_command_handle
241241
: ur_exp_command_buffer_command_handle_t_ {
242242
buffer_write_rect_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
243243
CUgraphNode Node, CUgraphNode SignalNode,
244-
std::vector<CUgraphNode> WaitNodes)
244+
const std::vector<CUgraphNode> &WaitNodes)
245245
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
246246
WaitNodes) {}
247247
CommandType getCommandType() const noexcept override {
@@ -252,7 +252,7 @@ struct buffer_write_rect_command_handle
252252
struct buffer_fill_command_handle : ur_exp_command_buffer_command_handle_t_ {
253253
buffer_fill_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
254254
CUgraphNode Node, CUgraphNode SignalNode,
255-
std::vector<CUgraphNode> WaitNodes)
255+
const std::vector<CUgraphNode> &WaitNodes)
256256
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
257257
WaitNodes) {}
258258
CommandType getCommandType() const noexcept override {
@@ -263,7 +263,7 @@ struct buffer_fill_command_handle : ur_exp_command_buffer_command_handle_t_ {
263263
struct usm_prefetch_command_handle : ur_exp_command_buffer_command_handle_t_ {
264264
usm_prefetch_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
265265
CUgraphNode Node, CUgraphNode SignalNode,
266-
std::vector<CUgraphNode> WaitNodes)
266+
const std::vector<CUgraphNode> &WaitNodes)
267267
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
268268
WaitNodes) {}
269269
CommandType getCommandType() const noexcept override {
@@ -274,7 +274,7 @@ struct usm_prefetch_command_handle : ur_exp_command_buffer_command_handle_t_ {
274274
struct usm_advise_command_handle : ur_exp_command_buffer_command_handle_t_ {
275275
usm_advise_command_handle(ur_exp_command_buffer_handle_t CommandBuffer,
276276
CUgraphNode Node, CUgraphNode SignalNode,
277-
std::vector<CUgraphNode> WaitNodes)
277+
const std::vector<CUgraphNode> &WaitNodes)
278278
: ur_exp_command_buffer_command_handle_t_(CommandBuffer, Node, SignalNode,
279279
WaitNodes) {}
280280
CommandType getCommandType() const noexcept override {

0 commit comments

Comments
 (0)