@@ -1076,18 +1076,23 @@ static inline void ICV_HLINE_X(uchar* ptr, int xl, int xr, const uchar* color, i
1076
1076
uchar* hline_min_ptr = (uchar*)(ptr) + (xl)*(pix_size);
1077
1077
uchar* hline_end_ptr = (uchar*)(ptr) + (xr+1 )*(pix_size);
1078
1078
uchar* hline_ptr = hline_min_ptr;
1079
- if (hline_min_ptr < hline_end_ptr)
1079
+ if (pix_size == 1 )
1080
+ memset (hline_min_ptr, *color, hline_end_ptr-hline_min_ptr);
1081
+ else // if (pix_size != 1)
1080
1082
{
1081
- memcpy (hline_ptr, color, pix_size);
1082
- hline_ptr += pix_size;
1083
- }// end if (hline_min_ptr < hline_end_ptr)
1084
- size_t sizeToCopy = pix_size;
1085
- while (hline_ptr < hline_end_ptr)
1086
- {
1087
- memcpy (hline_ptr, hline_min_ptr, sizeToCopy);
1088
- hline_ptr += sizeToCopy;
1089
- sizeToCopy = std::min (2 *sizeToCopy, static_cast <size_t >(hline_end_ptr-hline_ptr));
1090
- }// end while(hline_ptr < hline_end_ptr)
1083
+ if (hline_min_ptr < hline_end_ptr)
1084
+ {
1085
+ memcpy (hline_ptr, color, pix_size);
1086
+ hline_ptr += pix_size;
1087
+ }// end if (hline_min_ptr < hline_end_ptr)
1088
+ size_t sizeToCopy = pix_size;
1089
+ while (hline_ptr < hline_end_ptr)
1090
+ {
1091
+ memcpy (hline_ptr, hline_min_ptr, sizeToCopy);
1092
+ hline_ptr += sizeToCopy;
1093
+ sizeToCopy = std::min (2 *sizeToCopy, static_cast <size_t >(hline_end_ptr-hline_ptr));
1094
+ }// end while(hline_ptr < hline_end_ptr)
1095
+ }// end if (pix_size != 1)
1091
1096
}
1092
1097
// end ICV_HLINE_X()
1093
1098
0 commit comments