@ -465,7 +465,9 @@ public:
@@ -465,7 +465,9 @@ public:
explicit dtype ( const buffer_info & info ) {
dtype descr ( _dtype_from_pep3118 ( ) ( PYBIND11_STR_TYPE ( info . format ) ) ) ;
// If info.itemsize == 0, use the value calculated from the format string
m_ptr = descr . strip_padding ( info . itemsize ? info . itemsize : descr . itemsize ( ) ) . release ( ) . ptr ( ) ;
m_ptr = descr . strip_padding ( info . itemsize ! = 0 ? info . itemsize : descr . itemsize ( ) )
. release ( )
. ptr ( ) ;
}
explicit dtype ( const std : : string & format ) {
@ -486,7 +488,7 @@ public:
@@ -486,7 +488,7 @@ public:
/// This is essentially the same as calling numpy.dtype(args) in Python.
static dtype from_args ( object args ) {
PyObject * ptr = nullptr ;
if ( ! detail : : npy_api : : get ( ) . PyArray_DescrConverter_ ( args . ptr ( ) , & ptr ) | | ! ptr )
if ( ( detail : : npy_api : : get ( ) . PyArray_DescrConverter_ ( args . ptr ( ) , & ptr ) = = 0 ) | | ! ptr )
throw error_already_set ( ) ;
return reinterpret_steal < dtype > ( ptr ) ;
}
@ -542,7 +544,7 @@ private:
@@ -542,7 +544,7 @@ private:
auto name = spec [ 0 ] . cast < pybind11 : : str > ( ) ;
auto format = spec [ 1 ] . cast < tuple > ( ) [ 0 ] . cast < dtype > ( ) ;
auto offset = spec [ 1 ] . cast < tuple > ( ) [ 1 ] . cast < pybind11 : : int_ > ( ) ;
if ( ! len ( name ) & & format . kind ( ) = = ' V ' )
if ( ( len ( name ) = = 0u ) & & format . kind ( ) = = ' V ' )
continue ;
field_descriptors . push_back ( { ( PYBIND11_STR_TYPE ) name , format . strip_padding ( format . itemsize ( ) ) , offset } ) ;
}
@ -872,11 +874,12 @@ public:
@@ -872,11 +874,12 @@ public:
: array ( std : : move ( shape ) , std : : move ( strides ) , ptr , base ) { }
explicit array_t ( ShapeContainer shape , const T * ptr = nullptr , handle base = handle ( ) )
: array_t ( private_ctor { } , std : : move ( shape ) ,
ExtraFlags & f_style
? detail : : f_strides ( * shape , itemsize ( ) )
: detail : : c_strides ( * shape , itemsize ( ) ) ,
ptr , base ) { }
: array_t ( private_ctor { } ,
std : : move ( shape ) ,
( ExtraFlags & f_style ) ! = 0 ? detail : : f_strides ( * shape , itemsize ( ) )
: detail : : c_strides ( * shape , itemsize ( ) ) ,
ptr ,
base ) { }
explicit array_t ( ssize_t count , const T * ptr = nullptr , handle base = handle ( ) )
: array ( { count } , { } , ptr , base ) { }