Skip to content
  • ggaren's avatar
    JavaScriptCore: · 41694b65
    ggaren authored
            Reviewed by Maciej.
            
            - Implemented ref-counting of JSContexts by splitting into two datatypes:
            JSGlobalContext, which you can create/retain/release, and JSContext, which
            you can't.
            
            Internally, you retain a JSGlobalContext/ExecState by retaining its
            interpreter, which, in the case of a global ExecState, owns it.
            
            - Also made ~Interpreter() protected to catch places where Interpreter
            is manually deleted. (Can't make it private because some crazy fool
            decided it would be a good idea to subclass Interpreter in other frameworks.
            I pity da fool.)
    
            * API/APICast.h: 
            (toJS): Added cast for new JSGlobalContext
            * API/JSStringRef.h: Changed vague "you must" language to more specific
            (but, ultimately, equally vague) "behavior is undefined if you don't" 
            language.
            (KJS::Interpreter::Interpreter): Factored more common initialization into
            init()
            * kjs/interpreter.h:
            (KJS::Interpreter::ref): new
            (KJS::Interpreter::deref): new
            (KJS::Interpreter::refCount): new
            * kjs/testkjs.cpp: 
            (doIt): Ref-count the interpreter.
    
    JavaScriptGlue:
    
            Reviewed by Maciej.
            
            - Updated JSInterpreter to work with Interpreter ref-counting in JavaScriptCore.
    
            (JSInterpreter::JSInterpreter::~JSInterpreter): Now protected to catch
            manual delete.
    
    WebCore:
    
            Reviewed by Maciej.
    
            - Updated ScriptInterpreter to work with Interpreter ref-counting in 
            JavaScriptCore.
    
            (KJS::ScriptInterpreter::~ScriptInterpreter): Now protected to catch
            manual delete.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    41694b65