[Lldb-commits] [lldb] [lldb][TypeSynthetic][NFC] Make SyntheticChildrenFrontend::Update() return an enum (PR #80167)

Michael Buch via lldb-commits lldb-commits at lists.llvm.org
Wed Jan 31 14:21:55 PST 2024


================
@@ -49,14 +49,17 @@ class SyntheticChildrenFrontEnd {
 
   virtual size_t GetIndexOfChildWithName(ConstString name) = 0;
 
-  // this function is assumed to always succeed and it if fails, the front-end
-  // should know to deal with it in the correct way (most probably, by refusing
-  // to return any children) the return value of Update() should actually be
-  // interpreted as "ValueObjectSyntheticFilter cache is good/bad" if =true,
-  // ValueObjectSyntheticFilter is allowed to use the children it fetched
-  // previously and cached if =false, ValueObjectSyntheticFilter must throw
-  // away its cache, and query again for children
-  virtual bool Update() = 0;
+  enum class CacheState { Invalid, Valid };
----------------
Michael137 wrote:

> We need to make sure enum values are 0 and 1 since the python synthetic stuff will return True or False still. It might be nice to move this enum into lldb-enumerations.h so that python can use it in future synthetic child providers, or people can update their synthetic python plugins to use the enum to be more readable.

Will do, thanks!

> do we want to be more clear about what these do and specify they are for children?

I don't mind these names, though new readers might have trouble understanding (and might be harder to remember which one to use). But being more precise is probably better.

https://github.com/llvm/llvm-project/pull/80167


More information about the lldb-commits mailing list