[ 
https://issues.apache.org/jira/browse/ARROW-1757?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16348880#comment-16348880
 ] 

ASF GitHub Bot commented on ARROW-1757:
---------------------------------------

cpcloud commented on a change in pull request #1535: ARROW-1757: [C++] Add 
DictionaryArray::FromArrays alternate ctor that can check or sanitized 
"untrusted" indices
URL: https://github.com/apache/arrow/pull/1535#discussion_r165414598
 
 

 ##########
 File path: cpp/src/arrow/array.cc
 ##########
 @@ -492,11 +492,52 @@ DictionaryArray::DictionaryArray(const 
std::shared_ptr<DataType>& type,
   SetData(data);
 }
 
+Status DictionaryArray::FromArrays(const std::shared_ptr<DataType>& type,
+                                   const std::shared_ptr<Array>& indices,
+                                   std::shared_ptr<Array>* out) {
+  if (indices->length() == 0) {
+    return Status::Invalid("Dictionary indices must have non-zero length");
+  }
+
+  DCHECK_EQ(type->id(), Type::DICTIONARY);
+  std::shared_ptr<DictionaryType> dict = 
std::static_pointer_cast<DictionaryType>(type);
 
 Review comment:
   We usually do this as ` auto dict = static_cast<const 
DictionaryType&>(*type)`. That way you can avoid any additional overhead from 
constructing `std::shared_ptr`s.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> [C++] Add DictionaryArray::FromArrays alternate ctor that can check or 
> sanitized "untrusted" indices
> ----------------------------------------------------------------------------------------------------
>
>                 Key: ARROW-1757
>                 URL: https://issues.apache.org/jira/browse/ARROW-1757
>             Project: Apache Arrow
>          Issue Type: New Feature
>          Components: C++
>            Reporter: Wes McKinney
>            Assignee: Panchen Xue
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 0.9.0
>
>
> Related to ARROW-1658. This is related to the offset sanitization in 
> {{ListArray::FromArrays}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to