public static int add_ref(cef_v8stack_trace_t* self)
 {
     add_ref_delegate d;
     var p = self->_base._add_ref;
     if (p == _p0) { d = _d0; }
     else
     {
         d = (add_ref_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(add_ref_delegate));
         if (_p0 == IntPtr.Zero) { _d0 = d; _p0 = p; }
     }
     return d(self);
 }
 public static int release(cef_v8stack_trace_t* self)
 {
     release_delegate d;
     var p = self->_base._release;
     if (p == _p1) { d = _d1; }
     else
     {
         d = (release_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(release_delegate));
         if (_p1 == IntPtr.Zero) { _d1 = d; _p1 = p; }
     }
     return d(self);
 }
 public static int get_refct(cef_v8stack_trace_t* self)
 {
     get_refct_delegate d;
     var p = self->_base._get_refct;
     if (p == _p2) { d = _d2; }
     else
     {
         d = (get_refct_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_refct_delegate));
         if (_p2 == IntPtr.Zero) { _d2 = d; _p2 = p; }
     }
     return d(self);
 }
 public static int get_frame_count(cef_v8stack_trace_t* self)
 {
     get_frame_count_delegate d;
     var p = self->_get_frame_count;
     if (p == _p4) { d = _d4; }
     else
     {
         d = (get_frame_count_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_frame_count_delegate));
         if (_p4 == IntPtr.Zero) { _d4 = d; _p4 = p; }
     }
     return d(self);
 }
 public static cef_v8stack_frame_t* get_frame(cef_v8stack_trace_t* self, int index)
 {
     get_frame_delegate d;
     var p = self->_get_frame;
     if (p == _p5) { d = _d5; }
     else
     {
         d = (get_frame_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(get_frame_delegate));
         if (_p5 == IntPtr.Zero) { _d5 = d; _p5 = p; }
     }
     return d(self, index);
 }
 public static int is_valid(cef_v8stack_trace_t* self)
 {
     is_valid_delegate d;
     var p = self->_is_valid;
     if (p == _p3) { d = _d3; }
     else
     {
         d = (is_valid_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(is_valid_delegate));
         if (_p3 == IntPtr.Zero) { _d3 = d; _p3 = p; }
     }
     return d(self);
 }
 private CefV8StackTrace(cef_v8stack_trace_t* ptr)
 {
     if (ptr == null) throw new ArgumentNullException("ptr");
     _self = ptr;
 }
 internal static CefV8StackTrace FromNativeOrNull(cef_v8stack_trace_t* ptr)
 {
     if (ptr == null) return null;
     return new CefV8StackTrace(ptr);
 }
 internal static CefV8StackTrace FromNative(cef_v8stack_trace_t* ptr)
 {
     return new CefV8StackTrace(ptr);
 }
        private void on_uncaught_exception(cef_render_process_handler_t* self, cef_browser_t* browser, cef_frame_t* frame, cef_v8context_t* context, cef_v8exception_t* exception, cef_v8stack_trace_t* stackTrace)
        {
            CheckSelf(self);

            var mBrowser = CefBrowser.FromNative(browser);
            var mFrame = CefFrame.FromNative(frame);
            var mContext = CefV8Context.FromNative(context);
            var mException = CefV8Exception.FromNative(exception);
            var mStackTrace = CefV8StackTrace.FromNative(stackTrace);

            OnUncaughtException(mBrowser, mFrame, mContext, mException, mStackTrace);
        }