@@ -1248,26 +1248,34 @@ static const void* PyUpb_FileDescriptor_NestedLookup(
12481248
12491249static const void * PyUpb_FileDescriptor_LookupMessage (
12501250 const upb_FileDef * filedef , const char * name ) {
1251- return PyUpb_FileDescriptor_NestedLookup (
1251+ const upb_MessageDef * m = PyUpb_FileDescriptor_NestedLookup (
12521252 filedef , name , (void * )& upb_DefPool_FindMessageByName );
1253+ if (!m ) return NULL ;
1254+ return upb_MessageDef_File (m ) == filedef ? m : NULL ;
12531255}
12541256
12551257static const void * PyUpb_FileDescriptor_LookupEnum (const upb_FileDef * filedef ,
12561258 const char * name ) {
1257- return PyUpb_FileDescriptor_NestedLookup (filedef , name ,
1258- (void * )& upb_DefPool_FindEnumByName );
1259+ const upb_EnumDef * e = PyUpb_FileDescriptor_NestedLookup (
1260+ filedef , name , (void * )& upb_DefPool_FindEnumByName );
1261+ if (!e ) return NULL ;
1262+ return upb_EnumDef_File (e ) == filedef ? e : NULL ;
12591263}
12601264
12611265static const void * PyUpb_FileDescriptor_LookupExtension (
12621266 const upb_FileDef * filedef , const char * name ) {
1263- return PyUpb_FileDescriptor_NestedLookup (
1267+ const upb_FieldDef * f = PyUpb_FileDescriptor_NestedLookup (
12641268 filedef , name , (void * )& upb_DefPool_FindExtensionByName );
1269+ if (!f ) return NULL ;
1270+ return upb_FieldDef_File (f ) == filedef ? f : NULL ;
12651271}
12661272
12671273static const void * PyUpb_FileDescriptor_LookupService (
12681274 const upb_FileDef * filedef , const char * name ) {
1269- return PyUpb_FileDescriptor_NestedLookup (
1275+ const upb_ServiceDef * s = PyUpb_FileDescriptor_NestedLookup (
12701276 filedef , name , (void * )& upb_DefPool_FindServiceByName );
1277+ if (!s ) return NULL ;
1278+ return upb_ServiceDef_File (s ) == filedef ? s : NULL ;
12711279}
12721280
12731281static PyObject * PyUpb_FileDescriptor_GetName (PyUpb_DescriptorBase * self ,
0 commit comments