+ __GLXcontext *const gc = __glXGetCurrentContext();
+ const GLuint cmdlen = 16 + __GLX_PAD(len);
+ if (len < 0) {
+ __glXSetError(gc, GL_INVALID_VALUE);
+ return;
+ }
+ if (__builtin_expect((len >= 0) && (gc->currentDpy != NULL), 1)) {
+ if (cmdlen <= gc->maxSmallRenderCommandSize) {
+ if ((gc->pc + cmdlen) > gc->bufEnd) {
+ (void) __glXFlushRenderBuffer(gc, gc->pc);
+ }
+ emit_header(gc->pc, X_GLrop_ProgramStringARB, cmdlen);
+ (void) memcpy((void *) (gc->pc + 4), (void *) (&target), 4);
+ (void) memcpy((void *) (gc->pc + 8), (void *) (&format), 4);
+ (void) memcpy((void *) (gc->pc + 12), (void *) (&len), 4);
+ (void) memcpy((void *) (gc->pc + 16), (void *) (string), len);
+ gc->pc += cmdlen;
+ if (__builtin_expect(gc->pc > gc->limit, 0)) {
+ (void) __glXFlushRenderBuffer(gc, gc->pc);
+ }
+ } else {
+ const GLint op = X_GLrop_ProgramStringARB;
+ const GLuint cmdlenLarge = cmdlen + 4;
+ GLubyte *const pc = __glXFlushRenderBuffer(gc, gc->pc);
+ (void) memcpy((void *) (pc + 0), (void *) (&cmdlenLarge), 4);
+ (void) memcpy((void *) (pc + 4), (void *) (&op), 4);
+ (void) memcpy((void *) (pc + 8), (void *) (&target), 4);
+ (void) memcpy((void *) (pc + 12), (void *) (&format), 4);
+ (void) memcpy((void *) (pc + 16), (void *) (&len), 4);
+ __glXSendLargeCommand(gc, pc, 20, string, len);
+ }
+ }
+}
+
+#define X_GLrop_VertexAttrib1dvARB 4197
+void
+__indirect_glVertexAttrib1dARB(GLuint index, GLdouble x)
+{
+ __GLXcontext *const gc = __glXGetCurrentContext();
+ const GLuint cmdlen = 16;
+ emit_header(gc->pc, X_GLrop_VertexAttrib1dvARB, cmdlen);
+ (void) memcpy((void *) (gc->pc + 4), (void *) (&index), 4);
+ (void) memcpy((void *) (gc->pc + 8), (void *) (&x), 8);