zturner added inline comments.

================
Comment at: source/Utility/DataExtractor.cpp:566
                                   size_t byte_size) const {
-  switch (byte_size) {
-  case 1:
-    return GetU8(offset_ptr);
-    break;
-  case 2:
-    return GetU16(offset_ptr);
-    break;
-  case 4:
-    return GetU32(offset_ptr);
-    break;
-  default:
-    assert(false && "GetMaxU32 unhandled case!");
-    break;
-  }
-  return 0;
+  assert(byte_size <= 4 && "GetMaxU32 unhandled case!");
+  return GetMaxU64(offset_ptr, byte_size);
----------------
jingham wrote:
> petpav01 wrote:
> > jingham wrote:
> > > This is trivial, and you didn't change what was there, but this message 
> > > makes it sound like this is just something we haven't gotten to yet.  
> > > It's really "You passed in an illegal byte size"...  Might be clearer if 
> > > the message said that.
> > I was not sure what is the expected behaviour when the input `byte_size` 
> > exceeds the size of the return type of each of these `GetMax...()` methods. 
> > The current behaviour is to assert this situation but comments describing 
> > the methods (in both `DataExtractor.cpp` and `DataExtractor.h`) say that 
> > nothing should get extracted in these cases and zero is returned.
> > 
> > Maybe the patch should go a bit further and clean this up as follows:
> > * Remove duplicated comments in `DataExtractor.cpp` for 
> > `DataExtractor::GetMaxU32()` and `GetMaxU64()` and keep only their Doxygen 
> > versions in `DataExtractor.h`.
> > * Update comments in `DataExtractor.h` for `DataExtractor::GetMaxU32()`, 
> > `GetMaxU64()`, `GetMaxS64()`, `GetMaxU64Bitfield()` and 
> > `GetMaxS64Bitfield()` to match the current implementation.
> > * Change assertion text in `DataExtractor::GetMaxU32()` and `GetMaxU64()` 
> > from "unhandled case" to "invalid byte size".
> > 
> > Does this sound reasonable?
> The released versions of lldb - at least the ones Apple releases - have 
> asserts disabled.   This isn't unique to lldb, clang does the same thing.  
> 
> I do my day-to-day debugging using a TOT build with asserts enabled, and we 
> run the testsuite that way so the asserts catch errors at this stage.  But 
> for the general public, the function will behave as described.  It would be 
> great to remove the duplicated docs - that's just begging for one or the 
> other to get out of date.  But the descriptions are functionally correct.  
> And  then changing the text to "invalid byte size" also seems good to me.
Being pedantic, this *is* a functionality change.  Previously, we would assert 
on a size of 3 or 0, with this change we will allow those cases through.


https://reviews.llvm.org/D38394



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to