"Williams, Ken" <[EMAIL PROTECTED]> 24/03/2004 09:19 AM To: "'Rubens Jr.'" <[EMAIL PROTECTED]> cc: [EMAIL PROTECTED] Subject: RE: [sqlite] Diferent behavior in 2.8.12 and 2.8.13
> That's probably a good idea, but if I were passing a char* to ANY C > function, not just the SQLite interface routines, I'd be pretty scared to > modify it in a callback before that function is finished running. > If the function doesn't expect to modify it, it can declare it "const". If > it does expect to modify it, then you shouldn't ALSO modify it. =) Regardless of whether you expect a function to modify the char* you pass it, it's probably bad manners to start fiddling with that string before the function is finished. It may simply have not finished processing it, yet. It's hardly surprising that sqlite would execute the query in the string, perform necessary callbacks, then go looking for a second query. Sqlite is designed to handle multiple queries in the same string, each separated by a semi-colon. Sqlite could make a copy of the string as soon as you call it, but that would make the common case less efficient to allow for a programming model that is at the very least, odd. Reusing a buffer in this way is probably a premature optimisation, and is certainly foolhardy when you can't guarantee its old incarnation is no longer being used. Benjamin --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]