Since there are no explicit unlock operations on the studio headers we use a concept we call "frame locking" where they are guaranteed to remain in memory (i.e. not get flushed for some other memory allocation request) as long as the frame is in scope. There's a macro for generating these lock frames called:
MDLCACHE_CRITICAL_SECTION(); If you search, you'll see these frames declared at the top of a bunch of the systems (entity think, save/load, etc) So any studio headers that are loaded in the scope of that can't be freed until you exit that scope. The assert is saying that you aren't within one of those scopes so theoretically your pointer could get freed if some other memory request causes the cache to fill later on - so it's not safe to hang on to this pointer and still call memory management functions in datacache. It's easy enough to fix the assert by adding a frame using the macro above to whatever entry point is causing you to page in the model. Don't put one in GetModelPtr() however as that defeats the whole purpose of this debug instrumentation. Jay > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Aaron Schiff > Sent: Wednesday, August 30, 2006 5:47 PM > To: hlcoders@list.valvesoftware.com > Subject: Re: [hlcoders] AssertOnce( pModelCache->IsFrameLocking() ); > > -- > [ Picked text/plain from multipart/alternative ] More like a > problem with the calls we make to them. It seems to only > show up when initially showing a model... > > On 8/30/06, Ryan Sheffer <[EMAIL PROTECTED]> wrote: > > > > -- > > [ Picked text/plain from multipart/alternative ] Im also wondering > > what this is, IsFrameLocking()... Possible problem with our models? > > > > On 8/26/06, [EMAIL PROTECTED] > > <[EMAIL PROTECTED] > > > > > wrote: > > > > > > AssertOnce( pModelCache->IsFrameLocking() ); > > > > > > This assert is always hit, both server-side > baseanimating.cpp(2352) > > > and client-side c_baseanimating.cpp(931) when a player joins a > > > server. The purpose of this assert is unclear. > Unfortunately the > > > function it is asserting is closed-source with no > documentation on > > > its purpose either. I've added a KI recommending > commenting it out for now. > > > > > > _______________________________________________ > > > To unsubscribe, edit your list preferences, or view the list > > > archives, please visit: > > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > > > > > > > > -- > > ~skidz > > -- > > > > _______________________________________________ > > To unsubscribe, edit your list preferences, or view the > list archives, > > please visit: > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > > > > > -- > ts2do > -- > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list > archives, please visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders